[MPlayer-G2-dev] Re: Limitations in vo2 api :(

Andriy N. Gritsenko andrej at lucky.net
Tue Dec 23 17:13:42 CET 2003

    Hi, D Richard Felker III!

Sometime (on Tuesday, December 23 at 17:44) I've received something...
>On Tue, Dec 23, 2003 at 01:14:06PM +0200, Andriy N. Gritsenko wrote:
>> >The internal vp code has to be able to walk the pipeline for
>> >rendering, so it needs to know something...

>>     It seems I don't understand something. We construct pipeline to get
>> frames via pull_frame(), don't we? So if pipeline is something alike
>> --> vp_node1 --> vp_node2 --> vp_node3  then vp_node3 will pull frame
>> from vp_node2 but vp_node3 has no needs to know if vp_node1 exists or
>> not. vp_node2 will give frame to vp_node3 from pending buffer or after
>> pulling it out from vp_node1. So no filter in pipeline need to know _all_
>> pipeline but _only_ own previous and next nodes, i.e. own links. If I'm
>> wrong then kick me there, please. ;)

>No individual filter needs to know. Rather, vp_pull_frame does. For
>various reasons, the recursive calling was abandoned in favor of a
>"walk-the-list" approach.

    Hmm, so you want to deny direct pulling frames by filters? If it's so
then how you suppose to handle such filters as "interleaving mixer" (two
frames from one then three frames from second then one frame from third,
and again from one, for example) or "time-scaling" (i.e. scaling clip
from 0.2s long to 1.15s)? Or if you allow direct pulling frames then how
your vf_pull_frame() will count them? I wonder if that possible without
direct pulling frames by filter because only filter may know how much
portion of video it wants and only filter may know if it wish just drop
frame or change it's PTS/duration.

    With best wishes.

More information about the MPlayer-G2-dev mailing list