diff options
author | Haihao Xiang <haihao.xiang@intel.com> | 2023-06-12 16:14:45 +0800 |
---|---|---|
committer | Haihao Xiang <haihao.xiang@intel.com> | 2023-06-20 09:52:43 +0800 |
commit | 579711c2ccbaf5dc0e521980869be5bde54c437c (patch) | |
tree | ea5d3875c529da509819256b8b893a111cd7b0ba /libavfilter/qsvvpp.c | |
parent | 5189b51939f4b1c21d0fb23b2303b07893c7f6a5 (diff) | |
download | ffmpeg-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.c | 8 |
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"); |