[gst-devel] patches for review
wingo at pobox.com
Wed Jul 14 07:02:05 CEST 2004
Yo, here are some patches to review. I've copied the changelog entries
here, and attached the patch. I'd like to get these in today, but since
there's a change to gstpad.h, and to caps-related things, it's probably
best to get some eyes on it first.
+2004-07-14 Andy Wingo <wingo at pobox.com>
+ * gst/gsttag.c: Add a tag merge func for pointers. The header was
+ there all along, but the function wasn't. (guile-gstreamer's build
+ system uses the address of the function -- I wasn't actually
+ trying to use this.)
Since it's in the headers, and there might exist other bindings that
wrap this function but don't take its address, we need to back up the
promise made in the header ;)
+2004-07-13 Andy Wingo <wingo at pobox.com>
+ * gst/gstpad.c (gst_pad_try_set_caps): Naive link functions (such
+ as gst_pad_proxy_pad_link) just link to every other pad when they
+ are called. In the case where the graph has cycles, this will mean
+ that a call to try_set_caps will recurse. Allow this recursion
+ and return OK, while we wait for the first try_set_caps to give a
+ proper return value.
I've had this one in my tree for a while. It establishes a new flag,
GST_PAD_DISPATCHING, to be set on a pad when a function is traversing
the link graph. If the flag is set, we know the pad has already been
visited, so we don't need to recurse into it. Shouldn't affect
cycle-containing graphs that don't have naive link functions.
I don't think link/getcaps/query/* functions are the proper place to fix
this, because you have to somehow know which pad has been visited
+ (gst_pad_link_call_link_functions): Since this function is the
+ only one to set the NEGOTIATING flag on a pad, if the flag is set
+ it means that the link functions have indirectly recursed. If this
+ happens, error out to avoid infinite recursion and an eventual
I assume no one has seen this thus far. Pretty uncontroversial.
+ (gst_real_pad_class_init): Remove a crufty GtkObject comment.
+ (gst_pad_proxy_getcaps): Intersect the result with the template
+ caps to ensure that the return value is valid.
+2004-07-11 Andy Wingo <wingo at pobox.com>
+ * gst/gstdata.c (gst_data_is_writable): s/>=/>/. If there is only
+ one refcount, the calling function is the owner of the buffer.
Andy Wingo <wingo at pobox.com>
More information about the gstreamer-devel