From 8b468c3c36f6b1d30928c36576a9f749b492e74c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 9 Apr 2017 11:48:27 +0300 Subject: [PATCH] audio: Generate audiobasesink/src and audiocdsrc GLib enums automatically And ensure that GstAudioBaseSrcSlaveMethod's re-timestamp stays re-timestamp and doesn't become retimestamp. --- gst-libs/gst/audio/Makefile.am | 5 ++++- gst-libs/gst/audio/gstaudiobasesink.c | 24 ------------------------ gst-libs/gst/audio/gstaudiobasesink.h | 3 --- gst-libs/gst/audio/gstaudiobasesrc.c | 25 +------------------------ gst-libs/gst/audio/gstaudiobasesrc.h | 9 +++++---- gst-libs/gst/audio/gstaudiocdsrc.c | 18 ------------------ gst-libs/gst/audio/gstaudiocdsrc.h | 3 --- gst-libs/gst/audio/meson.build | 3 +++ win32/common/libgstaudio.def | 1 + 9 files changed, 14 insertions(+), 77 deletions(-) diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am index 41f9c4dd8f..4ddbc9e9be 100644 --- a/gst-libs/gst/audio/Makefile.am +++ b/gst-libs/gst/audio/Makefile.am @@ -11,7 +11,10 @@ glib_enum_headers= \ audio-info.h \ audio-quantize.h \ audio-resampler.h \ - gstaudioringbuffer.h + gstaudioringbuffer.h \ + gstaudiobasesrc.h \ + gstaudiocdsrc.h \ + gstaudiobasesink.h glib_enum_define = GST_AUDIO glib_gen_prefix = gst_audio diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c index 79f650560b..6c0e7c9fa2 100644 --- a/gst-libs/gst/audio/gstaudiobasesink.c +++ b/gst-libs/gst/audio/gstaudiobasesink.c @@ -121,30 +121,6 @@ enum PROP_LAST }; -GType -gst_audio_base_sink_slave_method_get_type (void) -{ - static volatile gsize slave_method_type = 0; - static const GEnumValue slave_method[] = { - {GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE, "GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE", - "resample"}, - {GST_AUDIO_BASE_SINK_SLAVE_SKEW, "GST_AUDIO_BASE_SINK_SLAVE_SKEW", "skew"}, - {GST_AUDIO_BASE_SINK_SLAVE_NONE, "GST_AUDIO_BASE_SINK_SLAVE_NONE", "none"}, - {GST_AUDIO_BASE_SINK_SLAVE_CUSTOM, "GST_AUDIO_BASE_SINK_SLAVE_CUSTOM", - "custom"}, - {0, NULL, NULL}, - }; - - if (g_once_init_enter (&slave_method_type)) { - GType tmp = - g_enum_register_static ("GstAudioBaseSinkSlaveMethod", slave_method); - g_once_init_leave (&slave_method_type, tmp); - } - - return (GType) slave_method_type; -} - - #define _do_init \ GST_DEBUG_CATEGORY_INIT (gst_audio_base_sink_debug, "audiobasesink", 0, "audiobasesink element"); #define gst_audio_base_sink_parent_class parent_class diff --git a/gst-libs/gst/audio/gstaudiobasesink.h b/gst-libs/gst/audio/gstaudiobasesink.h index 8c709bd58f..af491a6d26 100644 --- a/gst-libs/gst/audio/gstaudiobasesink.h +++ b/gst-libs/gst/audio/gstaudiobasesink.h @@ -99,8 +99,6 @@ typedef enum GST_AUDIO_BASE_SINK_SLAVE_CUSTOM } GstAudioBaseSinkSlaveMethod; -#define GST_TYPE_AUDIO_BASE_SINK_SLAVE_METHOD (gst_audio_base_sink_slave_method_get_type ()) - typedef struct _GstAudioBaseSink GstAudioBaseSink; typedef struct _GstAudioBaseSinkClass GstAudioBaseSinkClass; typedef struct _GstAudioBaseSinkPrivate GstAudioBaseSinkPrivate; @@ -223,7 +221,6 @@ struct _GstAudioBaseSinkClass { }; GType gst_audio_base_sink_get_type(void); -GType gst_audio_base_sink_slave_method_get_type (void); GstAudioRingBuffer * gst_audio_base_sink_create_ringbuffer (GstAudioBaseSink *sink); diff --git a/gst-libs/gst/audio/gstaudiobasesrc.c b/gst-libs/gst/audio/gstaudiobasesrc.c index ffb725a6a4..e8063eb976 100644 --- a/gst-libs/gst/audio/gstaudiobasesrc.c +++ b/gst-libs/gst/audio/gstaudiobasesrc.c @@ -45,29 +45,6 @@ GST_DEBUG_CATEGORY_STATIC (gst_audio_base_src_debug); #define GST_CAT_DEFAULT gst_audio_base_src_debug -GType -gst_audio_base_src_slave_method_get_type (void) -{ - static volatile gsize slave_method_type = 0; - /* FIXME 2.0: nick should be "retimestamp" not "re-timestamp" */ - static const GEnumValue slave_method[] = { - {GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE, - "GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE", "resample"}, - {GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP, - "GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP", "re-timestamp"}, - {GST_AUDIO_BASE_SRC_SLAVE_SKEW, "GST_AUDIO_BASE_SRC_SLAVE_SKEW", "skew"}, - {GST_AUDIO_BASE_SRC_SLAVE_NONE, "GST_AUDIO_BASE_SRC_SLAVE_NONE", "none"}, - {0, NULL, NULL}, - }; - - if (g_once_init_enter (&slave_method_type)) { - GType tmp = - g_enum_register_static ("GstAudioBaseSrcSlaveMethod", slave_method); - g_once_init_leave (&slave_method_type, tmp); - } - return (GType) slave_method_type; -} - #define GST_AUDIO_BASE_SRC_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_BASE_SRC, GstAudioBaseSrcPrivate)) @@ -993,7 +970,7 @@ gst_audio_base_src_create (GstBaseSrc * bsrc, guint64 offset, guint length, } break; } - case GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP: + case GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP: { GstClockTime base_time, latency; diff --git a/gst-libs/gst/audio/gstaudiobasesrc.h b/gst-libs/gst/audio/gstaudiobasesrc.h index 7bf2de46c5..2247bad5e3 100644 --- a/gst-libs/gst/audio/gstaudiobasesrc.h +++ b/gst-libs/gst/audio/gstaudiobasesrc.h @@ -62,10 +62,12 @@ typedef struct _GstAudioBaseSrc GstAudioBaseSrc; typedef struct _GstAudioBaseSrcClass GstAudioBaseSrcClass; typedef struct _GstAudioBaseSrcPrivate GstAudioBaseSrcPrivate; +/* FIXME 2.0: Should be "retimestamp" not "re-timestamp" */ + /** * GstAudioBaseSrcSlaveMethod: * @GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE: Resample to match the master clock. - * @GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP: Retimestamp output buffers with master + * @GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP: Retimestamp output buffers with master * clock time. * @GST_AUDIO_BASE_SRC_SLAVE_SKEW: Adjust capture pointer when master clock * drifts too much. @@ -77,12 +79,12 @@ typedef struct _GstAudioBaseSrcPrivate GstAudioBaseSrcPrivate; typedef enum { GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE, - GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP, + GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP, GST_AUDIO_BASE_SRC_SLAVE_SKEW, GST_AUDIO_BASE_SRC_SLAVE_NONE } GstAudioBaseSrcSlaveMethod; -#define GST_TYPE_AUDIO_BASE_SRC_SLAVE_METHOD (gst_audio_base_src_slave_method_get_type ()) +#define GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP /** * GstAudioBaseSrc: @@ -131,7 +133,6 @@ struct _GstAudioBaseSrcClass { }; GType gst_audio_base_src_get_type(void); -GType gst_audio_base_src_slave_method_get_type (void); GstAudioRingBuffer * gst_audio_base_src_create_ringbuffer (GstAudioBaseSrc *src); diff --git a/gst-libs/gst/audio/gstaudiocdsrc.c b/gst-libs/gst/audio/gstaudiocdsrc.c index f2efeab3b7..c4576e5da5 100644 --- a/gst-libs/gst/audio/gstaudiocdsrc.c +++ b/gst-libs/gst/audio/gstaudiocdsrc.c @@ -200,24 +200,6 @@ GST_STATIC_PAD_TEMPLATE ("src", static GstFormat track_format; static GstFormat sector_format; -GType -gst_audio_cd_src_mode_get_type (void) -{ - static GType mode_type; /* 0 */ - static const GEnumValue modes[] = { - {GST_AUDIO_CD_SRC_MODE_NORMAL, "Stream consists of a single track", - "normal"}, - {GST_AUDIO_CD_SRC_MODE_CONTINUOUS, "Stream consists of the whole disc", - "continuous"}, - {0, NULL, NULL} - }; - - if (mode_type == 0) - mode_type = g_enum_register_static ("GstAudioCdSrcMode", modes); - - return mode_type; -} - static void gst_audio_cd_src_class_init (GstAudioCdSrcClass * klass) { diff --git a/gst-libs/gst/audio/gstaudiocdsrc.h b/gst-libs/gst/audio/gstaudiocdsrc.h index dcfabae551..5044d32792 100644 --- a/gst-libs/gst/audio/gstaudiocdsrc.h +++ b/gst-libs/gst/audio/gstaudiocdsrc.h @@ -54,8 +54,6 @@ typedef enum { GST_AUDIO_CD_SRC_MODE_CONTINUOUS /* stream = whole disc */ } GstAudioCdSrcMode; -#define GST_TYPE_AUDIO_CD_SRC_MODE (gst_audio_cd_src_mode_get_type ()) - /** * GstAudioCdSrcTrack: * @is_audio: Whether this is an audio track @@ -134,7 +132,6 @@ struct _GstAudioCdSrcClass { }; GType gst_audio_cd_src_get_type (void); -GType gst_audio_cd_src_mode_get_type (void); gboolean gst_audio_cd_src_add_track (GstAudioCdSrc * src, GstAudioCdSrcTrack * track); diff --git a/gst-libs/gst/audio/meson.build b/gst-libs/gst/audio/meson.build index 58ca7dd73c..513577b013 100644 --- a/gst-libs/gst/audio/meson.build +++ b/gst-libs/gst/audio/meson.build @@ -33,6 +33,9 @@ audio_mkenum_headers = [ 'audio-quantize.h', 'audio-resampler.h', 'gstaudioringbuffer.h', + 'gstaudiobasesrc.h', + 'gstaudiocdsrc.h', + 'gstaudiobasesink.h', ] # FIXME: check headers diff --git a/win32/common/libgstaudio.def b/win32/common/libgstaudio.def index 6fa0756e51..8b83502b6d 100644 --- a/win32/common/libgstaudio.def +++ b/win32/common/libgstaudio.def @@ -1,6 +1,7 @@ EXPORTS _gst_audio_decoder_error gst_audio_base_sink_create_ringbuffer + gst_audio_base_sink_discont_reason_get_type gst_audio_base_sink_get_alignment_threshold gst_audio_base_sink_get_discont_wait gst_audio_base_sink_get_drift_tolerance