[FFmpeg-cvslog] avutil/hwcontext_qsv: register free function for device_derive
Tong Wu
git at videolan.org
Sun Jun 25 07:30:29 EEST 2023
ffmpeg | branch: master | Tong Wu <tong1.wu-at-intel.com at ffmpeg.org> | Mon Jun 19 14:15:07 2023 +0800| [28ed898ac6dcb78dab42913513e85038c069aa33] | committer: Haihao Xiang
avutil/hwcontext_qsv: register free function for device_derive
When qsv device is created by device_derive, the ctx->free function is
not registered, causing potential memory leak because of not properly
closing the MFX session.
Signed-off-by: Tong Wu <tong1.wu at intel.com>
Signed-off-by: Wenbin Chen <wenbin.chen at intel.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=28ed898ac6dcb78dab42913513e85038c069aa33
---
libavutil/hwcontext_qsv.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
index 4ed4242ddf..b1759a93e1 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -2094,6 +2094,15 @@ static int qsv_device_derive(AVHWDeviceContext *ctx,
AVDictionary *opts, int flags)
{
mfxIMPL impl;
+ QSVDevicePriv *priv;
+
+ priv = av_mallocz(sizeof(*priv));
+ if (!priv)
+ return AVERROR(ENOMEM);
+
+ ctx->user_opaque = priv;
+ ctx->free = qsv_device_free;
+
impl = choose_implementation("hw_any", child_device_ctx->type);
return qsv_device_derive_from_child(ctx, impl,
child_device_ctx, flags);
More information about the ffmpeg-cvslog
mailing list