[FFmpeg-cvslog] lavfi/qsvvpp: check the parameters before initializing vpp session

Haihao Xiang git at videolan.org
Tue Jun 20 04:53:48 EEST 2023


ffmpeg | branch: master | Haihao Xiang <haihao.xiang at intel.com> | Mon Jun 12 16:14:45 2023 +0800| [579711c2ccbaf5dc0e521980869be5bde54c437c] | committer: Haihao Xiang

lavfi/qsvvpp: check the parameters before initializing vpp session

According to the description about MFXVideoVPP_Query [1], we may call
MFXVideoVPP_Query to check the validity of the parameters for vpp
session, use the corrected values to initialize the session.

[1] https://spec.oneapi.io/versions/latest/elements/oneVPL/source/API_ref/VPL_func_vid_vpp.html#mfxvideovpp-query

Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=579711c2ccbaf5dc0e521980869be5bde54c437c
---

 libavfilter/qsvvpp.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
index 61402c8e0a..8683a4f217 100644
--- a/libavfilter/qsvvpp.c
+++ b/libavfilter/qsvvpp.c
@@ -823,6 +823,14 @@ int ff_qsvvpp_init(AVFilterContext *avctx, QSVVPPParam *param)
     ff_qsvvpp_print_iopattern(avctx, s->vpp_param.IOPattern & 0x0F, "VPP");
     /* Print output memory mode */
     ff_qsvvpp_print_iopattern(avctx, s->vpp_param.IOPattern & 0xF0, "VPP");
+
+    ret = MFXVideoVPP_Query(s->session, &s->vpp_param, &s->vpp_param);
+    if (ret < 0) {
+        ret = ff_qsvvpp_print_error(avctx, ret, "Error querying VPP params");
+        goto failed;
+    } else if (ret > 0)
+        ff_qsvvpp_print_warning(avctx, ret, "Warning When querying VPP params");
+
     ret = MFXVideoVPP_Init(s->session, &s->vpp_param);
     if (ret < 0) {
         ret = ff_qsvvpp_print_error(avctx, ret, "Failed to create a qsvvpp");



More information about the ffmpeg-cvslog mailing list