comparison dsputil.h @ 1092:f59c3f66363b libavcodec

MpegEncContext.(i)dct_* -> DspContext.(i)dct_* bitexact cleanup
author michaelni
date Mon, 03 Mar 2003 14:54:00 +0000
parents 92fb44eae6b6
children eeaa1e837efb
comparison
equal deleted inserted replaced
1091:03df246fb06b 1092:f59c3f66363b
147 op_pixels_abs_func pix_abs8x8_xy2; 147 op_pixels_abs_func pix_abs8x8_xy2;
148 148
149 /* huffyuv specific */ 149 /* huffyuv specific */
150 void (*add_bytes)(uint8_t *dst/*align 16*/, uint8_t *src/*align 16*/, int w); 150 void (*add_bytes)(uint8_t *dst/*align 16*/, uint8_t *src/*align 16*/, int w);
151 void (*diff_bytes)(uint8_t *dst/*align 16*/, uint8_t *src1/*align 16*/, uint8_t *src2/*align 1*/,int w); 151 void (*diff_bytes)(uint8_t *dst/*align 16*/, uint8_t *src1/*align 16*/, uint8_t *src2/*align 1*/,int w);
152
153 /* (I)DCT */
154 void (*fdct)(DCTELEM *block/* align 16*/);
155 void (*idct_put)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
156 void (*idct_add)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
157 uint8_t idct_permutation[64];
158 int idct_permutation_type;
159 #define FF_NO_IDCT_PERM 1
160 #define FF_LIBMPEG2_IDCT_PERM 2
161 #define FF_SIMPLE_IDCT_PERM 3
162 #define FF_TRANSPOSE_IDCT_PERM 4
163
152 } DSPContext; 164 } DSPContext;
153 165
154 void dsputil_init(DSPContext* p, unsigned mask); 166 void dsputil_init(DSPContext* p, AVCodecContext *avctx);
155 167
156 /** 168 /**
157 * permute block according to permuatation. 169 * permute block according to permuatation.
158 * @param last last non zero element in scantable order 170 * @param last last non zero element in scantable order
159 */ 171 */
192 emms();\ 204 emms();\
193 } 205 }
194 206
195 #define __align8 __attribute__ ((aligned (8))) 207 #define __align8 __attribute__ ((aligned (8)))
196 208
197 void dsputil_init_mmx(DSPContext* c, unsigned mask); 209 void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx);
198 void dsputil_set_bit_exact_mmx(DSPContext* c, unsigned mask); 210 void dsputil_init_pix_mmx(DSPContext* c, AVCodecContext *avctx);
199
200 void dsputil_init_pix_mmx(DSPContext* c, unsigned mask);
201 void dsputil_set_bit_exact_pix_mmx(DSPContext* c, unsigned mask);
202 211
203 #elif defined(ARCH_ARMV4L) 212 #elif defined(ARCH_ARMV4L)
204 213
205 /* This is to use 4 bytes read to the IDCT pointers for some 'zero' 214 /* This is to use 4 bytes read to the IDCT pointers for some 'zero'
206 line ptimizations */ 215 line ptimizations */
207 #define __align8 __attribute__ ((aligned (4))) 216 #define __align8 __attribute__ ((aligned (4)))
208 217
209 void dsputil_init_armv4l(DSPContext* c, unsigned mask); 218 void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx);
210 219
211 #elif defined(HAVE_MLIB) 220 #elif defined(HAVE_MLIB)
212 221
213 /* SPARC/VIS IDCT needs 8-byte aligned DCT blocks */ 222 /* SPARC/VIS IDCT needs 8-byte aligned DCT blocks */
214 #define __align8 __attribute__ ((aligned (8))) 223 #define __align8 __attribute__ ((aligned (8)))
215 224
216 void dsputil_init_mlib(DSPContext* c, unsigned mask); 225 void dsputil_init_mlib(DSPContext* c, AVCodecContext *avctx);
217 226
218 #elif defined(ARCH_ALPHA) 227 #elif defined(ARCH_ALPHA)
219 228
220 #define __align8 __attribute__ ((aligned (8))) 229 #define __align8 __attribute__ ((aligned (8)))
221 230
222 void dsputil_init_alpha(DSPContext* c, unsigned mask); 231 void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx);
223 232
224 #elif defined(ARCH_POWERPC) 233 #elif defined(ARCH_POWERPC)
225 234
226 #define MM_ALTIVEC 0x0001 /* standard AltiVec */ 235 #define MM_ALTIVEC 0x0001 /* standard AltiVec */
227 236
231 #include <altivec.h> 240 #include <altivec.h>
232 #endif 241 #endif
233 242
234 #define __align8 __attribute__ ((aligned (16))) 243 #define __align8 __attribute__ ((aligned (16)))
235 244
236 void dsputil_init_ppc(DSPContext* c, unsigned mask); 245 void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx);
237 246
238 #elif defined(HAVE_MMI) 247 #elif defined(HAVE_MMI)
239 248
240 #define __align8 __attribute__ ((aligned (16))) 249 #define __align8 __attribute__ ((aligned (16)))
241 250
242 void dsputil_init_mmi(DSPContext* c, unsigned mask); 251 void dsputil_init_mmi(DSPContext* c, AVCodecContext *avctx);
243 252
244 #else 253 #else
245 254
246 #define __align8 255 #define __align8
247 256