diff mbox series

[FFmpeg-devel,3/6] lavfi/qsvvpp: check the parameters before initializing vpp session

Message ID 20230612081448.936570-3-haihao.xiang@intel.com
State Accepted
Commit 579711c2ccbaf5dc0e521980869be5bde54c437c
Headers show
Series [FFmpeg-devel,1/6] lavfi/qsvvpp: track the runtime version in vpp context | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Xiang, Haihao June 12, 2023, 8:14 a.m. UTC
From: Haihao Xiang <haihao.xiang@intel.com>

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@intel.com>
---
 libavfilter/qsvvpp.c | 8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox series

Patch

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");