diff --git a/libavcodec/h263.c b/libavcodec/h263.c index 80c9a3adc8..80fcd13e19 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -1522,7 +1522,11 @@ static void mpeg4_encode_vol_header(MpegEncContext * s) int vo_ver_id=1; //must be 2 if we want GMC or q-pel char buf[255]; - s->vo_type= s->has_b_frames ? CORE_VO_TYPE : SIMPLE_VO_TYPE; + if(s->max_b_frames){ + s->vo_type= ADV_SIMPLE_VO_TYPE; + }else{ + s->vo_type= SIMPLE_VO_TYPE; + } put_bits(&s->pb, 16, 0); put_bits(&s->pb, 16, 0x100); /* video obj */ diff --git a/libavcodec/mpeg4data.h b/libavcodec/mpeg4data.h index ef612c2fa4..17c1942205 100644 --- a/libavcodec/mpeg4data.h +++ b/libavcodec/mpeg4data.h @@ -4,8 +4,13 @@ #define BIN_ONLY_SHAPE 2 #define GRAY_SHAPE 3 -#define SIMPLE_VO_TYPE 1 -#define CORE_VO_TYPE 3 +#define SIMPLE_VO_TYPE 1 +#define CORE_VO_TYPE 3 +#define MAIN_VO_TYPE 4 +#define NBIT_VO_TYPE 5 +#define ARTS_VO_TYPE 10 +#define ACE_VO_TYPE 12 +#define ADV_SIMPLE_VO_TYPE 17 // aspect_ratio_info #define EXTENDED_PAR 15 diff --git a/tests/ffmpeg.regression.ref b/tests/ffmpeg.regression.ref index 57a19a81a3..32709e3602 100644 --- a/tests/ffmpeg.regression.ref +++ b/tests/ffmpeg.regression.ref @@ -13,7 +13,7 @@ bdd8dc1182fa731f54c3b5ebf9002e40 *./data/out.yuv f7b3140fea7b70a5673061aebe547562 *./data/out.yuv a180b84cc43ab6bed7796354385f00c1 *./data/a-odivx.avi 3a1463cf62c2bee9046870f34400494c *./data/out.yuv -d64b3c8a7e549b8e32c6101813ad2e02 *./data/a-mpeg4-rc.avi +50be55c7fbb9a7b05d51afe3004232ef *./data/a-mpeg4-rc.avi f881bf7db273282791c18330bcae338d *./data/out.yuv b517505ecd37c09656ae12646428da58 *./data/a-mpeg4-adv.avi 0147bab9d6971eb177457dd096ae8aaf *./data/out.yuv