mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 12:32:29 +00:00
audio: Generate audiobasesink/src and audiocdsrc GLib enums automatically
And ensure that GstAudioBaseSrcSlaveMethod's re-timestamp stays re-timestamp and doesn't become retimestamp.
This commit is contained in:
parent
bdccc98ee2
commit
8b468c3c36
9 changed files with 14 additions and 77 deletions
|
@ -11,7 +11,10 @@ glib_enum_headers= \
|
||||||
audio-info.h \
|
audio-info.h \
|
||||||
audio-quantize.h \
|
audio-quantize.h \
|
||||||
audio-resampler.h \
|
audio-resampler.h \
|
||||||
gstaudioringbuffer.h
|
gstaudioringbuffer.h \
|
||||||
|
gstaudiobasesrc.h \
|
||||||
|
gstaudiocdsrc.h \
|
||||||
|
gstaudiobasesink.h
|
||||||
|
|
||||||
glib_enum_define = GST_AUDIO
|
glib_enum_define = GST_AUDIO
|
||||||
glib_gen_prefix = gst_audio
|
glib_gen_prefix = gst_audio
|
||||||
|
|
|
@ -121,30 +121,6 @@ enum
|
||||||
PROP_LAST
|
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 \
|
#define _do_init \
|
||||||
GST_DEBUG_CATEGORY_INIT (gst_audio_base_sink_debug, "audiobasesink", 0, "audiobasesink element");
|
GST_DEBUG_CATEGORY_INIT (gst_audio_base_sink_debug, "audiobasesink", 0, "audiobasesink element");
|
||||||
#define gst_audio_base_sink_parent_class parent_class
|
#define gst_audio_base_sink_parent_class parent_class
|
||||||
|
|
|
@ -99,8 +99,6 @@ typedef enum
|
||||||
GST_AUDIO_BASE_SINK_SLAVE_CUSTOM
|
GST_AUDIO_BASE_SINK_SLAVE_CUSTOM
|
||||||
} GstAudioBaseSinkSlaveMethod;
|
} GstAudioBaseSinkSlaveMethod;
|
||||||
|
|
||||||
#define GST_TYPE_AUDIO_BASE_SINK_SLAVE_METHOD (gst_audio_base_sink_slave_method_get_type ())
|
|
||||||
|
|
||||||
typedef struct _GstAudioBaseSink GstAudioBaseSink;
|
typedef struct _GstAudioBaseSink GstAudioBaseSink;
|
||||||
typedef struct _GstAudioBaseSinkClass GstAudioBaseSinkClass;
|
typedef struct _GstAudioBaseSinkClass GstAudioBaseSinkClass;
|
||||||
typedef struct _GstAudioBaseSinkPrivate GstAudioBaseSinkPrivate;
|
typedef struct _GstAudioBaseSinkPrivate GstAudioBaseSinkPrivate;
|
||||||
|
@ -223,7 +221,6 @@ struct _GstAudioBaseSinkClass {
|
||||||
};
|
};
|
||||||
|
|
||||||
GType gst_audio_base_sink_get_type(void);
|
GType gst_audio_base_sink_get_type(void);
|
||||||
GType gst_audio_base_sink_slave_method_get_type (void);
|
|
||||||
|
|
||||||
GstAudioRingBuffer *
|
GstAudioRingBuffer *
|
||||||
gst_audio_base_sink_create_ringbuffer (GstAudioBaseSink *sink);
|
gst_audio_base_sink_create_ringbuffer (GstAudioBaseSink *sink);
|
||||||
|
|
|
@ -45,29 +45,6 @@
|
||||||
GST_DEBUG_CATEGORY_STATIC (gst_audio_base_src_debug);
|
GST_DEBUG_CATEGORY_STATIC (gst_audio_base_src_debug);
|
||||||
#define GST_CAT_DEFAULT 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) \
|
#define GST_AUDIO_BASE_SRC_GET_PRIVATE(obj) \
|
||||||
(G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_BASE_SRC, GstAudioBaseSrcPrivate))
|
(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;
|
break;
|
||||||
}
|
}
|
||||||
case GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP:
|
case GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP:
|
||||||
{
|
{
|
||||||
GstClockTime base_time, latency;
|
GstClockTime base_time, latency;
|
||||||
|
|
||||||
|
|
|
@ -62,10 +62,12 @@ typedef struct _GstAudioBaseSrc GstAudioBaseSrc;
|
||||||
typedef struct _GstAudioBaseSrcClass GstAudioBaseSrcClass;
|
typedef struct _GstAudioBaseSrcClass GstAudioBaseSrcClass;
|
||||||
typedef struct _GstAudioBaseSrcPrivate GstAudioBaseSrcPrivate;
|
typedef struct _GstAudioBaseSrcPrivate GstAudioBaseSrcPrivate;
|
||||||
|
|
||||||
|
/* FIXME 2.0: Should be "retimestamp" not "re-timestamp" */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstAudioBaseSrcSlaveMethod:
|
* GstAudioBaseSrcSlaveMethod:
|
||||||
* @GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE: Resample to match the master clock.
|
* @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.
|
* clock time.
|
||||||
* @GST_AUDIO_BASE_SRC_SLAVE_SKEW: Adjust capture pointer when master clock
|
* @GST_AUDIO_BASE_SRC_SLAVE_SKEW: Adjust capture pointer when master clock
|
||||||
* drifts too much.
|
* drifts too much.
|
||||||
|
@ -77,12 +79,12 @@ typedef struct _GstAudioBaseSrcPrivate GstAudioBaseSrcPrivate;
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE,
|
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_SKEW,
|
||||||
GST_AUDIO_BASE_SRC_SLAVE_NONE
|
GST_AUDIO_BASE_SRC_SLAVE_NONE
|
||||||
} GstAudioBaseSrcSlaveMethod;
|
} 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:
|
* GstAudioBaseSrc:
|
||||||
|
@ -131,7 +133,6 @@ struct _GstAudioBaseSrcClass {
|
||||||
};
|
};
|
||||||
|
|
||||||
GType gst_audio_base_src_get_type(void);
|
GType gst_audio_base_src_get_type(void);
|
||||||
GType gst_audio_base_src_slave_method_get_type (void);
|
|
||||||
|
|
||||||
GstAudioRingBuffer *
|
GstAudioRingBuffer *
|
||||||
gst_audio_base_src_create_ringbuffer (GstAudioBaseSrc *src);
|
gst_audio_base_src_create_ringbuffer (GstAudioBaseSrc *src);
|
||||||
|
|
|
@ -200,24 +200,6 @@ GST_STATIC_PAD_TEMPLATE ("src",
|
||||||
static GstFormat track_format;
|
static GstFormat track_format;
|
||||||
static GstFormat sector_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
|
static void
|
||||||
gst_audio_cd_src_class_init (GstAudioCdSrcClass * klass)
|
gst_audio_cd_src_class_init (GstAudioCdSrcClass * klass)
|
||||||
{
|
{
|
||||||
|
|
|
@ -54,8 +54,6 @@ typedef enum {
|
||||||
GST_AUDIO_CD_SRC_MODE_CONTINUOUS /* stream = whole disc */
|
GST_AUDIO_CD_SRC_MODE_CONTINUOUS /* stream = whole disc */
|
||||||
} GstAudioCdSrcMode;
|
} GstAudioCdSrcMode;
|
||||||
|
|
||||||
#define GST_TYPE_AUDIO_CD_SRC_MODE (gst_audio_cd_src_mode_get_type ())
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstAudioCdSrcTrack:
|
* GstAudioCdSrcTrack:
|
||||||
* @is_audio: Whether this is an audio track
|
* @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_get_type (void);
|
||||||
GType gst_audio_cd_src_mode_get_type (void);
|
|
||||||
|
|
||||||
gboolean gst_audio_cd_src_add_track (GstAudioCdSrc * src,
|
gboolean gst_audio_cd_src_add_track (GstAudioCdSrc * src,
|
||||||
GstAudioCdSrcTrack * track);
|
GstAudioCdSrcTrack * track);
|
||||||
|
|
|
@ -33,6 +33,9 @@ audio_mkenum_headers = [
|
||||||
'audio-quantize.h',
|
'audio-quantize.h',
|
||||||
'audio-resampler.h',
|
'audio-resampler.h',
|
||||||
'gstaudioringbuffer.h',
|
'gstaudioringbuffer.h',
|
||||||
|
'gstaudiobasesrc.h',
|
||||||
|
'gstaudiocdsrc.h',
|
||||||
|
'gstaudiobasesink.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
# FIXME: check headers
|
# FIXME: check headers
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
EXPORTS
|
EXPORTS
|
||||||
_gst_audio_decoder_error
|
_gst_audio_decoder_error
|
||||||
gst_audio_base_sink_create_ringbuffer
|
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_alignment_threshold
|
||||||
gst_audio_base_sink_get_discont_wait
|
gst_audio_base_sink_get_discont_wait
|
||||||
gst_audio_base_sink_get_drift_tolerance
|
gst_audio_base_sink_get_drift_tolerance
|
||||||
|
|
Loading…
Reference in a new issue