When the format change, the VAAPI context cannot be destroyed. Otherwise, the reference frame surface will lost.
Signed-off-by: Yan Wang <yan.w...@linux.intel.com> --- libavcodec/decode.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 6c31166ec2..3eda1dc42c 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1397,7 +1397,9 @@ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) for (;;) { // Remove the previous hwaccel, if there was one. +#if !CONFIG_VP9_VAAPI_HWACCEL hwaccel_uninit(avctx); +#endif user_choice = avctx->get_format(avctx, choices); if (user_choice == AV_PIX_FMT_NONE) { @@ -1479,7 +1481,11 @@ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) "missing configuration.\n", desc->name); goto try_again; } +#if CONFIG_VP9_VAAPI_HWACCEL + if (hw_config->hwaccel && !avctx->hwaccel) { +#else if (hw_config->hwaccel) { +#endif av_log(avctx, AV_LOG_DEBUG, "Format %s requires hwaccel " "initialisation.\n", desc->name); err = hwaccel_init(avctx, hw_config); -- 2.17.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".