#include "tx.h"
#include "thread.h"
#include "mem_internal.h"
#include "common.h"
#include "attributes.h"
 
Go to the source code of this file.
 | 
| #define  | TX_DECL_FN(fn,  suffix)   void TX_FN_NAME(fn, suffix)(AVTXContext *s, void *o, void *i, ptrdiff_t st); | 
|   | 
| #define  | TX_DEF(fn,  tx_type,  len_min,  len_max,  f1,  f2,  p,  init_fn,  suffix,  cf,  cd_flags,  cf2) | 
|   | 
| #define  | CMUL3(c,  a,  b)   CMUL((c).re, (c).im, (a).re, (a).im, (b).re, (b).im) | 
|   | 
| #define  | FF_TX_OUT_OF_PLACE   (1ULL << 63) /* Can be OR'd with AV_TX_INPLACE             */ | 
|   | 
| #define  | FF_TX_ALIGNED   (1ULL << 62) /* Cannot be OR'd with AV_TX_UNALIGNED        */ | 
|   | 
| #define  | FF_TX_PRESHUFFLE   (1ULL << 61) /* Codelet expects permuted coeffs            */ | 
|   | 
| #define  | FF_TX_INVERSE_ONLY   (1ULL << 60) /* For non-orthogonal inverse-only transforms */ | 
|   | 
| #define  | FF_TX_FORWARD_ONLY   (1ULL << 59) /* For non-orthogonal forward-only transforms */ | 
|   | 
| #define  | FF_TX_ASM_CALL   (1ULL << 58) /* For asm->asm functions only                */ | 
|   | 
| #define  | TX_MAX_FACTORS   16 | 
|   | 
| #define  | TX_MAX_SUB   4 | 
|   | 
| #define  | TX_MAX_DECOMPOSITIONS   512 | 
|   | 
| #define  | TX_TYPE_ANY   INT32_MAX     /* Special type to allow all types */ | 
|   | 
| #define  | TX_FACTOR_ANY | 
|   | 
| #define  | TX_LEN_UNLIMITED   -1       /* Special length value to permit all lengths */ | 
|   | 
| #define  | FF_TX_CPU_FLAGS_ALL   0x0    /* Special CPU flag for C */ | 
|   | 
| #define  | TX_EMBED_INPUT_PFA_MAP(map,  tot_len,  d1,  d2) | 
|   | 
 | 
| int  | ff_tx_gen_pfa_input_map (AVTXContext *s, FFTXCodeletOptions *opts, int d1, int d2) | 
|   | 
| int  | ff_tx_init_subtx (AVTXContext *s, enum AVTXType type, uint64_t flags, FFTXCodeletOptions *opts, int len, int inv, const void *scale) | 
|   | 
| void  | ff_tx_clear_ctx (AVTXContext *s) | 
|   | 
| int  | ff_tx_decompose_length (int dst[TX_MAX_DECOMPOSITIONS], enum AVTXType type, int len, int inv) | 
|   | 
| int  | ff_tx_gen_default_map (AVTXContext *s, FFTXCodeletOptions *opts) | 
|   | 
| int  | ff_tx_gen_compound_mapping (AVTXContext *s, FFTXCodeletOptions *opts, int inv, int n, int m) | 
|   | 
| int  | ff_tx_gen_ptwo_revtab (AVTXContext *s, FFTXCodeletOptions *opts) | 
|   | 
| int  | ff_tx_gen_inplace_map (AVTXContext *s, int len) | 
|   | 
| int  | ff_tx_gen_split_radix_parity_revtab (AVTXContext *s, int len, int inv, FFTXCodeletOptions *opts, int basis, int dual_stride) | 
|   | 
| void  | ff_tx_init_tabs_float (int len) | 
|   | 
| void  | ff_tx_init_tabs_double (int len) | 
|   | 
| void  | ff_tx_init_tabs_int32 (int len) | 
|   | 
| int  | ff_tx_mdct_gen_exp_float (AVTXContext *s, int *pre_tab) | 
|   | 
| int  | ff_tx_mdct_gen_exp_double (AVTXContext *s, int *pre_tab) | 
|   | 
| int  | ff_tx_mdct_gen_exp_int32 (AVTXContext *s, int *pre_tab) | 
|   | 
◆ TX_DECL_FN
◆ TX_DEF
      
        
          | #define TX_DEF | 
          ( | 
            | 
          fn,  | 
        
        
           | 
           | 
            | 
          tx_type,  | 
        
        
           | 
           | 
            | 
          len_min,  | 
        
        
           | 
           | 
            | 
          len_max,  | 
        
        
           | 
           | 
            | 
          f1,  | 
        
        
           | 
           | 
            | 
          f2,  | 
        
        
           | 
           | 
            | 
          p,  | 
        
        
           | 
           | 
            | 
          init_fn,  | 
        
        
           | 
           | 
            | 
          suffix,  | 
        
        
           | 
           | 
            | 
          cf,  | 
        
        
           | 
           | 
            | 
          cd_flags,  | 
        
        
           | 
           | 
            | 
          cf2  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:
        .factors    = { (f1), (f2) },                                          \
        .nb_factors = !!(f1) + !!(f2),                                         \
        .min_len    = len_min,                                                 \
        .max_len    = len_max,                                                 \
        .init       = init_fn,                                                 \
        .cpu_flags  = cf2 | AV_CPU_FLAG_ ## cf,                                \
        .prio       = p,                                                       \
    }
 
