Don't pass default GLib marshallers for signals
authorNiels De Graef <nielsdegraef@gmail.com>
Mon, 26 Aug 2019 05:54:48 +0000 (07:54 +0200)
committerNiels De Graef <niels.degraef@barco.com>
Tue, 27 Aug 2019 05:31:57 +0000 (07:31 +0200)
commit0314b482f36113e1416a6dc3876b611627419c78
tree82ae90918e3c3e5e44af2fa8a9cad09a52a8e2f0
parente0fadd6fdd976f00b9b83c52becb37e8d5e2fc13
Don't pass default GLib marshallers for signals

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.
28 files changed:
ext/cdparanoia/gstcdparanoiasrc.c
ext/gl/gstglfilterapp.c
ext/gl/gstglfilterbin.c
ext/gl/gstglfiltershader.c
ext/gl/gstglimagesink.c
ext/gl/gstglmixerbin.c
ext/gl/gstglsinkbin.c
ext/gl/gstglsrcbin.c
gst-libs/gst/app/gstappsink.c
gst-libs/gst/app/gstappsrc.c
gst-libs/gst/gl/gstgldisplay.c
gst-libs/gst/gl/gstglwindow.c
gst-libs/gst/pbutils/gstdiscoverer.c
gst-libs/gst/rtsp/gstrtspextension.c
gst/encoding/gstencodebin.c
gst/overlaycomposition/gstoverlaycomposition.c
gst/playback/gstdecodebin2.c
gst/playback/gstdecodebin3.c
gst/playback/gstparsebin.c
gst/playback/gstplaybin2.c
gst/playback/gstplaybin3.c
gst/playback/gstplaysink.c
gst/playback/gsturidecodebin.c
gst/playback/gsturidecodebin3.c
gst/playback/gsturisourcebin.c
gst/tcp/gstmultifdsink.c
gst/tcp/gstmultihandlesink.c
gst/tcp/gstmultisocketsink.c