[FFmpeg-devel] [PATCH 1/3] avcodec/lpc: check for zero err in normalization in compute_lpc_coefs()

Anton Khirnov anton at khirnov.net
Sat Jun 5 19:12:47 EEST 2021


Quoting Michael Niedermayer (2021-06-05 16:14:24)
> On Sat, Jun 05, 2021 at 03:44:49PM +0200, Anton Khirnov wrote:
> > Quoting Michael Niedermayer (2021-06-01 09:33:13)
> > > Fixes: floating point division by 0
> > > Fixes: Ticket8213
> > > 
> > > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > ---
> > >  libavcodec/lpc.h | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/libavcodec/lpc.h b/libavcodec/lpc.h
> > > index 52170fd623..c99e568794 100644
> > > --- a/libavcodec/lpc.h
> > > +++ b/libavcodec/lpc.h
> > > @@ -186,7 +186,8 @@ static inline int AAC_RENAME(compute_lpc_coefs)(const LPC_TYPE *autoc, int max_o
> > >              for(j=0; j<i; j++)
> > >                  r -= lpc_last[j] * autoc[i-j-1];
> > >  
> > > -            r /= err;
> > > +            if (r || err)
> > 
> > Why check for non-zero r?
> 
> The idea was to make it clear what the case was that this checked for
> i can drop the r check if you prefer ?

So something guarantees that when r is non-zero then err is also
non-zero? It's not obvious to me, but I don't understand that code.
Maybe a comment would be enough.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list