[MPlayer-dev-eng] mp-g2 pre14

D Richard Felker III dalias at aerifal.cx
Mon Apr 21 04:46:26 CEST 2003


On Mon, Apr 21, 2003 at 03:17:52AM +0200, Arpi wrote:
> > The callback idea is just extremely ugly, but it may be the
> > only way...
> it seems :(
> or we have to disallow increasing fps in filters.

Hey, Arpi... Billy Biggs just suggested this to me on irc: how about
we replace the architecture completely and use a pull model for the
video filter chain, rather than push? I.e.:

1) The calling program says it wants to output one frame in a call to
   the vo.

2) The vo calls the filter chain asking for a frame.

3) Each filter calls the previous filter (or the codec) if it wants a
   frame. Filters can grab no frames (e.g. if they're increasing fps),
   one frame, or many frames.

4) When the filter chain requests a frame from the codec, the codec
   layer calls the demuxer layer, asking for the next frame/packets.

Once this is all done, (1) returns to the caller with the pts of the
displayed frame. Then, the caller can tell libvo to blit/flip page at
the right time (if supported).

There might be a few issues with DR/slices, but I don't think it's
anything we couldn't work out. And of course it would require
rewriting all the filters, but hey, that's what G2 is about --
throwing away old broken designs and replacing them with better ones.

Rich




More information about the MPlayer-dev-eng mailing list