diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 244640fa59..53f745e5e0 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1344,6 +1344,12 @@ static int h264_field_start(H264Context *h, const H264SliceContext *sl, return ret; } + if (h->avctx->hwaccel) { + ret = h->avctx->hwaccel->start_frame(h->avctx, NULL, 0); + if (ret < 0) + return ret; + } + return 0; } diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index c99f6e6ec7..b98d1416c1 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -722,10 +722,6 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size) if (h->current_slice == 1) { if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS)) decode_postinit(h, i >= nals_needed); - - if (h->avctx->hwaccel && - (ret = h->avctx->hwaccel->start_frame(h->avctx, NULL, 0)) < 0) - return ret; } if (sl->redundant_pic_count == 0 &&