| GStreamer Base Plugins 0.10 Library Reference Manual | ||||
|---|---|---|---|---|
GObject
+----GstObject
+----GstElement
+----GstBaseSrc
+----GstPushSrc
+----GstBaseAudioSrc
+----GstAudioSrc
This is the most simple base class for audio sources that only requires subclasses to implement a set of simple functions:
|
Open the device. |
|
Configure the device with the specified format. |
|
Read samples from the device. |
|
Unblock reads and flush the device. |
|
Get the number of samples in the device but not yet read. |
|
Undo operations done by prepare. |
|
Close the device. |
All scheduling of samples and timestamps is done in this base class together with GstBaseAudioSrc using a default implementation of a GstRingBuffer that uses threads.
Last reviewed on 2006-09-27 (0.10.12)
typedef struct {
GstBaseAudioSrcClass parent_class;
/* vtable */
/* open the device with given specs */
gboolean (*open) (GstAudioSrc *src);
/* prepare resources and state to operate with the given specs */
gboolean (*prepare) (GstAudioSrc *src, GstRingBufferSpec *spec);
/* undo anything that was done in prepare() */
gboolean (*unprepare) (GstAudioSrc *src);
/* close the device */
gboolean (*close) (GstAudioSrc *src);
/* read samples from the device */
guint (*read) (GstAudioSrc *src, gpointer data, guint length);
/* get number of samples queued in the device */
guint (*delay) (GstAudioSrc *src);
/* reset the audio device, unblock from a write */
void (*reset) (GstAudioSrc *src);
} GstAudioSrcClass;