From cf8925a0965a75f22cddb1cc42e11871ccf84c15 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Wed, 1 Dec 2021 16:36:19 +0100 Subject: fftools/ffmpeg_filter: Avoid DynBuf-API for writing strings It is not really natural, it requires internal allocations of its own and its error handling is horrible (i.e. the implicit (re)allocations here are unchecked). Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg_filter.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 452b689d62..47bbb67ce0 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -201,17 +201,15 @@ static char *describe_filter_link(FilterGraph *fg, AVFilterInOut *inout, int in) AVFilterContext *ctx = inout->filter_ctx; AVFilterPad *pads = in ? ctx->input_pads : ctx->output_pads; int nb_pads = in ? ctx->nb_inputs : ctx->nb_outputs; - AVIOContext *pb; - uint8_t *res = NULL; + char *res; - if (avio_open_dyn_buf(&pb) < 0) - exit_program(1); - - avio_printf(pb, "%s", ctx->filter->name); if (nb_pads > 1) - avio_printf(pb, ":%s", avfilter_pad_get_name(pads, inout->pad_idx)); - avio_w8(pb, 0); - avio_close_dyn_buf(pb, &res); + res = av_strdup(ctx->filter->name); + else + res = av_asprintf("%s:%s", ctx->filter->name, + avfilter_pad_get_name(pads, inout->pad_idx)); + if (!res) + exit_program(1); return res; } -- cgit v1.2.3