diff --git a/libavcodec/h263.c b/libavcodec/h263.c index 5b3119ac9c..8ca67cce6d 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -4648,7 +4648,7 @@ static int decode_vop_header(MpegEncContext *s, GetBitContext *gb){ int time_incr, time_increment; s->pict_type = get_bits(gb, 2) + I_TYPE; /* pict type: I = 0 , P = 1 */ - if(s->pict_type==B_TYPE && s->low_delay && s->vol_control_parameters==0){ + if(s->pict_type==B_TYPE && s->low_delay && s->vol_control_parameters==0 && !(s->flags & CODEC_FLAG_LOW_DELAY)){ printf("low_delay flag set, but shouldnt, clearing it\n"); s->low_delay=0; } diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index b78ae38511..e818bbcd12 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -1653,7 +1653,10 @@ static void mpeg_decode_sequence_extension(MpegEncContext *s) s->bit_rate = ((s->bit_rate / 400) | (bit_rate_ext << 12)) * 400; skip_bits1(&s->gb); /* marker */ vbv_buf_ext = get_bits(&s->gb, 8); + s->low_delay = get_bits1(&s->gb); + if(s->flags & CODEC_FLAG_LOW_DELAY) s->low_delay=1; + frame_rate_ext_n = get_bits(&s->gb, 2); frame_rate_ext_d = get_bits(&s->gb, 5); av_reduce(