Definition at line 71 of file tx_priv.h.
 
 
◆ CMUL3
      
        
          | #define CMUL3 | 
          ( | 
            | 
          c,  | 
        
        
           | 
           | 
            | 
          a,  | 
        
        
           | 
           | 
            | 
          b  | 
        
        
           | 
          ) | 
           |    CMUL((c).re, (c).im, (a).re, (a).im, (b).re, (b).im) | 
        
      
 
 
◆ FF_TX_OUT_OF_PLACE
      
        
          | #define FF_TX_OUT_OF_PLACE   (1ULL << 63) /* Can be OR'd with AV_TX_INPLACE             */ | 
        
      
 
 
◆ FF_TX_ALIGNED
◆ FF_TX_PRESHUFFLE
      
        
          | #define FF_TX_PRESHUFFLE   (1ULL << 61) /* Codelet expects permuted coeffs            */ | 
        
      
 
 
◆ FF_TX_INVERSE_ONLY
      
        
          | #define FF_TX_INVERSE_ONLY   (1ULL << 60) /* For non-orthogonal inverse-only transforms */ | 
        
      
 
 
◆ FF_TX_FORWARD_ONLY
      
        
          | #define FF_TX_FORWARD_ONLY   (1ULL << 59) /* For non-orthogonal forward-only transforms */ | 
        
      
 
 
◆ FF_TX_ASM_CALL
      
        
          | #define FF_TX_ASM_CALL   (1ULL << 58) /* For asm->asm functions only                */ | 
        
      
 
 
◆ TX_MAX_FACTORS
      
        
          | #define TX_MAX_FACTORS   16 | 
        
      
 
 
◆ TX_MAX_SUB
◆ TX_MAX_DECOMPOSITIONS
      
        
          | #define TX_MAX_DECOMPOSITIONS   512 | 
        
      
 
 
◆ TX_TYPE_ANY
      
        
          | #define TX_TYPE_ANY   INT32_MAX     /* Special type to allow all types */ | 
        
      
 
 
◆ TX_FACTOR_ANY
◆ TX_LEN_UNLIMITED
      
        
          | #define TX_LEN_UNLIMITED   -1       /* Special length value to permit all lengths */ | 
        
      
 
 
◆ FF_TX_CPU_FLAGS_ALL
      
        
          | #define FF_TX_CPU_FLAGS_ALL   0x0    /* Special CPU flag for C */ | 
        
      
 
 
