diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-07-29 02:09:12 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-07-29 02:09:12 +0000 |
commit | 7d1c3fc1d683d53982a1dec14f0f9749a07ae48d (patch) | |
tree | 23a9984eef372f9710641e2cb6f302ea9af1727f /libavcodec/mpegvideo.h | |
parent | 80adda8efd35c920c7ba0c43d530102a2fd22bc3 (diff) | |
download | ffmpeg-7d1c3fc1d683d53982a1dec14f0f9749a07ae48d.tar.gz |
rate distortion mb decision support
fix decoding of old %16!=0 divx
fix assertion failure in motion_est.c
Originally committed as revision 2094 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.h')
-rw-r--r-- | libavcodec/mpegvideo.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 3546d85a37..a0f5d4c0b6 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -430,6 +430,7 @@ typedef struct MpegEncContext { int block_index[6]; ///< index to current MB in block based arrays with edges int block_wrap[6]; + uint8_t *dest[3]; int *mb_index2xy; ///< mb_index -> mb_x + mb_y*mb_stride @@ -723,14 +724,7 @@ void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int en extern enum PixelFormat ff_yuv420p_list[2]; -static inline void ff_init_block_index(MpegEncContext *s){ - s->block_index[0]= s->block_wrap[0]*(s->mb_y*2 + 1) - 1 + s->mb_x*2; - s->block_index[1]= s->block_wrap[0]*(s->mb_y*2 + 1) + s->mb_x*2; - s->block_index[2]= s->block_wrap[0]*(s->mb_y*2 + 2) - 1 + s->mb_x*2; - s->block_index[3]= s->block_wrap[0]*(s->mb_y*2 + 2) + s->mb_x*2; - s->block_index[4]= s->block_wrap[4]*(s->mb_y + 1) + s->block_wrap[0]*(s->mb_height*2 + 2) + s->mb_x; - 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; -} +void ff_init_block_index(MpegEncContext *s); static inline void ff_update_block_index(MpegEncContext *s){ s->block_index[0]+=2; @@ -739,6 +733,9 @@ static inline void ff_update_block_index(MpegEncContext *s){ s->block_index[3]+=2; s->block_index[4]++; s->block_index[5]++; + s->dest[0]+= 16; + s->dest[1]+= 8; + s->dest[2]+= 8; } static inline int get_bits_diff(MpegEncContext *s){ @@ -833,6 +830,7 @@ void h263_decode_init_vlc(MpegEncContext *s); int h263_decode_picture_header(MpegEncContext *s); int ff_h263_decode_gob_header(MpegEncContext *s); int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb); +void ff_h263_update_motion_val(MpegEncContext * s); int intel_h263_decode_picture_header(MpegEncContext *s); |