[FFmpeg-devel] [PATCH] libavfilter/af_atempo: Fix uninitialized memory access
Pavel Koshevoy
pkoshevoy at gmail.com
Fri Apr 19 02:21:15 CEST 2013
On Apr 18, 2013 1:21 PM, "Michael Niedermayer" <michaelni at gmx.at> wrote:
>
> On Wed, Apr 17, 2013 at 10:33:34PM -0600, pkoshevoy at gmail.com wrote:
> > From: Pavel Koshevoy <pkoshevoy at gmail.com>
> >
> > valgrind reported uninitialized memory access which was caused by
> > incorrect number of samples being passed to push_samples(..)
> >
> > Signed-off-by: Pavel Koshevoy <pkoshevoy at gmail.com>
> > ---
> > libavfilter/af_atempo.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
> > index 3e2bc06..f5c5da8 100644
> > --- a/libavfilter/af_atempo.c
> > +++ b/libavfilter/af_atempo.c
> > @@ -1061,7 +1061,7 @@ static int filter_frame(AVFilterLink *inlink,
AVFrame *src_buffer)
> > ATempoContext *atempo = ctx->priv;
> > AVFilterLink *outlink = ctx->outputs[0];
> >
> > - int ret = 0;
> > + int ret = AVERROR(EAGAIN);
> > int n_in = src_buffer->nb_samples;
> > int n_out = (int)(0.5 + ((double)n_in) / atempo->tempo);
> >
>
> this looks odd, what is the intent of this change ?
The intent was not to return 0 unless at least one output frame of samples
has been produced. I don't really know what return value a filter is
supposed to use while it is still buffering the input samples. I thought
EAGAIN was expected. You can drop that change if it is inappropriate.
Pavel
More information about the ffmpeg-devel
mailing list