dsputil.h File Reference

#include "avcodec.h"

Go to the source code of this file.

Data Structures

struct  ScanTable
struct  DSPContext
struct  FFTComplex
struct  FFTContext
struct  MDCTContext

Defines

#define MAX_NEG_CROP   1024
#define DEF_OLD_QPEL(name)
#define CALL_2X_PIXELS(a, b, n)
#define FF_NO_IDCT_PERM   1
#define FF_LIBMPEG2_IDCT_PERM   2
#define FF_SIMPLE_IDCT_PERM   3
#define FF_TRANSPOSE_IDCT_PERM   4
#define FF_PARTTRANS_IDCT_PERM   5
#define FF_SSE2_IDCT_PERM   6
#define BASIS_SHIFT   16
#define RECON_SHIFT   6
#define EDGE_WIDTH   16
#define BYTE_VEC32(c)   ((c)*0x01010101UL)
#define emms_c()
#define DECLARE_ALIGNED_16(t, v)   DECLARE_ALIGNED(16, t, v)
#define mm_flags   0
#define mm_support()   0
#define DECLARE_ALIGNED_8(t, v)   DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN   8
#define WRAPPER8_16(name8, name16)
#define WRAPPER8_16_SQ(name8, name16)

Typedefs

typedef short DCTELEM
typedef int DWTELEM
typedef short IDWTELEM
typedef void(*) op_pixels_func (uint8_t *block, const uint8_t *pixels, int line_size, int h)
typedef void(*) tpel_mc_func (uint8_t *block, const uint8_t *pixels, int line_size, int w, int h)
typedef void(*) qpel_mc_func (uint8_t *dst, uint8_t *src, int stride)
typedef void(*) h264_chroma_mc_func (uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y)
typedef void(*) h264_weight_func (uint8_t *block, int stride, int log2_denom, int weight, int offset)
typedef void(*) h264_biweight_func (uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset)
typedef int(*) me_cmp_func (void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h)
typedef slice_buffer_s slice_buffer
typedef float FFTSample

Functions

