By passing NULL to `g_signal_new` instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into `GValue` and call libffi in case of a
generic marshaller.
Note that for custom marshallers, one would use
`g_signal_set_va_marshaller()` with the valist marshaller instead.
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
I also renamed glib_enum_prefix to glib_gen_prefix as we also use that for the
marshallers. Also rename the rtsp-marshal.list to work with the unified prefix.
Original commit message from CVS:
* gst-libs/gst/interfaces/Makefile.am:
* gst-libs/gst/interfaces/interfaces-marshal.list:
* gst-libs/gst/interfaces/rtspextension.c:
* gst-libs/gst/interfaces/rtspextension.h:
* gst-libs/gst/rtsp/Makefile.am:
* gst-libs/gst/rtsp/gstrtsp.h:
* gst-libs/gst/rtsp/gstrtspextension.c:
(gst_rtsp_extension_get_type), (gst_rtsp_extension_iface_init),
(gst_rtsp_extension_detect_server),
(gst_rtsp_extension_before_send), (gst_rtsp_extension_after_send),
(gst_rtsp_extension_parse_sdp), (gst_rtsp_extension_setup_media),
(gst_rtsp_extension_configure_stream),
(gst_rtsp_extension_get_transports),
(gst_rtsp_extension_stream_select), (gst_rtsp_extension_send):
* gst-libs/gst/rtsp/gstrtspextension.h:
* gst-libs/gst/rtsp/rtsp-marshal.list:
Move the rtspextension.h interface into gstrtspextension.h
as part of libgstrtsp instead of libgstinterfaces, because it's
only for use within plugins, not applications.
Add stuff to do the enum & marshal generation needed in libgstrtsp now.
Use the GST_TYPE_RTSP_RESULT enum type for the return value of the
signal that the GstRTSPExtension interface emits, since G_TYPE_ENUM
is abstract.
2007-07-26 19:57:15 +00:00
Renamed from gst-libs/gst/interfaces/rtspextension.c (Browse further)