diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-10-22 18:55:20 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-10-22 18:55:20 +0000 |
commit | 03e93d35b0167a7f163a0e480567e97260920d08 (patch) | |
tree | d2a981154aa4543ca5b7dba40df08d4ce5622b20 | |
parent | 3b4b29dcd9c5da2ba40a34ce3d9eb3a7f659ba77 (diff) | |
download | ffmpeg-03e93d35b0167a7f163a0e480567e97260920d08.tar.gz |
xvid qpel bug workaround
Originally committed as revision 1063 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/avcodec.h | 1 | ||||
-rw-r--r-- | libavcodec/h263dec.c | 4 | ||||
-rw-r--r-- | libavcodec/mpegvideo.c | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 86d9b6f586..b84c905337 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -426,6 +426,7 @@ typedef struct AVCodecContext { #define FF_BUG_UMP4 8 #define FF_BUG_NO_PADDING 16 #define FF_BUG_AC_VLC 32 +#define FF_BUG_QPEL_CHROMA 64 //#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100% /** diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index b8ea14c34c..653a2a8708 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -372,6 +372,10 @@ uint64_t time= rdtsc(); s->workaround_bugs|= FF_BUG_UMP4; s->workaround_bugs|= FF_BUG_AC_VLC; } + + if(s->divx_version){ + s->workaround_bugs|= FF_BUG_QPEL_CHROMA; + } //printf("padding_bug_score: %d\n", s->padding_bug_score); #if 0 if(s->divx_version==500) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index dff8fffe75..7fadcc2a0f 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -1384,7 +1384,7 @@ static inline void qpel_motion(MpegEncContext *s, if(field_based){ mx= motion_x/2; my= motion_y>>1; - }else if(s->divx_version){ + }else if(s->workaround_bugs&FF_BUG_QPEL_CHROMA){ mx= (motion_x>>1)|(motion_x&1); my= (motion_y>>1)|(motion_y&1); }else{ |