Browse Source

xvid qpel bug workaround

Originally committed as revision 1063 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer 23 years ago
parent
commit
03e93d35b0
3 changed files with 6 additions and 1 deletions
  1. +1
    -0
      libavcodec/avcodec.h
  2. +4
    -0
      libavcodec/h263dec.c
  3. +1
    -1
      libavcodec/mpegvideo.c

+ 1
- 0
libavcodec/avcodec.h View File

@@ -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%
/**


+ 4
- 0
libavcodec/h263dec.c View File

@@ -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)


+ 1
- 1
libavcodec/mpegvideo.c View File

@@ -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{


Loading…
Cancel
Save