[FFmpeg-devel] [PATCH] Port MPlayer blackframe filter.
Stefano Sabatini
stefano.sabatini-lala
Sun Sep 26 10:36:02 CEST 2010
On date Sunday 2010-09-26 02:42:15 +0200, Michael Niedermayer encoded:
> On Sun, Sep 26, 2010 at 01:41:50AM +0200, Stefano Sabatini wrote:
> > On date Sunday 2010-09-26 01:25:49 +0200, Michael Niedermayer encoded:
> > > On Sun, Sep 26, 2010 at 01:15:29AM +0200, Stefano Sabatini wrote:
> > [...]
> > > > +static void end_frame(AVFilterLink *inlink)
> > > > +{
> > > > + AVFilterContext *ctx = inlink->dst;
> > > > + BlackFrameContext *blackframe = ctx->priv;
> > > > + AVFilterBufferRef *picref = inlink->cur_buf;
> > > > + int x, y, nblack = 0, pblack = 0;
> > > > + uint8_t *p = picref->data[0];
> > > > +
> > > > + for (y = 1; y <= inlink->h; y++) {
> > > > + for (x = 0; x < inlink->w; x++)
> > > > + nblack += p[x] < blackframe->bthresh;
> > > > + pblack = nblack * 100 / (inlink->w * y);
> > > > + if (pblack < blackframe->bamount)
> > > > + break;
> > > > + p += picref->linesize[0];
> > > > + }
> > >
> > > This code belongs in draw_slice()
> >
> > Yes but it would be much more complicate for little gain (need to
> > store pblack/nblack in the context, need to implement a start_frame
> > for initing them).
>
> yes 10min work and 10 lines of code, and its faster
10+lines of code, also should be more accurate.
Regards.
--
FFmpeg = Faithless and Fantastic Murdering Ponderous Extroverse Glue
More information about the ffmpeg-devel
mailing list