[FFmpeg-devel] [PATCH] libavcodec/vp9: Fix VP9 dynamic resolution changing decoding on VAAPI.

Yan Wang yan.wang at linux.intel.com
Tue May 28 09:56:18 EEST 2019


When the format change, the VAAPI context cannot be destroyed.
Otherwise, the reference frame surface will lost.

Signed-off-by: Yan Wang <yan.wang at 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



More information about the ffmpeg-devel mailing list