[FFmpeg-devel] [PATCH 19/23] avfilter/vf_program_opencl: Free inpads' names generically

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Aug 12 04:43:53 EEST 2021


Only ff_vf_program_opencl is affected by this: ff_vsrc_openclsrc
as a source filter doesn't have any inputs and the code where inpads
are inserted is unreachable for it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavfilter/vf_program_opencl.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/libavfilter/vf_program_opencl.c b/libavfilter/vf_program_opencl.c
index 5f455e9afa..c4f4acb919 100644
--- a/libavfilter/vf_program_opencl.c
+++ b/libavfilter/vf_program_opencl.c
@@ -288,10 +288,8 @@ static av_cold int program_opencl_init(AVFilterContext *avctx)
             input.config_props = &ff_opencl_filter_config_input;
 
             err = ff_insert_inpad(avctx, i, &input);
-            if (err < 0) {
-                av_freep(&input.name);
+            if (err < 0)
                 return err;
-            }
         }
     }
 
@@ -302,14 +300,11 @@ static av_cold void program_opencl_uninit(AVFilterContext *avctx)
 {
     ProgramOpenCLContext *ctx = avctx->priv;
     cl_int cle;
-    int i;
 
     if (ctx->nb_inputs > 0) {
         ff_framesync_uninit(&ctx->fs);
 
         av_freep(&ctx->frames);
-        for (i = 0; i < avctx->nb_inputs; i++)
-            av_freep(&avctx->input_pads[i].name);
     }
 
     if (ctx->kernel) {
@@ -375,7 +370,7 @@ const AVFilter ff_vf_program_opencl = {
     .activate       = &program_opencl_activate,
     .inputs         = NULL,
     .outputs        = program_opencl_outputs,
-    .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
+    .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE | FF_FILTER_FLAG_FREE_INPADS,
 };
 
 #endif
-- 
2.30.2



More information about the ffmpeg-devel mailing list