X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Faf_join.c;h=eb60fe9b29313354d3fb2bad3488f8d2292ab362;hb=a04ad248a05e7b613abe09b3bb067f555108d794;hp=930c9e48e736a1bae9a83363f8f1c5084c6cbeb9;hpb=34a0a9746b2f441db7c45983838a88aa87a33834;p=ffmpeg diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c index 930c9e48e73..eb60fe9b293 100644 --- a/libavfilter/af_join.c +++ b/libavfilter/af_join.c @@ -25,6 +25,7 @@ */ #include "libavutil/avassert.h" +#include "libavutil/avstring.h" #include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/opt.h" @@ -185,12 +186,10 @@ static av_cold int join_init(AVFilterContext *ctx) return ret; for (i = 0; i < s->inputs; i++) { - char name[32]; AVFilterPad pad = { 0 }; - snprintf(name, sizeof(name), "input%d", i); - pad.type = AVMEDIA_TYPE_AUDIO; - pad.name = av_strdup(name); + pad.type = AVMEDIA_TYPE_AUDIO; + pad.name = av_asprintf("input%d", i); if (!pad.name) return AVERROR(ENOMEM); @@ -208,9 +207,12 @@ static av_cold void join_uninit(AVFilterContext *ctx) JoinContext *s = ctx->priv; int i; + for (i = 0; i < s->inputs && s->input_frames; i++) { + av_frame_free(&s->input_frames[i]); + } + for (i = 0; i < ctx->nb_inputs; i++) { av_freep(&ctx->input_pads[i].name); - av_frame_free(&s->input_frames[i]); } av_freep(&s->channels); @@ -225,12 +227,12 @@ static int join_query_formats(AVFilterContext *ctx) int i, ret; if ((ret = ff_add_channel_layout(&layouts, s->channel_layout)) < 0 || - (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0) + (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0) return ret; for (i = 0; i < ctx->nb_inputs; i++) { layouts = ff_all_channel_layouts(); - if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->out_channel_layouts)) < 0) + if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->outcfg.channel_layouts)) < 0) return ret; } @@ -526,7 +528,7 @@ static const AVFilterPad avfilter_af_join_outputs[] = { { NULL } }; -AVFilter ff_af_join = { +const AVFilter ff_af_join = { .name = "join", .description = NULL_IF_CONFIG_SMALL("Join multiple audio streams into " "multi-channel output."),