summaryrefslogtreecommitdiff
path: root/fftools
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-12-01 16:36:19 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-12-03 16:11:01 +0100
commitcf8925a0965a75f22cddb1cc42e11871ccf84c15 (patch)
treeb83da30e74e4de5c599789c37b3f01ef4dbe7bca /fftools
parent3be6fe9a567038a77cebca275db99573ed9853ba (diff)
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 <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'fftools')
-rw-r--r--fftools/ffmpeg_filter.c16
1 files 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;
}