void fdct_ifast (DCTELEM *data)
void fdct_ifast248 (DCTELEM *data)
void ff_jpeg_fdct_islow (DCTELEM *data)
void ff_fdct248_islow (DCTELEM *data)
void j_rev_dct (DCTELEM *data)
void j_rev_dct4 (DCTELEM *data)
void j_rev_dct2 (DCTELEM *data)
void j_rev_dct1 (DCTELEM *data)
void ff_wmv2_idct_c (DCTELEM *data)
void ff_fdct_mmx (DCTELEM *block)
void ff_fdct_mmx2 (DCTELEM *block)
void ff_fdct_sse2 (DCTELEM *block)
void ff_h264_idct8_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_idct_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_idct8_dc_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_idct_dc_add_c (uint8_t *dst, DCTELEM *block, int stride)
void ff_h264_lowres_idct_add_c (uint8_t *dst, int stride, DCTELEM *block)
void ff_h264_lowres_idct_put_c (uint8_t *dst, int stride, DCTELEM *block)
void ff_vector_fmul_add_add_c (float *dst, const float *src0, const float *src1, const float *src2, int src3, int blocksize, int step)
void ff_vector_fmul_window_c (float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len)
void ff_float_to_int16_c (int16_t *dst, const float *src, long len)
void ff_vp3_idct_c (DCTELEM *block)
void ff_vp3_idct_put_c (uint8_t *dest, int line_size, DCTELEM *block)
void ff_vp3_idct_add_c (uint8_t *dest, int line_size, DCTELEM *block)
void ff_img_copy_plane (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_shrink22 (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_shrink44 (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_shrink88 (uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height)
void ff_gmc_c (uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy, int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height)
void ff_init_scantable (uint8_t *, ScanTable *st, const uint8_t *src_scantable)
void ff_emulated_edge_mc (uint8_t *buf, uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h)
void dsputil_static_init (void)
void dsputil_init (DSPContext *p, AVCodecContext *avctx)
int ff_check_alignment (void)
void ff_block_permute (DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last)
void ff_set_cmp (DSPContext *c, me_cmp_func *cmp, int type)
static uint32_t rnd_avg32 (uint32_t a, uint32_t b)
static uint32_t no_rnd_avg32 (uint32_t a, uint32_t b)
static int get_penalty_factor (int lambda, int lambda2, int type)
void dsputil_init_alpha (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_armv4l (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_bfin (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_mlib (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_mmi (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_mmx (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_ppc (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_sh4 (DSPContext *c, AVCodecContext *avctx)
void dsputil_init_vis (DSPContext *c, AVCodecContext *avctx)
void get_psnr (uint8_t *orig_image[3], uint8_t *coded_image[3], int orig_linesize[3], int coded_linesize, AVCodecContext *avctx)
int ff_fft_init (FFTContext *s, int nbits, int inverse)
void ff_fft_permute (FFTContext *s, FFTComplex *z)
void ff_fft_calc_c (FFTContext *s, FFTComplex *z)
void ff_fft_calc_sse (FFTContext *s, FFTComplex *z)
void ff_fft_calc_3dn (FFTContext *s, FFTComplex *z)
void ff_fft_calc_3dn2 (FFTContext *s, FFTComplex *z)
void ff_fft_calc_altivec (FFTContext *s, FFTComplex *z)
static void ff_fft_calc (FFTContext *s, FFTComplex *z)
void ff_fft_end (FFTContext *s)
void ff_kbd_window_init (float *window, float alpha, int n)
void ff_sine_window_init (float *window, int n)
int ff_mdct_init (MDCTContext *s, int nbits, int inverse)
void ff_imdct_calc (MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp)
void ff_imdct_half (MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp)
void ff_imdct_calc_3dn2 (MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp)
void ff_imdct_half_3dn2 (MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp)
void ff_imdct_calc_sse (MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp)
void ff_imdct_half_sse (MDCTContext *s, FFTSample *output, const FFTSample *input, FFTSample *tmp)
void ff_mdct_calc (MDCTContext *s, FFTSample *out, const FFTSample *input, FFTSample *tmp)
void ff_mdct_end (MDCTContext *s)
static void copy_block2 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block4 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block8 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block9 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block16 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
static void copy_block17 (uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)

Variables

const uint8_t ff_alternate_horizontal_scan [64]
const uint8_t ff_alternate_vertical_scan [64]
const uint8_t ff_zigzag_direct [64]
const uint8_t ff_zigzag248_direct [64]
uint32_t ff_squareTbl [512]
uint8_t ff_cropTbl [256+2 *MAX_NEG_CROP]


Detailed Description

DSP utils. note, many functions in here may use MMX which trashes the FPU state, it is absolutely necessary to call emms_c() between dsp & float/double code

Definition in file dsputil.h.


Define Documentation

#define BASIS_SHIFT   16

Definition at line 420 of file dsputil.h.

Referenced by add_8x8basis(), add_8x8basis_c(), build_basis(), try_8x8basis(), and try_8x8basis_c().

#define BYTE_VEC32 ( c   )     ((c)*0x01010101UL)

Definition at line 491 of file dsputil.h.

Referenced by no_rnd_avg32(), and rnd_avg32().

#define CALL_2X_PIXELS ( a,
b,
 ) 

Value:

static void a(uint8_t *block, const uint8_t *pixels, int line_size, int h){\
    b(block  , pixels  , line_size, h);\
    b(block+n, pixels+n, line_size, h);\
}

Definition at line 146 of file dsputil.h.

#define DECLARE_ALIGNED_16 ( t,
 )     DECLARE_ALIGNED(16, t, v)

Definition at line 548 of file dsputil.h.

Referenced by dct_quantize(), dct_quantize_refine(), dct_sad8x8_c(), dct_unquantize_h263_altivec(), dnxhd_calc_bits_thread(), do_imdct_256(), dv_decode_video_segment(), dv_encode_video_segment(), ff_check_alignment(), ff_snow_horizontal_compose97i_altivec(), ff_snow_horizontal_compose97i_sse2(), gmc1_altivec(), inner_add_yblock_a_bw_16_obmc_32_altivec(), inner_add_yblock_a_bw_8_obmc_16_altivec(), inner_add_yblock_bw_16_obmc_32_altivec(), inner_add_yblock_bw_8_obmc_16_altivec(), MSPEL_FILTER13_8B(), pix_norm1_altivec(), pix_sum_altivec(), PREFIX_h264_chroma_mc8_altivec(), put_no_rnd_h264_chroma_mc8_altivec(), render_slice(), rtjpeg_decode_frame_yuv420(), sad16_altivec(), sad16_x2_altivec(), sad16_xy2_altivec(), sad16_y2_altivec(), sad8_altivec(), scalarproduct_int16_altivec(), scalarproduct_int16_sse2(), sse16_altivec(), sse8_altivec(), and write16x4().

#define DECLARE_ALIGNED_8 ( t,
 )     DECLARE_ALIGNED(8, t, v)

Definition at line 611 of file dsputil.h.

Referenced by bit8x8_c(), cavs_idct8_add_mmx(), dct_max8x8_c(), dv_decode_video_segment(), ff_cavs_filter(), ff_h264_idct8_add_mmx(), ff_simple_idct_vis(), filter_mb_fast(), H264_CHROMA_MC8_TMPL(), h264_h_loop_filter_chroma_intra_mmx2(), h264_h_loop_filter_chroma_mmx2(), h264_h_loop_filter_luma_mmx2(), h264_loop_filter_luma_mmx2(), h264_loop_filter_strength_mmx2(), quant_psnr8x8_c(), and rd8x8_c().

#define DEF_OLD_QPEL ( name   ) 

Value:

void ff_put_        ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\
void ff_put_no_rnd_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\
void ff_avg_        ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);

Definition at line 128 of file dsputil.h.

#define EDGE_WIDTH   16

Definition at line 424 of file dsputil.h.

Referenced by avcodec_default_get_buffer(), frame_start(), halfpel_interpol(), and MPV_frame_end().

 
#define emms_c (  ) 

Empty mmx state. this must be called between any dsp function and float/double code. for example sin(); dsp->idct_put(); emms_c(); cos()

Definition at line 532 of file dsputil.h.

Referenced by avcodec_decode_video(), avcodec_encode_video(), avpicture_deinterlace(), build_basis(), decode_chunks(), decode_frame(), ff_draw_horiz_band(), ff_faandct(), ff_faandct248(), ff_faanidct(), ff_faanidct_add(), ff_faanidct_put(), ff_rate_control_init(), ff_rate_control_uninit(), ff_rate_estimate_qscale(), MPV_frame_end(), slice_decode_thread(), and test_motion().

#define FF_LIBMPEG2_IDCT_PERM   2

Definition at line 412 of file dsputil.h.

Referenced by dct_quantize(), dsputil_init(), dsputil_init_armv4l(), dsputil_init_mmi(), and dsputil_init_mmx().

#define FF_NO_IDCT_PERM   1

Definition at line 411 of file dsputil.h.

Referenced by dct_quantize_altivec(), dct_quantize_bfin(), dct_quantize_c(), dsputil_init(), dsputil_init_armv4l(), dsputil_init_bfin(), dsputil_init_sh4(), and MPV_common_init_mlib().

#define FF_PARTTRANS_IDCT_PERM   5

Definition at line 415 of file dsputil.h.

Referenced by dsputil_init(), and dsputil_init_mmx().

#define FF_SIMPLE_IDCT_PERM   3

Definition at line 413 of file dsputil.h.

Referenced by dct_quantize(), dsputil_init(), and dsputil_init_mmx().

#define FF_SSE2_IDCT_PERM   6

Definition at line 416 of file dsputil.h.

Referenced by dsputil_init(), and dsputil_init_mmx().

#define FF_TRANSPOSE_IDCT_PERM   4

Definition at line 414 of file dsputil.h.

Referenced by dct_quantize_altivec(), dsputil_init(), dsputil_init_mmx(), dsputil_init_ppc(), dsputil_init_vis(), and MPV_common_init_altivec().

#define MAX_NEG_CROP   1024

Definition at line 77 of file dsputil.h.

Referenced by add_pixels_clamped2_c(), add_pixels_clamped4_c(), add_pixels_clamped_c(), cavs_idct8_add_c(), deinterlace_line(), deinterlace_line_inplace(), dsputil_static_init(), ff_bfin_vp3_idct_put(), ff_h264_idct8_add_c(), ff_h264_idct8_dc_add_c(), ff_h264_idct_dc_add_c(), ff_idct_put_mlib(), ff_jref_idct1_add(), ff_jref_idct1_put(), h_block_filter(), idct(), idct4col_add(), idct4col_put(), idct_add(), idct_internal(), idct_put(), idctSparseColAdd(), idctSparseColPut(), img_convert_init(), intra_pred_plane(), main(), mp_yuv_to_rgb(), pred16x16_plane_compat_c(), pred8x8_plane_c(), Process(), put_pixels_clamped2_c(), put_pixels_clamped4_c(), put_pixels_clamped_c(), svq3_add_idct_c(), v_block_filter(), vc1_inv_trans_4x4_c(), vc1_inv_trans_4x8_c(), vc1_inv_trans_8x4_c(), wmv2_mspel8_h_lowpass(), wmv2_mspel8_v_lowpass(), and yuv_a_to_rgba().

#define mm_flags   0

Definition at line 605 of file dsputil.h.

Referenced by component_resample(), dsputil_init_iwmmxt(), dsputil_init_mmx(), dsputil_init_pix_mmx(), dsputil_init_ppc(), dsputilenc_init_mmx(), ff_h263_decode_frame(), h_resample(), MPV_common_init_altivec(), MPV_common_init_iwmmxt(), and MPV_common_init_mmx().

int mm_support ( void   )     0

Definition at line 606 of file dsputil.h.

Referenced by dsputil_init_mmx(), ff_fft_init(), and main().

#define RECON_SHIFT   6

Definition at line 421 of file dsputil.h.

Referenced by add_8x8basis(), add_8x8basis_c(), dct_quantize_refine(), try_8x8basis(), and try_8x8basis_c().

#define STRIDE_ALIGN   8

Definition at line 615 of file dsputil.h.

Referenced by avcodec_default_get_buffer(), and fill_rectangle().

#define WRAPPER8_16 ( name8,
name16   ) 

Value:

static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\
    return name8(s, dst           , src           , stride, h)\
          +name8(s, dst+8         , src+8         , stride, h);\
}

Definition at line 705 of file dsputil.h.

#define WRAPPER8_16_SQ ( name8,
name16   ) 

Value:

static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\
    int score=0;\
    score +=name8(s, dst           , src           , stride, 8);\
    score +=name8(s, dst+8         , src+8         , stride, 8);\
    if(h==16){\
        dst += 8*stride;\
        src += 8*stride;\
        score +=name8(s, dst           , src           , stride, 8);\
        score +=name8(s, dst+8         , src+8         , stride, 8);\
    }\
    return score;\
}

Definition at line 711 of file dsputil.h.


Typedef Documentation

typedef short DCTELEM

Definition at line 38 of file dsputil.h.

typedef int DWTELEM

Definition at line 39 of file dsputil.h.

typedef float FFTSample

Definition at line 627 of file dsputil.h.

typedef void(*) h264_biweight_func(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset)

Definition at line 126 of file dsputil.h.

typedef void(*) h264_chroma_mc_func(uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y)

Definition at line 124 of file dsputil.h.

typedef void(*) h264_weight_func(uint8_t *block, int stride, int log2_denom, int weight, int offset)

Definition at line 125 of file dsputil.h.

typedef short IDWTELEM

Definition at line 40 of file dsputil.h.

typedef int(*) me_cmp_func(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h)

Definition at line 155 of file dsputil.h.

typedef void(*) op_pixels_func(uint8_t *block, const uint8_t *pixels, int line_size, int h)

Definition at line 121 of file dsputil.h.

typedef void(*) qpel_mc_func(uint8_t *dst, uint8_t *src, int stride)

Definition at line 123 of file dsputil.h.

typedef struct slice_buffer_s slice_buffer

Definition at line 159 of file dsputil.h.

typedef void(*) tpel_mc_func(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h)

Definition at line 122 of file dsputil.h.


Function Documentation

static void copy_block16 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 773 of file dsputil.h.

References AV_RN32, and AV_WN32.

00774 {
00775     int i;
00776     for(i=0; i<h; i++)
00777     {
00778         AV_WN32(dst   , AV_RN32(src   ));
00779         AV_WN32(dst+4 , AV_RN32(src+4 ));
00780         AV_WN32(dst+8 , AV_RN32(src+8 ));
00781         AV_WN32(dst+12, AV_RN32(src+12));
00782         dst+=dstStride;
00783         src+=srcStride;
00784     }
00785 }

static void copy_block17 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 787 of file dsputil.h.

References AV_RN32, and AV_WN32.

00788 {
00789     int i;
00790     for(i=0; i<h; i++)
00791     {
00792         AV_WN32(dst   , AV_RN32(src   ));
00793         AV_WN32(dst+4 , AV_RN32(src+4 ));
00794         AV_WN32(dst+8 , AV_RN32(src+8 ));
00795         AV_WN32(dst+12, AV_RN32(src+12));
00796         dst[16]= src[16];
00797         dst+=dstStride;
00798         src+=srcStride;
00799     }
00800 }

static void copy_block2 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 726 of file dsputil.h.

References AV_RN16, and AV_WN16.

00727 {
00728     int i;
00729     for(i=0; i<h; i++)
00730     {
00731         AV_WN16(dst   , AV_RN16(src   ));
00732         dst+=dstStride;
00733         src+=srcStride;
00734     }
00735 }

static void copy_block4 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 737 of file dsputil.h.

References AV_RN32, and AV_WN32.

00738 {
00739     int i;
00740     for(i=0; i<h; i++)
00741     {
00742         AV_WN32(dst   , AV_RN32(src   ));
00743         dst+=dstStride;
00744         src+=srcStride;
00745     }
00746 }

static void copy_block8 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 748 of file dsputil.h.

References AV_RN32, and AV_WN32.

00749 {
00750     int i;
00751     for(i=0; i<h; i++)
00752     {
00753         AV_WN32(dst   , AV_RN32(src   ));
00754         AV_WN32(dst+4 , AV_RN32(src+4 ));
00755         dst+=dstStride;
00756         src+=srcStride;
00757     }
00758 }

static void copy_block9 ( uint8_t *  dst,
uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
) [inline, static]

Definition at line 760 of file dsputil.h.

References AV_RN32, and AV_WN32.

00761 {
00762     int i;
00763     for(i=0; i<h; i++)
00764     {
00765         AV_WN32(dst   , AV_RN32(src   ));
00766         AV_WN32(dst+4 , AV_RN32(src+4 ));
00767         dst[8]= src[8];
00768         dst+=dstStride;
00769         src+=srcStride;
00770     }
00771 }

void dsputil_init ( DSPContext p,
AVCodecContext avctx 
)

Definition at line 4171 of file dsputil.c.

References add_8x8basis_c(), add_bytes_c(), add_bytes_l2_c(), add_int16_c(), add_pixels4_c(), add_pixels8_c(), add_pixels_clamped_c(), av_log(), AV_LOG_ERROR, avg, avg_tpel_pixels_mc00_c(), avg_tpel_pixels_mc01_c(), avg_tpel_pixels_mc02_c(), avg_tpel_pixels_mc10_c(), avg_tpel_pixels_mc11_c(), avg_tpel_pixels_mc12_c(), avg_tpel_pixels_mc20_c(), avg_tpel_pixels_mc21_c(), avg_tpel_pixels_mc22_c(), bswap_buf(), c, clear_blocks_c(), AVCodecContext::dct_algo, diff_bytes_c(), diff_pixels_c(), draw_edges_c(), dspfunc, dsputil_init_alpha(), dsputil_init_armv4l(), dsputil_init_bfin(), dsputil_init_mlib(), dsputil_init_mmi(), dsputil_init_mmx(), dsputil_init_ppc(), dsputil_init_sh4(), dsputil_init_vis(), ENABLE_ANY_H263, fdct_ifast(), fdct_ifast248(), ff_add_png_paeth_prediction(), ff_cavsdsp_init(), ff_check_alignment(), FF_DCT_FAAN, FF_DCT_FASTINT, ff_faandct(), ff_faandct248(), ff_faanidct(), ff_faanidct_add(), ff_faanidct_put(), ff_fdct248_islow(), ff_flac_compute_autocorr(), ff_float_to_int16_c(), ff_float_to_int16_interleave_c(), ff_gmc_c(), ff_h264_idct8_add_c(), ff_h264_idct8_dc_add_c(), ff_h264_idct_add_c(), ff_h264_idct_dc_add_c(), ff_h264_lowres_idct_add_c(), ff_h264_lowres_idct_put_c(), ff_h264dspenc_init(), FF_IDCT_AUTO, FF_IDCT_FAAN, FF_IDCT_INT, FF_IDCT_VP3, FF_IDCT_WMV2, ff_img_copy_plane(), ff_intrax8dsp_init(), ff_jpeg_fdct_islow(), ff_jref_idct1_add(), ff_jref_idct1_put(), ff_jref_idct2_add(), ff_jref_idct2_put(), ff_jref_idct4_add(), ff_jref_idct4_put(), ff_jref_idct_add(), ff_jref_idct_put(), FF_LIBMPEG2_IDCT_PERM, FF_NO_IDCT_PERM, FF_PARTTRANS_IDCT_PERM, ff_shrink22(), ff_shrink44(), ff_shrink88(), ff_simple_idct(), ff_simple_idct_add(), FF_SIMPLE_IDCT_PERM, ff_simple_idct_put(), ff_snow_horizontal_compose97i(), ff_snow_inner_add_yblock(), ff_snow_vertical_compose97i(), FF_SSE2_IDCT_PERM, FF_TRANSPOSE_IDCT_PERM, ff_vc1dsp_init(), ff_vector_fmul_add_add_c(), ff_vector_fmul_window_c(), ff_vp3_idct_add_c(), ff_vp3_idct_c(), ff_vp3_idct_put_c(), ff_wmv2_idct_add_c(), ff_wmv2_idct_c(), ff_wmv2_idct_put_c(), get_pixels_c(), gmc1_c(), h261_loop_filter_c(), h263_h_loop_filter_c(), h263_v_loop_filter_c(), h264_h_loop_filter_chroma_c(), h264_h_loop_filter_chroma_intra_c(), h264_h_loop_filter_luma_c(), h264_v_loop_filter_chroma_c(), h264_v_loop_filter_chroma_intra_c(), h264_v_loop_filter_luma_c(), AVCodecContext::idct_algo, idct_sse2_row_perm, j_rev_dct(), j_rev_dct1(), j_rev_dct2(), j_rev_dct4(), just_return(), AVCodecContext::lowres, nsse16_c(), nsse8_c(), NULL, pix_abs16_c(), pix_abs16_x2_c(), pix_abs16_xy2_c(), pix_abs16_y2_c(), pix_abs8_c(), pix_abs8_x2_c(), pix_abs8_xy2_c(), pix_abs8_y2_c(), pix_norm1_c(), pix_sum_c(), put_mspel8_mc00_c(), put_mspel8_mc02_c(), put_mspel8_mc10_c(), put_mspel8_mc12_c(), put_mspel8_mc20_c(), put_mspel8_mc22_c(), put_mspel8_mc30_c(), put_mspel8_mc32_c(), put_no_rnd_h264_chroma_mc8_c(), put_no_rnd_pixels16_l2_c(), put_no_rnd_pixels8_l2_c(), put_pixels_clamped_c(), put_signed_pixels_clamped_c(), put_tpel_pixels_mc00_c(), put_tpel_pixels_mc01_c(), put_tpel_pixels_mc02_c(), put_tpel_pixels_mc10_c(), put_tpel_pixels_mc11_c(), put_tpel_pixels_mc12_c(), put_tpel_pixels_mc20_c(), put_tpel_pixels_mc21_c(), put_tpel_pixels_mc22_c(), scalarproduct_int16_c(), SET_CMP_FUNC, simple_mmx_permutation, ssd_int8_vs_int16_c(), sse16_c(), sse4_c(), sse8_c(), sub_hfyu_median_prediction_c(), sub_int16_c(), sum_abs_dctelem_c(), try_8x8basis_c(), vector_fmul_c(), vector_fmul_reverse_c(), vorbis_inverse_coupling(), vsad16_c(), vsad_intra16_c(), vsse16_c(), and vsse_intra16_c().

Referenced by ac3_decode_init(), ape_decode_init(), atrac3_decode_init(), common_init(), dca_decode_init(), decode_init(), dnxhd_decode_init(), dnxhd_encode_init(), ff_mjpeg_decode_init(), ff_wma_init(), flac_encode_init(), imc_decode_init(), ipvideo_decode_init(), main(), mdec_common_init(), mimic_decode_init(), mp_decode_init(), mpc7_decode_init(), mpc8_decode_init(), MPV_common_init(), png_dec_init(), png_enc_init(), svq1_encode_init(), vorbis_decode_init(), vp3_decode_init(), and vp56_init().

04172 {
04173     int i;
04174 
04175     ff_check_alignment();
04176 
04177 #ifdef CONFIG_ENCODERS
04178     if(avctx->dct_algo==FF_DCT_FASTINT) {
04179         c->fdct = fdct_ifast;
04180         c->fdct248 = fdct_ifast248;
04181     }
04182     else if(avctx->dct_algo==FF_DCT_FAAN) {
04183         c->fdct = ff_faandct;
04184         c->fdct248 = ff_faandct248;
04185     }
04186     else {
04187         c->fdct = ff_jpeg_fdct_islow; //slow/accurate/default
04188         c->fdct248 = ff_fdct248_islow;
04189     }
04190 #endif //CONFIG_ENCODERS
04191 
04192     if(avctx->lowres==1){
04193         if(avctx->idct_algo==FF_IDCT_INT || avctx->idct_algo==FF_IDCT_AUTO || !ENABLE_H264_DECODER){
04194             c->idct_put= ff_jref_idct4_put;
04195             c->idct_add= ff_jref_idct4_add;
04196         }else{
04197             c->idct_put= ff_h264_lowres_idct_put_c;
04198             c->idct_add= ff_h264_lowres_idct_add_c;
04199         }
04200         c->idct    = j_rev_dct4;
04201         c->idct_permutation_type= FF_NO_IDCT_PERM;
04202     }else if(avctx->lowres==2){
04203         c->idct_put= ff_jref_idct2_put;
04204         c->idct_add= ff_jref_idct2_add;
04205         c->idct    = j_rev_dct2;
04206         c->idct_permutation_type= FF_NO_IDCT_PERM;
04207     }else if(avctx->lowres==3){
04208         c->idct_put= ff_jref_idct1_put;
04209         c->idct_add= ff_jref_idct1_add;
04210         c->idct    = j_rev_dct1;
04211         c->idct_permutation_type= FF_NO_IDCT_PERM;
04212     }else{
04213         if(avctx->idct_algo==FF_IDCT_INT){
04214             c->idct_put= ff_jref_idct_put;
04215             c->idct_add= ff_jref_idct_add;
04216             c->idct    = j_rev_dct;
04217             c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
04218         }else if((ENABLE_VP3_DECODER || ENABLE_VP5_DECODER || ENABLE_VP6_DECODER || ENABLE_THEORA_DECODER ) &&
04219                 avctx->idct_algo==FF_IDCT_VP3){
04220             c->idct_put= ff_vp3_idct_put_c;
04221             c->idct_add= ff_vp3_idct_add_c;
04222             c->idct    = ff_vp3_idct_c;
04223             c->idct_permutation_type= FF_NO_IDCT_PERM;
04224         }else if(avctx->idct_algo==FF_IDCT_WMV2){
04225             c->idct_put= ff_wmv2_idct_put_c;
04226             c->idct_add= ff_wmv2_idct_add_c;
04227             c->idct    = ff_wmv2_idct_c;
04228             c->idct_permutation_type= FF_NO_IDCT_PERM;
04229         }else if(avctx->idct_algo==FF_IDCT_FAAN){
04230