[FFmpeg-devel] [PATCH] Fix for issue #829 ("ffvorbis outputs crackling sound, libvorbis plays fine")

Siarhei Siamashka siarhei.siamashka
Mon May 11 10:08:56 CEST 2009


On Monday 11 May 2009, Michael Niedermayer wrote:
> On Sun, May 10, 2009 at 12:06:54PM +0300, Siarhei Siamashka wrote:
[...]
> >  libavcodec/vorbis_dec.c |   10 +++++-----
> >  1 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
> > index 49d6e8e..f626bce 100644
> > --- a/libavcodec/vorbis_dec.c
> > +++ b/libavcodec/vorbis_dec.c
> > @@ -1039,16 +1039,16 @@ static uint_fast8_t
> > vorbis_floor0_decode(vorbis_context *vc, float
> > two_cos_w=2.0f*cos(wstep*iter_cond); // needed all times
> >
> >                  /* similar part for the q and p products */
> > -                for(j=0;j<order;j+=2) {
> > -                    q *= lsp[j]  -two_cos_w;
> > -                    p *= lsp[j+1]-two_cos_w;
> > +                for(j=1;j<order;j+=2) {
> > +                    q *= lsp[j-1]-two_cos_w;
> > +                    p *= lsp[j]  -two_cos_w;
>
> am i missing something or is all what you change equivalent to
> for order-1 vs. for order ?

You are not missing anything. This has exactly the same effect. I can
change the patch to use 'order-1' if you like it better this way.

This is a trivial off-by-one bug. I actually spent a bit more time trying to
check whether it was the only floor0 problem in ffvorbis. Appears that latest
versions of libvorbis produce output which is substantially different from
both ffvorbis and old libvorbis-1.0beta4. Based on the result of PSNR
comparison with the original file before compression, it is quite possible
that libvorbis has a noticeable decoding quality regression for floor0 files.

-- 
Best regards,
Siarhei Siamashka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090511/e922ec4a/attachment.pgp>



More information about the ffmpeg-devel mailing list