Mercurial > libavcodec.hg
comparison mpegvideo.h @ 828:ace3ccd18dd2 libavcodec
Altivec Patch (Mark III) by (Dieter Shirley <dieters at schemasoft dot com>)
author | michaelni |
---|---|
date | Sat, 02 Nov 2002 11:28:08 +0000 |
parents | 08423289ec57 |
children | e460775adb38 |
comparison
equal
deleted
inserted
replaced
827:770578c6c300 | 828:ace3ccd18dd2 |
---|---|
101 | 101 |
102 typedef struct ScanTable{ | 102 typedef struct ScanTable{ |
103 const UINT8 *scantable; | 103 const UINT8 *scantable; |
104 UINT8 permutated[64]; | 104 UINT8 permutated[64]; |
105 UINT8 raster_end[64]; | 105 UINT8 raster_end[64]; |
106 #ifdef ARCH_POWERPC | |
107 /* Used by dct_quantise_alitvec to find last-non-zero */ | |
108 UINT8 __align8 inverse[64]; | |
109 #endif | |
106 } ScanTable; | 110 } ScanTable; |
107 | 111 |
108 typedef struct MpegEncContext { | 112 typedef struct MpegEncContext { |
109 struct AVCodecContext *avctx; | 113 struct AVCodecContext *avctx; |
110 /* the following parameters must be initialized before encoding */ | 114 /* the following parameters must be initialized before encoding */ |
285 int intra_quant_bias; /* bias for the quantizer */ | 289 int intra_quant_bias; /* bias for the quantizer */ |
286 int inter_quant_bias; /* bias for the quantizer */ | 290 int inter_quant_bias; /* bias for the quantizer */ |
287 int min_qcoeff; /* minimum encodable coefficient */ | 291 int min_qcoeff; /* minimum encodable coefficient */ |
288 int max_qcoeff; /* maximum encodable coefficient */ | 292 int max_qcoeff; /* maximum encodable coefficient */ |
289 /* precomputed matrix (combine qscale and DCT renorm) */ | 293 /* precomputed matrix (combine qscale and DCT renorm) */ |
290 int q_intra_matrix[32][64]; | 294 int __align8 q_intra_matrix[32][64]; |
291 int q_inter_matrix[32][64]; | 295 int __align8 q_inter_matrix[32][64]; |
292 /* identical to the above but for MMX & these are not permutated */ | 296 /* identical to the above but for MMX & these are not permutated */ |
293 UINT16 __align8 q_intra_matrix16[32][64]; | 297 UINT16 __align8 q_intra_matrix16[32][64]; |
294 UINT16 __align8 q_inter_matrix16[32][64]; | 298 UINT16 __align8 q_inter_matrix16[32][64]; |
295 UINT16 __align8 q_intra_matrix16_bias[32][64]; | 299 UINT16 __align8 q_intra_matrix16_bias[32][64]; |
296 UINT16 __align8 q_inter_matrix16_bias[32][64]; | 300 UINT16 __align8 q_inter_matrix16_bias[32][64]; |
297 int block_last_index[6]; /* last non zero coefficient in block */ | 301 int block_last_index[6]; /* last non zero coefficient in block */ |
298 /* scantables */ | 302 /* scantables */ |
299 ScanTable intra_scantable; | 303 ScanTable __align8 intra_scantable; |
300 ScanTable intra_h_scantable; | 304 ScanTable intra_h_scantable; |
301 ScanTable intra_v_scantable; | 305 ScanTable intra_v_scantable; |
302 ScanTable inter_scantable; // if inter == intra then intra should be used to reduce tha cache usage | 306 ScanTable inter_scantable; // if inter == intra then intra should be used to reduce tha cache usage |
303 UINT8 idct_permutation[64]; | 307 UINT8 idct_permutation[64]; |
304 int idct_permutation_type; | 308 int idct_permutation_type; |
533 void MPV_common_init_mlib(MpegEncContext *s); | 537 void MPV_common_init_mlib(MpegEncContext *s); |
534 #endif | 538 #endif |
535 #ifdef HAVE_MMI | 539 #ifdef HAVE_MMI |
536 void MPV_common_init_mmi(MpegEncContext *s); | 540 void MPV_common_init_mmi(MpegEncContext *s); |
537 #endif | 541 #endif |
542 #ifdef ARCH_POWERPC | |
543 void MPV_common_init_ppc(MpegEncContext *s); | |
544 #endif | |
538 extern void (*draw_edges)(UINT8 *buf, int wrap, int width, int height, int w); | 545 extern void (*draw_edges)(UINT8 *buf, int wrap, int width, int height, int w); |
539 void ff_conceal_past_errors(MpegEncContext *s, int conceal_all); | 546 void ff_conceal_past_errors(MpegEncContext *s, int conceal_all); |
540 void ff_copy_bits(PutBitContext *pb, UINT8 *src, int length); | 547 void ff_copy_bits(PutBitContext *pb, UINT8 *src, int length); |
541 void ff_clean_intra_table_entries(MpegEncContext *s); | 548 void ff_clean_intra_table_entries(MpegEncContext *s); |
542 void ff_init_scantable(MpegEncContext *s, ScanTable *st, const UINT8 *src_scantable); | 549 void ff_init_scantable(MpegEncContext *s, ScanTable *st, const UINT8 *src_scantable); |