Mercurial > libavcodec.hg
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; |