From d50a4c4a5b5c7f6fb563fd4fc0c9deb4a5704a10 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Wed, 1 Feb 2012 15:53:54 +0100 Subject: [PATCH] lavfi/amerge: copy ref props after filtering samples. This fixes various issues with ffmpeg -ss and -t. --- libavfilter/af_amerge.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavfilter/af_amerge.c b/libavfilter/af_amerge.c index 736379c4498..c9b0f21fd1c 100644 --- a/libavfilter/af_amerge.c +++ b/libavfilter/af_amerge.c @@ -186,6 +186,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples) { AVFilterContext *ctx = inlink->dst; AMergeContext *am = ctx->priv; + AVFilterLink *const outlink = ctx->outputs[0]; int input_number = inlink == ctx->inputs[1]; struct amerge_queue *inq = &am->queue[input_number]; int nb_samples, ns, i; @@ -214,6 +215,12 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples) ins[i] = (*inbuf[i])->data[0] + am->queue[i].pos * am->nb_in_ch[i] * am->bps; } + + avfilter_copy_buffer_ref_props(outbuf, *inbuf[0]); + outbuf->audio->nb_samples = nb_samples; + outbuf->audio->channel_layout = outlink->channel_layout; + outbuf->audio->planar = outlink->planar; + while (nb_samples) { ns = nb_samples; for (i = 0; i < 2; i++) -- 2.39.2