|
|
|
@@ -2021,7 +2021,8 @@ void h263_encode_init(MpegEncContext *s) |
|
|
|
s->avctx->extradata= av_malloc(1024); |
|
|
|
init_put_bits(&s->pb, s->avctx->extradata, 1024); |
|
|
|
|
|
|
|
mpeg4_encode_visual_object_header(s); |
|
|
|
if(!(s->workaround_bugs & FF_BUG_MS)) |
|
|
|
mpeg4_encode_visual_object_header(s); |
|
|
|
mpeg4_encode_vol_header(s, 0, 0); |
|
|
|
|
|
|
|
// ff_mpeg4_stuffing(&s->pb); ? |
|
|
|
@@ -2320,9 +2321,13 @@ static void mpeg4_encode_vol_header(MpegEncContext * s, int vo_number, int vol_n |
|
|
|
|
|
|
|
put_bits(&s->pb, 1, 0); /* random access vol */ |
|
|
|
put_bits(&s->pb, 8, s->vo_type); /* video obj type indication */ |
|
|
|
put_bits(&s->pb, 1, 1); /* is obj layer id= yes */ |
|
|
|
put_bits(&s->pb, 4, vo_ver_id); /* is obj layer ver id */ |
|
|
|
put_bits(&s->pb, 3, 1); /* is obj layer priority */ |
|
|
|
if(s->workaround_bugs & FF_BUG_MS) { |
|
|
|
put_bits(&s->pb, 1, 0); /* is obj layer id= no */ |
|
|
|
} else { |
|
|
|
put_bits(&s->pb, 1, 1); /* is obj layer id= yes */ |
|
|
|
put_bits(&s->pb, 4, vo_ver_id); /* is obj layer ver id */ |
|
|
|
put_bits(&s->pb, 3, 1); /* is obj layer priority */ |
|
|
|
} |
|
|
|
|
|
|
|
aspect_to_info(s, s->avctx->sample_aspect_ratio); |
|
|
|
|
|
|
|
@@ -2332,10 +2337,14 @@ static void mpeg4_encode_vol_header(MpegEncContext * s, int vo_number, int vol_n |
|
|
|
put_bits(&s->pb, 8, s->avctx->sample_aspect_ratio.den); |
|
|
|
} |
|
|
|
|
|
|
|
put_bits(&s->pb, 1, 1); /* vol control parameters= yes */ |
|
|
|
put_bits(&s->pb, 2, 1); /* chroma format YUV 420/YV12 */ |
|
|
|
put_bits(&s->pb, 1, s->low_delay); |
|
|
|
put_bits(&s->pb, 1, 0); /* vbv parameters= no */ |
|
|
|
if(s->workaround_bugs & FF_BUG_MS) { // |
|
|
|
put_bits(&s->pb, 1, 0); /* vol control parameters= no @@@ */ |
|
|
|
} else { |
|
|
|
put_bits(&s->pb, 1, 1); /* vol control parameters= yes */ |
|
|
|
put_bits(&s->pb, 2, 1); /* chroma format YUV 420/YV12 */ |
|
|
|
put_bits(&s->pb, 1, s->low_delay); |
|
|
|
put_bits(&s->pb, 1, 0); /* vbv parameters= no */ |
|
|
|
} |
|
|
|
|
|
|
|
put_bits(&s->pb, 2, RECT_SHAPE); /* vol shape= rectangle */ |
|
|
|
put_bits(&s->pb, 1, 1); /* marker bit */ |
|
|
|
@@ -2405,7 +2414,8 @@ void mpeg4_encode_picture_header(MpegEncContext * s, int picture_number) |
|
|
|
if(s->strict_std_compliance < 2 || picture_number==0) //HACK, the reference sw is buggy |
|
|
|
mpeg4_encode_vol_header(s, 0, 0); |
|
|
|
} |
|
|
|
mpeg4_encode_gop_header(s); |
|
|
|
if(!(s->workaround_bugs & FF_BUG_MS)) |
|
|
|
mpeg4_encode_gop_header(s); |
|
|
|
} |
|
|
|
|
|
|
|
s->partitioned_frame= s->data_partitioning && s->pict_type!=B_TYPE; |
|
|
|
|