@@ -66,9 +66,11 @@ static int hwupload_init(AVFilterContext *avctx)
return 0;
}
-static int hwupload_query_formats(AVFilterContext *avctx)
+static int hwupload_query_formats(const AVFilterContext *avctx,
+ AVFilterFormatsConfig **cfg_in,
+ AVFilterFormatsConfig **cfg_out)
{
- HWUploadContext *ctx = avctx->priv;
+ const HWUploadContext *ctx = avctx->priv;
AVHWFramesConstraints *constraints = NULL;
const enum AVPixelFormat *input_pix_fmts, *output_pix_fmts;
AVFilterFormats *input_formats = NULL;
@@ -96,16 +98,15 @@ static int hwupload_query_formats(AVFilterContext *avctx)
}
}
- if ((err = ff_formats_ref(input_formats, &avctx->inputs[0]->outcfg.formats)) < 0 ||
+ if ((err = ff_formats_ref(input_formats, &cfg_in[0]->formats)) < 0 ||
(err = ff_formats_ref(ff_make_format_list(output_pix_fmts),
- &avctx->outputs[0]->incfg.formats)) < 0)
+ &cfg_out[0]->formats)) < 0)
goto fail;
av_hwframe_constraints_free(&constraints);
return 0;
fail:
- av_buffer_unref(&ctx->hwdevice_ref);
av_hwframe_constraints_free(&constraints);
return err;
}
@@ -265,7 +266,7 @@ const AVFilter ff_vf_hwupload = {
.priv_class = &hwupload_class,
FILTER_INPUTS(hwupload_inputs),
FILTER_OUTPUTS(hwupload_outputs),
- FILTER_QUERY_FUNC(hwupload_query_formats),
+ FILTER_QUERY_FUNC2(hwupload_query_formats),
.flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
.flags = AVFILTER_FLAG_HWDEVICE,
};