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,