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

D Richard Felker III dalias at aerifal.cx
Sat Dec 20 21:05:29 CET 2003


On Sat, Dec 20, 2003 at 09:22:25PM +0200, Andriy N. Gritsenko wrote:
>     Hi again.
> 
> Additional comments here...
> 
> Sometime (on Saturday, December 20 at 21:02) I've written something...
> 
> >typedef struct vp_node_t {
> >  node_t n;
> >  struct vp_node_t *prev;
> >  struct vp_node_t *next;
> >  vp_funcs *func;
> >  .......
> >} vp_node_t;
> 
> >So when we call link_video_chain(node,next) it will at first test if
> >node->func->add_out() exists and call it, otherwise if node->next was
> >filled then return error, else set node->next. After that do the same for
> >node next. If there was no errors then we assume nodes are linked. For
> >example, on pull_frame(node) we could pull frame from previous node by
> >node->prev->pull_frame. Calling unlink_video_chain(node,next) we will
> >do the same thing as on link_video_chain(). Since node_t is part of
> >vp_node_t and pointed to the same then both structures above may be only
> >in video_internal.h - application will know nothing about it but it will
> >work anyway. :)
> 
>     Just keep in mind some filter may have multiple _equal_ inputs or
> outputs so there isn't some "primary" input or output node. Also if we

I created the idea of primary input/output on purpose. A filter that
doesn't want to distinguish is free to ignore the difference, or to
use only secondary links if it prefers.

> So we have no right to application to
> manipulate any prev or next pointers - it must be done only by functions
> link_video_chain() and unlink_video_chain(). :)

Something like that.

Rich




More information about the MPlayer-G2-dev mailing list