[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