diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-12-01 16:36:19 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-12-03 16:11:01 +0100 |
commit | cf8925a0965a75f22cddb1cc42e11871ccf84c15 (patch) | |
tree | b83da30e74e4de5c599789c37b3f01ef4dbe7bca | |
parent | 3be6fe9a567038a77cebca275db99573ed9853ba (diff) | |
download | ffmpeg-cf8925a0965a75f22cddb1cc42e11871ccf84c15.tar.gz |
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>
-rw-r--r-- | fftools/ffmpeg_filter.c | 16 |
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; } |