diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index d71ddbe9ba..215a6d3c65 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1407,6 +1407,12 @@ static int h264_field_start(H264Context *h, const H264SliceContext *sl, sps = h->ps.sps; + if (sps && sps->bitstream_restriction_flag && + h->avctx->has_b_frames < sps->num_reorder_frames) { + h->avctx->has_b_frames = FFMAX(h->avctx->has_b_frames, + sps->num_reorder_frames); + } + last_pic_droppable = h->droppable; last_pic_structure = h->picture_structure; h->droppable = (nal->ref_idc == 0);