[FFmpeg-devel] [PATCH 4/8] lavfi/vf_vpp_qsv: add vpp_preinit callback
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Thu Jan 12 06:11:03 EET 2023
Xiang, Haihao:
> From: Haihao Xiang <haihao.xiang at intel.com>
>
> Set the expected default value for options in this callback, hence we
> have the right values even if these options are not included in the
> option arrray.
>
> This is in preparation for reusing the code for other QSV filters.
>
> Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
> ---
> libavfilter/vf_vpp_qsv.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c
> index cf11cd7fdc..2a7b06fa33 100644
> --- a/libavfilter/vf_vpp_qsv.c
> +++ b/libavfilter/vf_vpp_qsv.c
> @@ -259,6 +259,19 @@ release:
> return ret;
> }
>
> +static av_cold int vpp_preinit(AVFilterContext *ctx)
> +{
> + VPPContext *vpp = ctx->priv;
> + /* For AV_OPT_TYPE_STRING options, NULL is handled in other way so
> + * we needn't set default value here
> + */
> + vpp->saturation = 1.0;
> + vpp->contrast = 1.0;
> + vpp->transpose = -1;
> +
> + return 0;
> +}
> +
> static av_cold int vpp_init(AVFilterContext *ctx)
> {
> VPPContext *vpp = ctx->priv;
> @@ -683,6 +696,7 @@ const AVFilter ff_vf_vpp_qsv = {
> .name = "vpp_qsv",
> .description = NULL_IF_CONFIG_SMALL("Quick Sync Video VPP."),
> .priv_size = sizeof(VPPContext),
> + .preinit = vpp_preinit,
> .init = vpp_init,
> .uninit = vpp_uninit,
> FILTER_INPUTS(vpp_inputs),
I do not get the point of this at all: None of these options are of type
AV_OPT_TYPE_STRING. You are merely setting the default values that
av_opt_set_defaults() would set lateron anyway.
I also fail to see how this would facilitate reusing this code for other
QSV filters.
- Andreas
More information about the ffmpeg-devel
mailing list