[MPlayer-dev-eng] Re: Drop interlaced frames.

D Richard Felker III dalias at aerifal.cx
Wed Sep 11 00:56:52 CEST 2002


On Wed, Sep 11, 2002 at 12:16:16AM +0200, Arpi wrote:
> Hi,
> 
> > > >This requires a lot of unnecessary changes. A better approach would be
> > > >to intercept VFCTRL_DRAW_OSD in your filter, and throw it away if the
> > > >current frame was dropped. Otherwise pass it on to the next filter.
> 
> not.
> the goal of that change was to add a new feature: filters can drop the frame.
> i like it, and i'm about commiting that part.
> 
> > >  vf=sh_video->vfilter;
> > > -vf->put_image(vf,mpi);
> > > +if(!vf->put_image(vf,mpi))
> > > +  return 0;
> > >  vf->control(vf,VFCTRL_DRAW_OSD,NULL);
> ye sthis looks betterm but teh time calculations shouldn't be dropped by
> return 0, so i've chanegd it to
> 
> ret=vf->put_image(vf,mpi)
> if(ret>0) draw osd
> calc timers
> return ret;
> 
> > Yes, but the subsequent code won't hurt if it gets executed. However,
> > drawing the OSD multiple times on the same frame will be bad, since
> > the alpha will get blended twice.
> agree
> 
> > I still think it's better not to
> > change the return type of put_image....
> any better idea about how to handle framedrop initiated by a filter or encoder?

Hm, what other part of the program needs to know about the fact that a
frame was dropped? I thought it was sufficient to just suppress the
put_image from getting all the way to vo/ve, but perhaps not...

Rich




More information about the MPlayer-dev-eng mailing list