diff options
28 files changed, 170 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am index fb78f5d65..862126dd1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,6 +38,7 @@ DISTCLEANFILES = _stdint.h noinst_HEADERS = \ gst-libs/gst/gettext.h \ gst-libs/gst/gst-i18n-plugin.h + gst-libs/gst/glib-compat-private.h ACLOCAL_AMFLAGS = -I m4 -I common/m4 diff --git a/ext/jack/gstjackaudioclient.c b/ext/jack/gstjackaudioclient.c index 1789edb60..2bb355529 100644 --- a/ext/jack/gstjackaudioclient.c +++ b/ext/jack/gstjackaudioclient.c @@ -23,6 +23,8 @@ #include "gstjackaudioclient.h" +#include <gst/glib-compat-private.h> + GST_DEBUG_CATEGORY_STATIC (gst_jack_audio_client_debug); #define GST_CAT_DEFAULT gst_jack_audio_client_debug diff --git a/ext/pulse/pulseaudiosink.c b/ext/pulse/pulseaudiosink.c index 15f3bf1ee..cd9f7d914 100644 --- a/ext/pulse/pulseaudiosink.c +++ b/ext/pulse/pulseaudiosink.c @@ -53,6 +53,7 @@ #include <gst/pbutils/pbutils.h> #include <gst/gst-i18n-plugin.h> +#include <gst/glib-compat-private.h> #include <gst/audio/gstaudioiec61937.h> #include "pulsesink.h" diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index cfab338b5..3c6177089 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -58,6 +58,8 @@ #include <gst/pbutils/pbutils.h> /* only used for GST_PLUGINS_BASE_VERSION_* */ +#include <gst/glib-compat-private.h> + #include "pulsesink.h" #include "pulseutil.h" diff --git a/ext/soup/gstsouphttpclientsink.c b/ext/soup/gstsouphttpclientsink.c index 13cc80576..5f3d47e1e 100644 --- a/ext/soup/gstsouphttpclientsink.c +++ b/ext/soup/gstsouphttpclientsink.c @@ -42,6 +42,8 @@ #include <gst/base/gstbasesink.h> #include "gstsouphttpclientsink.h" +#include <gst/glib-compat-private.h> + GST_DEBUG_CATEGORY_STATIC (souphttpclientsink_dbg); #define GST_CAT_DEFAULT souphttpclientsink_dbg diff --git a/gst-libs/gst/glib-compat-private.h b/gst-libs/gst/glib-compat-private.h new file mode 100644 index 000000000..d143d3257 --- /dev/null +++ b/gst-libs/gst/glib-compat-private.h @@ -0,0 +1,120 @@ +/* + * glib-compat.c + * Functions copied from glib 2.10 + * + * Copyright 2005 David Schleef <ds@schleef.org> + */ + +#ifndef __GLIB_COMPAT_PRIVATE_H__ +#define __GLIB_COMPAT_PRIVATE_H__ + +#include <glib.h> + +G_BEGIN_DECLS + +#if !GLIB_CHECK_VERSION(2,25,0) + +#if defined (_MSC_VER) && !defined(_WIN64) +typedef struct _stat32 GStatBuf; +#else +typedef struct stat GStatBuf; +#endif + +#endif + +#if GLIB_CHECK_VERSION(2,26,0) +#define GLIB_HAS_GDATETIME +#endif + +/* See bug #651514 */ +#if GLIB_CHECK_VERSION(2,29,5) +#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_pointer_compare_and_exchange ((a),(b),(c)) +#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_int_compare_and_exchange ((a),(b),(c)) +#else +#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_pointer_compare_and_exchange ((volatile gpointer *)(a),(b),(c)) +#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_int_compare_and_exchange ((volatile int *)(a),(b),(c)) +#endif + +/* See bug #651514 */ +#if GLIB_CHECK_VERSION(2,29,5) +#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_add ((a),(b)) +#else +#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_exchange_and_add ((a),(b)) +#endif + +/* copies */ + +#if GLIB_CHECK_VERSION (2, 31, 0) +#define g_mutex_new gst_g_mutex_new +static inline GMutex * +gst_g_mutex_new (void) +{ + GMutex *mutex = g_slice_new (GMutex); + g_mutex_init (mutex); + return mutex; +} +#define g_mutex_free gst_g_mutex_free +static inline void +gst_g_mutex_free (GMutex *mutex) +{ + g_mutex_clear (mutex); + g_slice_free (GMutex, mutex); +} +#define g_static_rec_mutex_init gst_g_static_rec_mutex_init +static inline void +gst_g_static_rec_mutex_init (GStaticRecMutex *mutex) +{ + static const GStaticRecMutex init_mutex = G_STATIC_REC_MUTEX_INIT; + + *mutex = init_mutex; +} +#define g_cond_new gst_g_cond_new +static inline GCond * +gst_g_cond_new (void) +{ + GCond *cond = g_slice_new (GCond); + g_cond_init (cond); + return cond; +} +#define g_cond_free gst_g_cond_free +static inline void +gst_g_cond_free (GCond *cond) +{ + g_cond_clear (cond); + g_slice_free (GCond, cond); +} +#define g_cond_timed_wait gst_g_cond_timed_wait +static inline gboolean +gst_g_cond_timed_wait (GCond *cond, GMutex *mutex, GTimeVal *abs_time) +{ + gint64 end_time; + + if (abs_time == NULL) { + g_cond_wait (cond, mutex); + return TRUE; + } + + end_time = abs_time->tv_sec; + end_time *= 1000000; + end_time += abs_time->tv_usec; + + /* would be nice if we had clock_rtoffset, but that didn't seem to + * make it into the kernel yet... + */ + /* if CLOCK_MONOTONIC is not defined then g_get_montonic_time() and + * g_get_real_time() are returning the same clock and we'd add ~0 + */ + end_time += g_get_monotonic_time () - g_get_real_time (); + return g_cond_wait_until (cond, mutex, end_time); +} +#endif /* GLIB_CHECK_VERSION (2, 31, 0) */ + +/* adaptations */ + +G_END_DECLS + +#endif diff --git a/gst/audiofx/audiochebband.c b/gst/audiofx/audiochebband.c index 89a950c23..08c1acf34 100644 --- a/gst/audiofx/audiochebband.c +++ b/gst/audiofx/audiochebband.c @@ -82,6 +82,8 @@ #include "audiochebband.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_cheb_band_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audiocheblimit.c b/gst/audiofx/audiocheblimit.c index 8d51fbbf6..b7bb90bbc 100644 --- a/gst/audiofx/audiocheblimit.c +++ b/gst/audiofx/audiocheblimit.c @@ -78,6 +78,8 @@ #include "audiocheblimit.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_cheb_limit_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audiofirfilter.c b/gst/audiofx/audiofirfilter.c index b6102ae78..bd5a51be4 100644 --- a/gst/audiofx/audiofirfilter.c +++ b/gst/audiofx/audiofirfilter.c @@ -57,6 +57,8 @@ #include "audiofirfilter.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_fir_filter_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audioiirfilter.c b/gst/audiofx/audioiirfilter.c index bac16b295..ff5f9caec 100644 --- a/gst/audiofx/audioiirfilter.c +++ b/gst/audiofx/audioiirfilter.c @@ -53,6 +53,8 @@ #include "audioiirfilter.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_iir_filter_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audiowsincband.c b/gst/audiofx/audiowsincband.c index 07356e240..3f9498846 100644 --- a/gst/audiofx/audiowsincband.c +++ b/gst/audiofx/audiowsincband.c @@ -64,6 +64,8 @@ #include "audiowsincband.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_gst_audio_wsincband_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audiowsinclimit.c b/gst/audiofx/audiowsinclimit.c index aa0cf4b0f..ad605697d 100644 --- a/gst/audiofx/audiowsinclimit.c +++ b/gst/audiofx/audiowsinclimit.c @@ -64,6 +64,8 @@ #include "audiowsinclimit.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_wsinclimit_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/equalizer/gstiirequalizer.c b/gst/equalizer/gstiirequalizer.c index c640124de..d66db1a4d 100644 --- a/gst/equalizer/gstiirequalizer.c +++ b/gst/equalizer/gstiirequalizer.c @@ -31,6 +31,8 @@ #include "gstiirequalizer3bands.h" #include "gstiirequalizer10bands.h" +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY (equalizer_debug); #define GST_CAT_DEFAULT equalizer_debug diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c index 77785caae..312f4aa15 100644 --- a/gst/imagefreeze/gstimagefreeze.c +++ b/gst/imagefreeze/gstimagefreeze.c @@ -41,6 +41,8 @@ #include "config.h" #endif +#include <gst/glib-compat-private.h> + #include "gstimagefreeze.h" static void gst_image_freeze_finalize (GObject * object); diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index b322f8ecc..ef00a8519 100644 --- a/gst/rtpmanager/gstrtpbin.c +++ b/gst/rtpmanager/gstrtpbin.c @@ -129,6 +129,8 @@ #include "gstrtpsession.h" #include "gstrtpjitterbuffer.h" +#include <gst/glib-compat-private.h> + GST_DEBUG_CATEGORY_STATIC (gst_rtp_bin_debug); #define GST_CAT_DEFAULT gst_rtp_bin_debug diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index c69d47772..4c72fb626 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -67,6 +67,8 @@ #include "rtpjitterbuffer.h" #include "rtpstats.h" +#include <gst/glib-compat-private.h> + GST_DEBUG_CATEGORY (rtpjitterbuffer_debug); #define GST_CAT_DEFAULT (rtpjitterbuffer_debug) diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index 68284383c..31f9a7377 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -114,6 +114,8 @@ #include <gst/rtp/gstrtpbuffer.h> +#include <gst/glib-compat-private.h> + #include "gstrtpbin-marshal.h" #include "gstrtpsession.h" #include "rtpsession.h" diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index f499106f2..eed96ac5b 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -23,6 +23,8 @@ #include <gst/rtp/gstrtcpbuffer.h> #include <gst/netbuffer/gstnetbuffer.h> +#include <gst/glib-compat-private.h> + #include "gstrtpbin-marshal.h" #include "rtpsession.h" diff --git a/gst/shapewipe/gstshapewipe.c b/gst/shapewipe/gstshapewipe.c index 3397dda8f..b8c91b527 100644 --- a/gst/shapewipe/gstshapewipe.c +++ b/gst/shapewipe/gstshapewipe.c @@ -46,6 +46,7 @@ #include <gst/gst.h> #include <gst/controller/gstcontroller.h> +#include <gst/glib-compat-private.h> #include "gstshapewipe.h" diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c index a2d74a71f..7a35aaeca 100644 --- a/gst/udp/gstmultiudpsink.c +++ b/gst/udp/gstmultiudpsink.c @@ -41,6 +41,8 @@ #include <errno.h> #include <string.h> +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (multiudpsink_debug); #define GST_CAT_DEFAULT (multiudpsink_debug) @@ -172,8 +174,7 @@ gst_multiudpsink_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_static_pad_template (element_class, - &sink_template); + gst_element_class_add_static_pad_template (element_class, &sink_template); gst_element_class_set_details_simple (element_class, "UDP packet sender", "Sink/Network", diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c index 691c5f123..9d311840b 100644 --- a/gst/videobox/gstvideobox.c +++ b/gst/videobox/gstvideobox.c @@ -66,6 +66,8 @@ #include <gst/controller/gstcontroller.h> +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (videobox_debug); #define GST_CAT_DEFAULT videobox_debug diff --git a/gst/videocrop/gstaspectratiocrop.c b/gst/videocrop/gstaspectratiocrop.c index b37217aed..150df37f4 100644 --- a/gst/videocrop/gstaspectratiocrop.c +++ b/gst/videocrop/gstaspectratiocrop.c @@ -43,6 +43,8 @@ #include "gstaspectratiocrop.h" +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (aspect_ratio_crop_debug); #define GST_CAT_DEFAULT aspect_ratio_crop_debug @@ -169,8 +171,7 @@ gst_aspect_ratio_crop_base_init (gpointer g_class) "Crops video into a user-defined aspect-ratio", "Thijs Vermeir <thijsvermeir@gmail.com>"); - gst_element_class_add_static_pad_template (element_class, - &sink_template); + gst_element_class_add_static_pad_template (element_class, &sink_template); gst_element_class_add_static_pad_template (element_class, &src_template); } diff --git a/gst/videomixer/videomixer.c b/gst/videomixer/videomixer.c index 2c78c618b..5a49b3912 100644 --- a/gst/videomixer/videomixer.c +++ b/gst/videomixer/videomixer.c @@ -89,6 +89,8 @@ #include "videomixer.h" #include "videomixer2.h" +#include "gst/glib-compat-private.h" + #ifdef DISABLE_ORC #define orc_memset memset #else diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c index fde327a71..b876c22fd 100644 --- a/gst/videomixer/videomixer2.c +++ b/gst/videomixer/videomixer2.c @@ -93,6 +93,8 @@ #include <gst/controller/gstcontroller.h> +#include "gst/glib-compat-private.h" + #ifdef DISABLE_ORC #define orc_memset memset #else diff --git a/sys/oss4/oss4-mixer.c b/sys/oss4/oss4-mixer.c index fa81eccca..87f7ca61e 100644 --- a/sys/oss4/oss4-mixer.c +++ b/sys/oss4/oss4-mixer.c @@ -54,6 +54,7 @@ #include <gst/interfaces/mixer.h> #include <gst/gst-i18n-plugin.h> +#include "gst/glib-compat-private.h" #include <glib/gprintf.h> diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c index e976ec507..b81c6a411 100644 --- a/sys/v4l2/gstv4l2bufferpool.c +++ b/sys/v4l2/gstv4l2bufferpool.c @@ -39,6 +39,7 @@ #endif #include "v4l2_calls.h" #include "gst/gst-i18n-plugin.h" +#include <gst/glib-compat-private.h> /* videodev2.h is not versioned and we can't easily check for the presence * of enum values at compile time, but the V4L2_CAP_VIDEO_OUTPUT_OVERLAY define diff --git a/sys/v4l2/gstv4l2xoverlay.c b/sys/v4l2/gstv4l2xoverlay.c index 80f114d20..60d091906 100644 --- a/sys/v4l2/gstv4l2xoverlay.c +++ b/sys/v4l2/gstv4l2xoverlay.c @@ -40,6 +40,7 @@ #include "v4l2_calls.h" #include "gst/gst-i18n-plugin.h" +#include <gst/glib-compat-private.h> struct _GstV4l2Xv { diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c index b0d99ad6a..36c0b44e7 100644 --- a/sys/ximage/gstximagesrc.c +++ b/sys/ximage/gstximagesrc.c @@ -49,6 +49,8 @@ #include <gst/gst.h> #include <gst/gst-i18n-plugin.h> +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (gst_debug_ximage_src); #define GST_CAT_DEFAULT gst_debug_ximage_src |