◆ TX_EMBED_INPUT_PFA_MAP
      
        
          | #define TX_EMBED_INPUT_PFA_MAP | 
          ( | 
            | 
          map,  | 
        
        
           | 
           | 
            | 
          tot_len,  | 
        
        
           | 
           | 
            | 
          d1,  | 
        
        
           | 
           | 
            | 
          d2  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:    do {                                                                         \
        int mtmp[(d1)*(d2)];                                                     \
        for (int k = 0; k < tot_len; k += (d1)*(d2)) {                           \
            memcpy(mtmp, &
map[k], (d1)*(d2)*
sizeof(*mtmp));                      \
 
            for (int m = 0; m < (d2); m++)                                       \
                for (int n = 0; n < (d1); n++)                                   \
                    map[k + m*(d1) + n] = mtmp[(m*(d1) + n*(d2)) % ((d1)*(d2))]; \
 
        }                                                                        \
    } while (0)
 
Definition at line 271 of file tx_priv.h.
 
 
◆ TXComplex
◆ FFTXCodeletPriority
| Enumerator | 
|---|
| FF_TX_PRIO_BASE  |  | 
| FF_TX_PRIO_MIN  |  | 
| FF_TX_PRIO_MAX  |  | 
Definition at line 161 of file tx_priv.h.
 
 
◆ FFTXMapDirection
| Enumerator | 
|---|
| FF_TX_MAP_NONE  |  | 
| FF_TX_MAP_GATHER  |  | 
| FF_TX_MAP_SCATTER  |  | 
Definition at line 171 of file tx_priv.h.
 
 
◆ ff_tx_gen_pfa_input_map()
◆ ff_tx_init_subtx()
◆ ff_tx_clear_ctx()
◆ ff_tx_decompose_length()
      
        
          | int ff_tx_decompose_length  | 
          ( | 
          int  | 
          dst[TX_MAX_DECOMPOSITIONS],  | 
        
        
           | 
           | 
          enum AVTXType  | 
          type,  | 
        
        
           | 
           | 
          int  | 
          len,  | 
        
        
           | 
           | 
          int  | 
          inv  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ ff_tx_gen_default_map()
◆ ff_tx_gen_compound_mapping()
◆ ff_tx_gen_ptwo_revtab()
◆ ff_tx_gen_inplace_map()
◆ ff_tx_gen_split_radix_parity_revtab()
◆ ff_tx_init_tabs_float()
      
        
          | void ff_tx_init_tabs_float  | 
          ( | 
          int  | 
          len | ) | 
           | 
        
      
 
 
◆ ff_tx_init_tabs_double()
      
        
          | void ff_tx_init_tabs_double  | 
          ( | 
          int  | 
          len | ) | 
           | 
        
      
 
 
◆ ff_tx_init_tabs_int32()
      
        
          | void ff_tx_init_tabs_int32  | 
          ( | 
          int  | 
          len | ) | 
           | 
        
      
 
 
◆ ff_tx_mdct_gen_exp_float()
      
        
          | int ff_tx_mdct_gen_exp_float  | 
          ( | 
          AVTXContext *  | 
          s,  | 
        
        
           | 
           | 
          int *  | 
          pre_tab  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ ff_tx_mdct_gen_exp_double()
      
        
          | int ff_tx_mdct_gen_exp_double  | 
          ( | 
          AVTXContext *  | 
          s,  | 
        
        
           | 
           | 
          int *  | 
          pre_tab  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ ff_tx_mdct_gen_exp_int32()
      
        
          | int ff_tx_mdct_gen_exp_int32  | 
          ( | 
          AVTXContext *  | 
          s,  | 
        
        
           | 
           | 
          int *  | 
          pre_tab  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ ff_tx_codelet_list_float_c
◆ ff_tx_codelet_list_float_x86
      
        
          | const FFTXCodelet* const ff_tx_codelet_list_float_x86[] | 
        
      
 
 
◆ ff_tx_codelet_list_float_aarch64
      
        
          | const FFTXCodelet* const ff_tx_codelet_list_float_aarch64[] | 
        
      
 
 
◆ ff_tx_codelet_list_double_c
◆ ff_tx_codelet_list_int32_c
 
const VDPAUPixFmtMap * map