Mercurial > libavcodec.hg
comparison mpegvideo.h @ 1389:da0b3a50d209 libavcodec
rate distortion mb decision support
fix decoding of old %16!=0 divx
fix assertion failure in motion_est.c
author | michaelni |
---|---|
date | Tue, 29 Jul 2003 02:09:12 +0000 |
parents | 0fd38b711f06 |
children | 524c904a66b8 |
comparison
equal
deleted
inserted
replaced
1388:b5c65adac96a | 1389:da0b3a50d209 |
---|---|
428 #define MB_TYPE_BACKWARD 0x40 | 428 #define MB_TYPE_BACKWARD 0x40 |
429 #define MB_TYPE_BIDIR 0x80 | 429 #define MB_TYPE_BIDIR 0x80 |
430 | 430 |
431 int block_index[6]; ///< index to current MB in block based arrays with edges | 431 int block_index[6]; ///< index to current MB in block based arrays with edges |
432 int block_wrap[6]; | 432 int block_wrap[6]; |
433 uint8_t *dest[3]; | |
433 | 434 |
434 int *mb_index2xy; ///< mb_index -> mb_x + mb_y*mb_stride | 435 int *mb_index2xy; ///< mb_index -> mb_x + mb_y*mb_stride |
435 | 436 |
436 /** matrix transmitted in the bitstream */ | 437 /** matrix transmitted in the bitstream */ |
437 uint16_t intra_matrix[64]; | 438 uint16_t intra_matrix[64]; |
721 void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int endy, int status); | 722 void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int endy, int status); |
722 | 723 |
723 | 724 |
724 extern enum PixelFormat ff_yuv420p_list[2]; | 725 extern enum PixelFormat ff_yuv420p_list[2]; |
725 | 726 |
726 static inline void ff_init_block_index(MpegEncContext *s){ | 727 void ff_init_block_index(MpegEncContext *s); |
727 s->block_index[0]= s->block_wrap[0]*(s->mb_y*2 + 1) - 1 + s->mb_x*2; | |
728 s->block_index[1]= s->block_wrap[0]*(s->mb_y*2 + 1) + s->mb_x*2; | |
729 s->block_index[2]= s->block_wrap[0]*(s->mb_y*2 + 2) - 1 + s->mb_x*2; | |
730 s->block_index[3]= s->block_wrap[0]*(s->mb_y*2 + 2) + s->mb_x*2; | |
731 s->block_index[4]= s->block_wrap[4]*(s->mb_y + 1) + s->block_wrap[0]*(s->mb_height*2 + 2) + s->mb_x; | |
732 s->block_index[5]= s->block_wrap[4]*(s->mb_y + 1 + s->mb_height + 2) + s->block_wrap[0]*(s->mb_height*2 + 2) + s->mb_x; | |
733 } | |
734 | 728 |
735 static inline void ff_update_block_index(MpegEncContext *s){ | 729 static inline void ff_update_block_index(MpegEncContext *s){ |
736 s->block_index[0]+=2; | 730 s->block_index[0]+=2; |
737 s->block_index[1]+=2; | 731 s->block_index[1]+=2; |
738 s->block_index[2]+=2; | 732 s->block_index[2]+=2; |
739 s->block_index[3]+=2; | 733 s->block_index[3]+=2; |
740 s->block_index[4]++; | 734 s->block_index[4]++; |
741 s->block_index[5]++; | 735 s->block_index[5]++; |
736 s->dest[0]+= 16; | |
737 s->dest[1]+= 8; | |
738 s->dest[2]+= 8; | |
742 } | 739 } |
743 | 740 |
744 static inline int get_bits_diff(MpegEncContext *s){ | 741 static inline int get_bits_diff(MpegEncContext *s){ |
745 const int bits= get_bit_count(&s->pb); | 742 const int bits= get_bit_count(&s->pb); |
746 const int last= s->last_bits; | 743 const int last= s->last_bits; |
831 void h263_encode_init(MpegEncContext *s); | 828 void h263_encode_init(MpegEncContext *s); |
832 void h263_decode_init_vlc(MpegEncContext *s); | 829 void h263_decode_init_vlc(MpegEncContext *s); |
833 int h263_decode_picture_header(MpegEncContext *s); | 830 int h263_decode_picture_header(MpegEncContext *s); |
834 int ff_h263_decode_gob_header(MpegEncContext *s); | 831 int ff_h263_decode_gob_header(MpegEncContext *s); |
835 int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb); | 832 int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb); |
833 void ff_h263_update_motion_val(MpegEncContext * s); | |
836 | 834 |
837 | 835 |
838 int intel_h263_decode_picture_header(MpegEncContext *s); | 836 int intel_h263_decode_picture_header(MpegEncContext *s); |
839 int flv_h263_decode_picture_header(MpegEncContext *s); | 837 int flv_h263_decode_picture_header(MpegEncContext *s); |
840 int ff_h263_decode_mb(MpegEncContext *s, | 838 int ff_h263_decode_mb(MpegEncContext *s, |