X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fdsputil.h;h=273069c1e8732c47e1b15bf9eb429b6f638267c7;hb=a0c013de34964a24871ed601e36f486c271aa149;hp=0c227bda1ca605c30398023cc8df8e647f9d6f75;hpb=d593e329832a432777218eb92469bad10594a3c5;p=ffmpeg diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h index 0c227bda1ca..273069c1e87 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -27,8 +27,8 @@ * absolutely necessary to call emms_c() between dsp & float/double code */ -#ifndef DSPUTIL_H -#define DSPUTIL_H +#ifndef FFMPEG_DSPUTIL_H +#define FFMPEG_DSPUTIL_H #include "avcodec.h" @@ -48,6 +48,7 @@ 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); @@ -326,8 +327,13 @@ typedef struct DSPContext { void (*h261_loop_filter)(uint8_t *src, int stride); + void (*x8_v_loop_filter)(uint8_t *src, int stride, int qscale); + void (*x8_h_loop_filter)(uint8_t *src, int stride, int qscale); + /* assume len is a multiple of 4, and arrays are 16-byte aligned */ void (*vorbis_inverse_coupling)(float *mag, float *ang, int blocksize); + /* no alignment needed */ + void (*flac_compute_autocorr)(const int32_t *data, int len, int lag, double *autoc); /* assume len is a multiple of 8, and arrays are 16-byte aligned */ void (*vector_fmul)(float *dst, const float *src, int len); void (*vector_fmul_reverse)(float *dst, const float *src0, const float *src1, int len); @@ -348,13 +354,13 @@ typedef struct DSPContext { /** * block -> idct -> clip to unsigned 8 bit -> dest. * (-1392, 0, 0, ...) -> idct -> (-174, -174, ...) -> put -> (0, 0, ...) - * @param line_size size in bytes of a horizotal line of dest + * @param line_size size in bytes of a horizontal line of dest */ void (*idct_put)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/); /** * block -> idct -> add dest -> clip to unsigned 8 bit -> dest. - * @param line_size size in bytes of a horizotal line of dest + * @param line_size size in bytes of a horizontal line of dest */ void (*idct_add)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/); @@ -410,6 +416,12 @@ typedef struct DSPContext { * last argument is actually round value instead of height */ op_pixels_func put_vc1_mspel_pixels_tab[16]; + + /* intrax8 functions */ + void (*x8_spatial_compensation[12])(uint8_t *src , uint8_t *dst, int linesize); + void (*x8_setup_spatial_compensation)(uint8_t *src, uint8_t *dst, int linesize, + int * range, int * sum, int edges); + } DSPContext; void dsputil_static_init(void); @@ -538,7 +550,7 @@ extern int mm_flags; #define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v) #define STRIDE_ALIGN 8 -#elif defined(ARCH_SPARC) +#elif defined(HAVE_VIS) /* SPARC/VIS IDCT needs 8-byte aligned DCT blocks */ #define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v) @@ -555,12 +567,6 @@ extern int mm_flags; extern int mm_flags; -#if defined(HAVE_ALTIVEC) && !defined(SYS_DARWIN) -#define pixel altivec_pixel -#include -#undef pixel -#endif - #define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(16, t, v) #define STRIDE_ALIGN 16 @@ -747,4 +753,4 @@ static inline void copy_block17(uint8_t *dst, uint8_t *src, int dstStride, int s } } -#endif +#endif /* FFMPEG_DSPUTIL_H */