[FFmpeg-cvslog] lavfi/aresample: set buffer properties after copy.

Nicolas George git at videolan.org
Thu Sep 13 12:13:50 CEST 2012


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Wed Sep 12 19:34:21 2012 +0200| [b5bea2f96065642e32e172cf57d1f36ac12a4a5d] | committer: Nicolas George

lavfi/aresample: set buffer properties after copy.

The aresample filter changes the format, layout and/or sample rate,
it can not copy them blindly from its input.

Related to trac ticket #1671.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b5bea2f96065642e32e172cf57d1f36ac12a4a5d
---

 libavfilter/af_aresample.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index 4221945..f0ccb5f 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
@@ -179,6 +179,9 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamplesref)
 
 
     avfilter_copy_buffer_ref_props(outsamplesref, insamplesref);
+    outsamplesref->format                = outlink->format;
+    outsamplesref->audio->channel_layout = outlink->channel_layout;
+    outsamplesref->audio->sample_rate    = outlink->sample_rate;
 
     if(insamplesref->pts != AV_NOPTS_VALUE) {
         int64_t inpts = av_rescale(insamplesref->pts, inlink->time_base.num * (int64_t)outlink->sample_rate * inlink->sample_rate, inlink->time_base.den);
@@ -197,7 +200,6 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamplesref)
         return 0;
     }
 
-    outsamplesref->audio->sample_rate = outlink->sample_rate;
     outsamplesref->audio->nb_samples  = n_out;
 
     ret = ff_filter_samples(outlink, outsamplesref);



More information about the ffmpeg-cvslog mailing list