diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 0c38121827..3252b38ff5 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1325,10 +1325,6 @@ static int h264_slice_header_parse(H264Context *h, H264SliceContext *sl) } } - if (!h->setup_finished) - ff_h264_init_poc(h->cur_pic_ptr->field_poc, &h->cur_pic_ptr->poc, - sps, &h->poc, h->picture_structure, h->nal_ref_idc); - if (pps->redundant_pic_cnt_present) sl->redundant_pic_count = get_ue_golomb(&sl->gb); @@ -1446,6 +1442,10 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl) if (ret < 0) return ret; + if (!h->setup_finished) + ff_h264_init_poc(h->cur_pic_ptr->field_poc, &h->cur_pic_ptr->poc, + h->ps.sps, &h->poc, h->picture_structure, h->nal_ref_idc); + ret = ff_h264_build_ref_list(h, sl); if (ret < 0) return ret;