|  |  |  | GStreamer Base Plugins 0.10 Library Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | ||||
#include <gst/audio/gstbaseaudiosink.h>
                    GstBaseAudioSink;
                    GstBaseAudioSinkClass;
enum                GstBaseAudioSinkSlaveMethod;
#define             GST_BASE_AUDIO_SINK_CLOCK           (obj)
#define             GST_BASE_AUDIO_SINK_PAD             (obj)
GstRingBuffer *     gst_base_audio_sink_create_ringbuffer
                                                        (GstBaseAudioSink *sink);
void                gst_base_audio_sink_set_provide_clock
                                                        (GstBaseAudioSink *sink,
                                                         gboolean provide);
gboolean            gst_base_audio_sink_get_provide_clock
                                                        (GstBaseAudioSink *sink);
void                gst_base_audio_sink_set_slave_method
                                                        (GstBaseAudioSink *sink,
                                                         GstBaseAudioSinkSlaveMethod method);
GstBaseAudioSinkSlaveMethod  gst_base_audio_sink_get_slave_method
                                                        (GstBaseAudioSink *sink);
GObject +----GstObject +----GstElement +----GstBaseSink +----GstBaseAudioSink +----GstAudioSink
"buffer-time" gint64 : Read / Write "can-activate-pull" gboolean : Read / Write "latency-time" gint64 : Read / Write "provide-clock" gboolean : Read / Write "slave-method" GstBaseAudioSinkSlaveMethod : Read / Write
This is the base class for audio sinks. Subclasses need to implement the ::create_ringbuffer vmethod. This base class will then take care of writing samples to the ringbuffer, synchronisation, clipping and flushing.
Last reviewed on 2006-09-27 (0.10.12)
typedef struct {
  GstBaseSinkClass parent_class;
  /* subclass ringbuffer allocation */
  GstRingBuffer* (*create_ringbuffer)  (GstBaseAudioSink *sink);
} GstBaseAudioSinkClass;
GstBaseAudioSink class. Override the vmethod to implement functionality.
| GstBaseSinkClass  | the parent class. | 
| 
 | create and return a GstRingBuffer to write to. | 
typedef enum
{
  GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE,
  GST_BASE_AUDIO_SINK_SLAVE_SKEW,
  GST_BASE_AUDIO_SINK_SLAVE_NONE
} GstBaseAudioSinkSlaveMethod;
Different possible clock slaving algorithms used when the internal audio clock is not selected as the pipeline master clock.
#define GST_BASE_AUDIO_SINK_CLOCK(obj) (GST_BASE_AUDIO_SINK (obj)->clock)
Get the GstClock of obj.
| 
 | a GstBaseAudioSink | 
#define GST_BASE_AUDIO_SINK_PAD(obj) (GST_BASE_SINK (obj)->sinkpad)
Get the sink GstPad of obj.
| 
 | a GstBaseAudioSink | 
GstRingBuffer * gst_base_audio_sink_create_ringbuffer (GstBaseAudioSink *sink);
Create and return the GstRingBuffer for sink. This function will call the
::create_ringbuffer vmethod and will set sink as the parent of the returned
buffer (see gst_object_set_parent()).
| 
 | a GstBaseAudioSink. | 
| Returns : | The new ringbuffer of sink. | 
void                gst_base_audio_sink_set_provide_clock
                                                        (GstBaseAudioSink *sink,
                                                         gboolean provide);
Controls whether sink will provide a clock or not. If provide is TRUE,
gst_element_provide_clock() will return a clock that reflects the datarate
of sink. If provide is FALSE, gst_element_provide_clock() will return NULL.
| 
 | a GstBaseAudioSink | 
| 
 | new state | 
Since 0.10.16
gboolean gst_base_audio_sink_get_provide_clock (GstBaseAudioSink *sink);
Queries whether sink will provide a clock or not. See also
gst_base_audio_sink_set_provide_clock.
| 
 | a GstBaseAudioSink | 
| Returns : | TRUEifsinkwill provide a clock. | 
Since 0.10.16
void                gst_base_audio_sink_set_slave_method
                                                        (GstBaseAudioSink *sink,
                                                         GstBaseAudioSinkSlaveMethod method);
Controls how clock slaving will be performed in sink.
| 
 | a GstBaseAudioSink | 
| 
 | the new slave method | 
Since 0.10.16
GstBaseAudioSinkSlaveMethod gst_base_audio_sink_get_slave_method (GstBaseAudioSink *sink);
Get the current slave method used by sink.
| 
 | a GstBaseAudioSink | 
| Returns : | The current slave method used by sink. | 
Since 0.10.16
"buffer-time" property"buffer-time" gint64 : Read / Write
Size of audio buffer in microseconds.
Allowed values: >= 1
Default value: 200000
"can-activate-pull" property"can-activate-pull" gboolean : Read / Write
Allow pull-based scheduling.
Default value: FALSE
"latency-time" property"latency-time" gint64 : Read / Write
Audio latency in microseconds.
Allowed values: >= 1
Default value: 10000
"provide-clock" property"provide-clock" gboolean : Read / Write
Provide a clock to be used as the global pipeline clock.
Default value: TRUE
"slave-method" property"slave-method" GstBaseAudioSinkSlaveMethod : Read / Write
Algorithm to use to match the rate of the masterclock.
Default value: Skew slaving