diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 812e7c0027..f2dc47338c 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -491,8 +491,6 @@ static void decode_postinit(H264Context *h, int setup_finished) H264Picture *cur = h->cur_pic_ptr; int i, pics, out_of_order, out_idx; - h->cur_pic_ptr->f->pict_type = h->pict_type; - if (h->next_output_pic) return; diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 60355bfa31..5e9827d6c8 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -627,8 +627,6 @@ typedef struct H264Context { */ int single_decode_warning; - enum AVPictureType pict_type; - /** @} */ /** diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 0365e9b4c5..0e13fd9956 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -499,6 +499,8 @@ static int h264_frame_start(H264Context *h) pic->invalid_gap = 0; pic->sei_recovery_frame_cnt = h->sei.recovery_point.recovery_frame_cnt; + pic->f->pict_type = h->slice_ctx[0].slice_type; + if ((ret = alloc_picture(h, pic)) < 0) return ret; if(!h->frame_recovered && !h->avctx->hwaccel @@ -1140,10 +1142,6 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl) } } - // to make a few old functions happy, it's wrong though - if (!h->setup_finished) - h->pict_type = sl->slice_type; - pps_id = get_ue_golomb(&sl->gb); if (pps_id >= MAX_PPS_COUNT) { av_log(h->avctx, AV_LOG_ERROR, "pps_id %u out of range\n", pps_id);