comparison mpegvideo.h @ 1092:f59c3f66363b libavcodec

MpegEncContext.(i)dct_* -> DspContext.(i)dct_* bitexact cleanup
author michaelni
date Mon, 03 Mar 2003 14:54:00 +0000
parents 7e79a58954b1
children 5e6e505d8997
comparison
equal deleted inserted replaced
1091:03df246fb06b 1092:f59c3f66363b
344 /* scantables */ 344 /* scantables */
345 ScanTable __align8 intra_scantable; 345 ScanTable __align8 intra_scantable;
346 ScanTable intra_h_scantable; 346 ScanTable intra_h_scantable;
347 ScanTable intra_v_scantable; 347 ScanTable intra_v_scantable;
348 ScanTable inter_scantable; // if inter == intra then intra should be used to reduce tha cache usage 348 ScanTable inter_scantable; // if inter == intra then intra should be used to reduce tha cache usage
349 uint8_t idct_permutation[64];
350 int idct_permutation_type;
351 #define FF_NO_IDCT_PERM 1
352 #define FF_LIBMPEG2_IDCT_PERM 2
353 #define FF_SIMPLE_IDCT_PERM 3
354 #define FF_TRANSPOSE_IDCT_PERM 4
355 349
356 void *opaque; /* private data for the user */ 350 void *opaque; /* private data for the user */
357 351
358 /* bit rate control */ 352 /* bit rate control */
359 int I_frame_bits; //FIXME used in mpeg12 ... 353 int I_frame_bits; //FIXME used in mpeg12 ...
560 DCTELEM *block/*align 16*/, int n, int qscale); 554 DCTELEM *block/*align 16*/, int n, int qscale);
561 void (*dct_unquantize)(struct MpegEncContext *s, // unquantizer to use (mpeg4 can use both) 555 void (*dct_unquantize)(struct MpegEncContext *s, // unquantizer to use (mpeg4 can use both)
562 DCTELEM *block/*align 16*/, int n, int qscale); 556 DCTELEM *block/*align 16*/, int n, int qscale);
563 int (*dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow); 557 int (*dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow);
564 int (*fast_dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow); 558 int (*fast_dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow);
565 void (*fdct)(DCTELEM *block/* align 16*/);
566 void (*idct_put)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
567 void (*idct_add)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
568 //FIXME move above funcs into dspContext perhaps
569 } MpegEncContext; 559 } MpegEncContext;
570 560
571 561
572 int DCT_common_init(MpegEncContext *s); 562 int DCT_common_init(MpegEncContext *s);
573 int MPV_common_init(MpegEncContext *s); 563 int MPV_common_init(MpegEncContext *s);
608 char ff_get_pict_type_char(int pict_type); 598 char ff_get_pict_type_char(int pict_type);
609 int ff_combine_frame( MpegEncContext *s, int next, uint8_t **buf, int *buf_size); 599 int ff_combine_frame( MpegEncContext *s, int next, uint8_t **buf, int *buf_size);
610 600
611 extern enum PixelFormat ff_yuv420p_list[2]; 601 extern enum PixelFormat ff_yuv420p_list[2];
612 602
613 extern int ff_bit_exact;
614
615 static inline void ff_init_block_index(MpegEncContext *s){ 603 static inline void ff_init_block_index(MpegEncContext *s){
616 s->block_index[0]= s->block_wrap[0]*(s->mb_y*2 + 1) - 1 + s->mb_x*2; 604 s->block_index[0]= s->block_wrap[0]*(s->mb_y*2 + 1) - 1 + s->mb_x*2;
617 s->block_index[1]= s->block_wrap[0]*(s->mb_y*2 + 1) + s->mb_x*2; 605 s->block_index[1]= s->block_wrap[0]*(s->mb_y*2 + 1) + s->mb_x*2;
618 s->block_index[2]= s->block_wrap[0]*(s->mb_y*2 + 2) - 1 + s->mb_x*2; 606 s->block_index[2]= s->block_wrap[0]*(s->mb_y*2 + 2) - 1 + s->mb_x*2;
619 s->block_index[3]= s->block_wrap[0]*(s->mb_y*2 + 2) + s->mb_x*2; 607 s->block_index[3]= s->block_wrap[0]*(s->mb_y*2 + 2) + s->mb_x*2;