aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/qsvvpp.c
diff options
context:
space:
mode:
authorHaihao Xiang <haihao.xiang@intel.com>2023-06-12 16:14:45 +0800
committerHaihao Xiang <haihao.xiang@intel.com>2023-06-20 09:52:43 +0800
commit579711c2ccbaf5dc0e521980869be5bde54c437c (patch)
treeea5d3875c529da509819256b8b893a111cd7b0ba /libavfilter/qsvvpp.c
parent5189b51939f4b1c21d0fb23b2303b07893c7f6a5 (diff)
downloadffmpeg-579711c2ccbaf5dc0e521980869be5bde54c437c.tar.gz
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@intel.com>
Diffstat (limited to 'libavfilter/qsvvpp.c')
-rw-r--r--libavfilter/qsvvpp.c8
1 files changed, 8 insertions, 0 deletions
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");