[FFmpeg-devel] [PATCH v2] avfilter/vf_delogo: make the interp value compute method simple

mypopy at gmail.com mypopy at gmail.com
Tue Oct 8 05:47:56 EEST 2019


On Mon, Oct 7, 2019 at 11:14 PM Limin Wang <lance.lmwang at gmail.com> wrote:
>
> On Mon, Oct 07, 2019 at 01:12:46PM +0800, Steven Liu wrote:
> > because the interp >= 0UL comparison of an unsigned value is always true
> > fix CID: 1454642
> >
> > Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
> > ---
> >  libavfilter/vf_delogo.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c
> > index 376c5e850f..3678548353 100644
> > --- a/libavfilter/vf_delogo.c
> > +++ b/libavfilter/vf_delogo.c
> > @@ -168,7 +168,7 @@ static void apply_delogo(uint8_t *dst, int dst_linesize,
> >                   botleft[x-logo_x1-1]  +
> >                   botleft[x-logo_x1+1]) * weightb;
> >              weight = (weightl + weightr + weightt + weightb) * 3U;
> > -            interp = ROUNDED_DIV(interp, weight);
> > +            interp = (interp + weight >> 1) / weight;
>
> By the macros definition:
> #define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
>
I've update the ROUNDED_DIV to:
#define ROUNDED_DIV(a,b) (((a)>=0 ? (a) + ((b)>>1) : (a) -
((b)>>1))/(b)), I guess
you didn't update the code with this change
> I feel it should be:
> interp = (interp - weight >> 1) / weight;
>
> instead of:
> interp = (interp + weight >> 1) / weight;
>

> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list