[gst-devel] Gst# + patch

Benjamin Otte in7y118 at public.uni-hamburg.de
Mon May 3 10:12:01 CEST 2004

On Fri, 30 Apr 2004, Owen Fraser-Green wrote:

> Hi,
> I've got the mono bindings working again against 0.8.1. They're in a
> module in their own module in mono CVS called gst-sharp now. Note that
> gtk# from CVS is also required to compile.
> In order to get things working I had to make a patch of minor changes to
> apply against the gstreamer source so that GAPI (a gobject C code -> C#
> binding generator) wouldn't choke. I think, though, all these changes
> could probably be applied back in the gstreamer source. I've attached
> the patch here (re-generated to match CVS) and, follows, a explanation:

> 1. GstCaps and GstStructure are not classes, the don't derive from
> gobject and therefore, shouldn't have GST_IS_xxx macros.
You changed those macros, those changes are fine.
But GST_IS_* macros are ok for anything, not just GObjects. [1]

> 2. The fixate signal in GstPad used the signal's own function
> declaration in the signal declarations as a shortcut. I've made the
> declaration explicit in keeping with all the other signal declarations.
If that has the same prototype, it's ok. But you renamed the structure
member from "appfixatefunc" to "fixate", which is a nono wrt API/ABI
Feel free to file a bug for renaming when we branch 0.9. [1]

> 3. GstPlugin and GstProbe had spurious getters/setters. I.e. things you
> could just as easily do plugin->... on.
Not caring about this part breaking ABI and API (removing functions), you
are not supposed to access any struct members directly but use
getters/setters. This makes it easier to later add code that is required
before getting/setting.

> 4. I added a typedef to GstQueue for the enum defined therein. Also a
> #include in gst.h for gstqueue.h because of the enum gets generated in
> gstenumtypes.h
GstQueue shouldn't be included in gst.h - I'm still htting my head about
the fact that it's installed.

I'm going to look over the patch and apply the problemless bits.


[1]: These stuff looks to me like it should be fixed in GAPI.

More information about the gstreamer-devel mailing list