[gst-devel] [gst-cvs] ensonic gst-plugins-base: gst-plugins-base/ gst-plugins-base/docs/libs/ gst-plugins-base/gst-libs/gst/audio/ gst-plugins-base/gst-libs/gst/interfaces/ gst-plugins-base/gst-libs/gst/rtp/ gst-plugins-base/gst-libs/gst/sdp/

Tim Müller t.i.m at zen.co.uk
Fri Nov 2 11:04:49 CET 2007


On Tue, 2007-10-30 at 13:32 -0700, ensonic at kemper.freedesktop.org wrote:

> CVS Root:       /cvs/gstreamer
> Module:         gst-plugins-base
> Changes by:     ensonic
> Date:           Tue Oct 30 2007  20:32:28 UTC
> 
> Log message:
> 	* docs/libs/gst-plugins-base-libs-sections.txt:
> 	* gst-libs/gst/audio/gstaudiofilter.h:
> 	* gst-libs/gst/interfaces/mixer.h:
> 	* gst-libs/gst/rtp/gstbasertpdepayload.c:
> 	* gst-libs/gst/rtp/gstbasertpdepayload.h:
> 	* gst-libs/gst/sdp/gstsdpmessage.c:
> 	  Fix the docs according to what gtk-doc complained about.
> ...
> http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/rtp/gstbasertpdepayload.h.diff?r1=1.20&r2=1.21

I wonder whether it's really a good idea to use GST_REMOVE_DEPRECATED in
public header files, since it breaks ABI.

So far we've only been using GST_REMOVE_DEPRECATED in .c files to remove
deprecated functions completely from our lib and guarded the declaration
of those functions with GST_DISABLE_DEPRECATED.

What we've done in public headers last time this issue came up is use
GST_DISABLE_DEPRECATED and then put differently-named dummy fields in
the #else bracket, so code compiled with DISABLE_DEPRECATED couldn't use
deprecated structure members any longer, but binary compatibility would
still be maintained. See
gst-plugins-base/gst-libs/gst/interfaces/mixer.h for an example.

I can see that there are reasons for wanting to remove those fields
completely (ie. save a few bytes), but I wonder if it's not more
desirable to maintain ABI/structure sizes, given that derived objects
may sit in different modules.

 Cheers
  -Tim






More information about the gstreamer-devel mailing list