[FFmpeg-devel] [PATCH] avfilter: avoid testing float == 0
Hendrik Leppkes
h.leppkes at gmail.com
Thu May 9 18:32:46 CEST 2013
On Thu, May 9, 2013 at 6:21 PM, Clément Bœsch <ubitux at gmail.com> wrote:
>
> On Thu, May 09, 2013 at 04:56:39PM +0200, Michael Niedermayer wrote:
> > This fixes the hypothetical case of rounding errors causing
> > incorrect values to be used.
> >
> > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > ---
> > libavfilter/avfilter.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
> > index 3f94dde..6c3cb05 100644
> > --- a/libavfilter/avfilter.c
> > +++ b/libavfilter/avfilter.c
> > @@ -994,7 +994,7 @@ static int ff_filter_frame_framed(AVFilterLink *link, AVFrame *frame)
> > dstctx->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);
> > dstctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
> >
> > - dstctx->is_disabled = !av_expr_eval(dstctx->enable, dstctx->var_values, NULL);
> > + dstctx->is_disabled = fabs( av_expr_eval(dstctx->enable, dstctx->var_values, NULL) ) < 0.5;
>
> Why a so high value? isn't 0.001 more than enough?
>
> nit: remove spaces after ( and before )
There is even a constant supposed to be used for such comparisons, if
a float is an "inaccurate zero", FLT_EPSILON or DBL_EPSILON, depending
on the type.
More information about the ffmpeg-devel
mailing list