[MPlayer-dev-eng] mp-g2 pre14

D Richard Felker III dalias at aerifal.cx
Mon Apr 21 16:02:40 CEST 2003


On Mon, Apr 21, 2003 at 01:03:11PM +0200, Arpi wrote:
> Hi,
> 
> > As for DR and slices, I don't see any particular problems with this
> > design. Each vf can just pass the slice callback and/or DR buffer back
> > to the previous filter. The only area where I see a little bit of
> > confusion is negotiation of config and image format/dimensions, since
> > that normally starts at the codec end. There shouldn't be
> 
> I had the same idea a few weeks ago (when i decided to change demuxer->codec
> relation from push to poll), but dropped for config and dr problems.
> 
> DR and buffering should not be changed. It is good as-is.
> But we need to change put_image() to something like process_image()
> (no, get_image is sth else! may be confusing btw), and it will return mpi
> instead of calling the next filter's put_image.
> 
> So processing will look like:
> 
> core calls ve or vf_vo to process a frame, it calls the _last_ filter's
> process_image, it calls the previous filter's process_image and so on, up to
> the codec (probably i have to write a codec wrapper filter, like vf_vo, some
> vf_vd). The filters will call-back to the next filter's get_image to get teh
> buffers allocated.
> 
> So, if you have VD -> VF1 -> VF2 -> VO path, it will looks like:
> core 
>   VF_VO->process_image()
>     VF2->process_image()
>       VF1->process_image()
>         VD->process_image()
>           VF1->get_image()
>           decode
>           return
>         VF2->get_image()
>         filter1
>         return
>      VF_VO->get_image()
>      filter2
>      return
>   display
>   return
> show (swap buffers) at PTS got from VF_VO

Hmm, this sounds about the same as what I meant by a pull
architecture... And it should make it very simple for filters to add
and drop frames, right?

> > insurmountible problems, but we should at least think through how to
> > handle stuff. I'm sure it can't be much worse than the negotiation
> > system already is, though...
> 
> as most (all?) filters will start by calling the previous filter's
> process_image() first, it shouldn't be difference for them.

Not all. vf_tfields would only call the previous filter's
process_image once for every 2 output frames. And vf_telecine would
only call it for 4 out of 5 output frames.



Rich





More information about the MPlayer-dev-eng mailing list