*/
#include "libavutil/avassert.h"
+#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/opt.h"
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);
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);
int nb_samples = 0;
int64_t pts;
+ FF_FILTER_FORWARD_STATUS_BACK_ALL(ctx->outputs[0], ctx);
+
if (!s->input_frames[0]) {
ret = ff_inlink_consume_frame(ctx->inputs[0], &s->input_frames[0]);
if (ret < 0) {