[FFmpeg-devel] [PATCH] swresample/resample: Fix flush refelction length
Michael Niedermayer
michael at niedermayer.cc
Wed Aug 16 01:33:11 EEST 2017
On Tue, Aug 15, 2017 at 09:45:47PM +0100, Rostislav Pehlivanov wrote:
> On 15 August 2017 at 16:17, Michael Niedermayer <michael at niedermayer.cc>
> wrote:
>
> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > ---
> > libswresample/resample.c | 9 ++++++---
> > 1 file changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/libswresample/resample.c b/libswresample/resample.c
> > index 39c242bf41..df49505bf9 100644
> > --- a/libswresample/resample.c
> > +++ b/libswresample/resample.c
> > @@ -544,18 +544,21 @@ static int64_t get_out_samples(struct SwrContext *s,
> > int in_samples) {
> > }
> >
> > static int resample_flush(struct SwrContext *s) {
> > + ResampleContext *c = s->resample;
> > AudioData *a= &s->in_buffer;
> > int i, j, ret;
> > - if((ret = swri_realloc_audio(a, s->in_buffer_index +
> > 2*s->in_buffer_count)) < 0)
> > + int reflection = (FFMIN(s->in_buffer_count, c->filter_length) + 1) /
> > 2;
> > +
> > + if((ret = swri_realloc_audio(a, s->in_buffer_index +
> > s->in_buffer_count + reflection)) < 0)
> > return ret;
> > av_assert0(a->planar);
> > for(i=0; i<a->ch_count; i++){
> > - for(j=0; j<s->in_buffer_count; j++){
> > + for(j=0; j<reflection; j++){
> > memcpy(a->ch[i] + (s->in_buffer_index+s->in_buffer_count+j
> > )*a->bps,
> > a->ch[i] + (s->in_buffer_index+s->in_buffer_count-j-1)*a->bps,
> > a->bps);
> > }
> > }
> > - s->in_buffer_count += (s->in_buffer_count+1)/2;
> > + s->in_buffer_count += reflection;
> > return 0;
> > }
> >
> > --
> > 2.14.1
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
>
> LGTM, patch tested
will apply
>
> Thanks, I'll send a patch to have a FATE test for this.
thanks
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
He who knows, does not speak. He who speaks, does not know. -- Lao Tsu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170816/85204ec6/attachment.sig>
More information about the ffmpeg-devel
mailing list