[gst-devel] Re: [gst-cvs] company gstreamer: gstreamer/gst/

Wim Taymans wim.taymans at chello.be
Wed Apr 9 10:57:03 CEST 2003

On Tue, 2003-04-08 at 23:14, Benjamin Otte wrote:
> CVS Root:       /cvsroot/gstreamer
> Module:         gstreamer
> Changes by:     company
> Date:           Tue Apr 08 2003  14:14:41 PDT
> Log message:
> huge modifications, hope i didn't break something:
> - added functions for setting/getting locked state of elements. 
> gst_element_lock_state syncs the pads state with the state of its parent.

The LOCKED_STATE was supposed to be a flag on the element,
setting/clearing the flag is not supposed to trigger an action on the
element but merely instruct the parent container to not bother changing
the state of the element.

Also, the unlock_state function could be implemented with:

  gst_element_set_state (element, 
                         gst_element_get_state (
                           gst_element_get_parent (element)));

The later function could be wrapped in 

  gst_element_sync_state_with_parent (element);

which could be more usefull IMO.

Do we really need all these new methods, they don't really add
functionality.. You know I don't like methods and code that don't add
functionality (== bloat).

> - made all gst_element_link_* functions call gst_element_link_pads_filtered
> - gst_element_link_pads_filtered now accepts NULL as a pad name.
> - make sure the link functions are only called when the elements are paused
> That's it.

The requirement that pads should be linked in the PAUSED state is a
scheduler decision, in fact, the optimal scheduler can perfectly link
PLAYING elements (if not, it's a bug). This breaks gnonlin. We might
need a scheduler property, though, so that the app can figure out what
is supported and what is going to give best performance.

Can you please discuss these things first before commiting.


Wim Taymans <wim.taymans at chello.be>

More information about the gstreamer-devel mailing list