xvid qpel bug workaround

Originally committed as revision 1063 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Michael Niedermayer 23 years ago
parent 3b4b29dcd9
commit 03e93d35b0
  1. 1
      libavcodec/avcodec.h
  2. 4
      libavcodec/h263dec.c
  3. 2
      libavcodec/mpegvideo.c

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

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

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