|  |  |  | GStreamer Base Plugins 1.0 Library Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | ||||
#include <gst/audio/gstaudiobasesink.h> struct GstAudioBaseSink; struct GstAudioBaseSinkClass; enum GstAudioBaseSinkSlaveMethod; #define GST_AUDIO_BASE_SINK_CLOCK (obj) #define GST_AUDIO_BASE_SINK_PAD (obj) GstAudioRingBuffer * gst_audio_base_sink_create_ringbuffer (GstAudioBaseSink *sink); void gst_audio_base_sink_set_provide_clock (GstAudioBaseSink *sink,gboolean provide); gboolean gst_audio_base_sink_get_provide_clock (GstAudioBaseSink *sink); void gst_audio_base_sink_set_slave_method (GstAudioBaseSink *sink,GstAudioBaseSinkSlaveMethod method); GstAudioBaseSinkSlaveMethod gst_audio_base_sink_get_slave_method (GstAudioBaseSink *sink); void gst_audio_base_sink_set_drift_tolerance (GstAudioBaseSink *sink,gint64 drift_tolerance); gint64 gst_audio_base_sink_get_drift_tolerance (GstAudioBaseSink *sink); void gst_audio_base_sink_set_alignment_threshold (GstAudioBaseSink *sink,GstClockTime alignment_threshold); GstClockTime gst_audio_base_sink_get_alignment_threshold (GstAudioBaseSink *sink); void gst_audio_base_sink_set_discont_wait (GstAudioBaseSink *sink,GstClockTime discont_wait); GstClockTime gst_audio_base_sink_get_discont_wait (GstAudioBaseSink *sink);
GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstBaseSink +----GstAudioBaseSink +----GstAudioSink
"alignment-threshold" guint64 : Read / Write "buffer-time" gint64 : Read / Write "can-activate-pull" gboolean : Read / Write "discont-wait" guint64 : Read / Write "drift-tolerance" gint64 : Read / Write "latency-time" gint64 : Read / Write "provide-clock" gboolean : Read / Write "slave-method" GstAudioBaseSinkSlaveMethod : 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)
struct GstAudioBaseSinkClass {
  GstBaseSinkClass     parent_class;
  /* subclass ringbuffer allocation */
  GstAudioRingBuffer* (*create_ringbuffer)  (GstAudioBaseSink *sink);
  /* subclass payloader */
  GstBuffer*          (*payload)            (GstAudioBaseSink *sink,
                                             GstBuffer        *buffer);
};
GstAudioBaseSink class. Override the vmethod to implement functionality.
| GstBaseSinkClass  | the parent class. | 
| create and return a GstAudioRingBuffer to write to. | |
| payload data in a format suitable to write to the sink. If no payloading is required, returns a reffed copy of the original buffer, else returns the payloaded buffer with all other metadata copied. | 
typedef enum {
  GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE,
  GST_AUDIO_BASE_SINK_SLAVE_SKEW,
  GST_AUDIO_BASE_SINK_SLAVE_NONE
} GstAudioBaseSinkSlaveMethod;
Different possible clock slaving algorithms used when the internal audio clock is not selected as the pipeline master clock.
#define GST_AUDIO_BASE_SINK_CLOCK(obj) (GST_AUDIO_BASE_SINK (obj)->clock)
Get the GstClock of obj.
| 
 | a GstAudioBaseSink | 
#define GST_AUDIO_BASE_SINK_PAD(obj) (GST_BASE_SINK (obj)->sinkpad)
Get the sink GstPad of obj.
| 
 | a GstAudioBaseSink | 
GstAudioRingBuffer * gst_audio_base_sink_create_ringbuffer
                                                        (GstAudioBaseSink *sink);
Create and return the GstAudioRingBuffer 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 GstAudioBaseSink. | 
| Returns : | The new ringbuffer of sink. [transfer none] | 
void gst_audio_base_sink_set_provide_clock (GstAudioBaseSink *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 GstAudioBaseSink | 
| 
 | new state | 
gboolean            gst_audio_base_sink_get_provide_clock
                                                        (GstAudioBaseSink *sink);
Queries whether sink will provide a clock or not. See also
gst_audio_base_sink_set_provide_clock.
| 
 | a GstAudioBaseSink | 
| Returns : | TRUEifsinkwill provide a clock. | 
void gst_audio_base_sink_set_slave_method (GstAudioBaseSink *sink,GstAudioBaseSinkSlaveMethod method);
Controls how clock slaving will be performed in sink.
| 
 | a GstAudioBaseSink | 
| 
 | the new slave method | 
GstAudioBaseSinkSlaveMethod gst_audio_base_sink_get_slave_method
                                                        (GstAudioBaseSink *sink);
Get the current slave method used by sink.
| 
 | a GstAudioBaseSink | 
| Returns : | The current slave method used by sink. | 
void gst_audio_base_sink_set_drift_tolerance (GstAudioBaseSink *sink,gint64 drift_tolerance);
Controls the sink's drift tolerance.
| 
 | a GstAudioBaseSink | 
| 
 | the new drift tolerance in microseconds | 
gint64              gst_audio_base_sink_get_drift_tolerance
                                                        (GstAudioBaseSink *sink);
Get the current drift tolerance, in microseconds, used by sink.
| 
 | a GstAudioBaseSink | 
| Returns : | The current drift tolerance used by sink. | 
void gst_audio_base_sink_set_alignment_threshold (GstAudioBaseSink *sink,GstClockTime alignment_threshold);
Controls the sink's alignment threshold.
| 
 | a GstAudioBaseSink | 
| 
 | the new alignment threshold in nanoseconds | 
GstClockTime        gst_audio_base_sink_get_alignment_threshold
                                                        (GstAudioBaseSink *sink);
Get the current alignment threshold, in nanoseconds, used by sink.
| 
 | a GstAudioBaseSink | 
| Returns : | The current alignment threshold used by sink. | 
void gst_audio_base_sink_set_discont_wait (GstAudioBaseSink *sink,GstClockTime discont_wait);
Controls how long the sink will wait before creating a discontinuity.
| 
 | a GstAudioBaseSink | 
| 
 | the new discont wait in nanoseconds | 
GstClockTime        gst_audio_base_sink_get_discont_wait
                                                        (GstAudioBaseSink *sink);
Get the current discont wait, in nanoseconds, used by sink.
| 
 | a GstAudioBaseSink | 
| Returns : | The current discont wait used by sink. | 
"alignment-threshold" property  "alignment-threshold"      guint64               : Read / Write
Timestamp alignment threshold in nanoseconds.
Allowed values: [1,18446744073709551614]
Default value: 40000000
"buffer-time" property  "buffer-time"              gint64                : Read / Write
Size of audio buffer in microseconds, this is the minimum latency that the sink reports.
Allowed values: >= 1
Default value: 200000
"can-activate-pull" property"can-activate-pull" gboolean : Read / Write
Allow pull-based scheduling.
Default value: FALSE
"discont-wait" property  "discont-wait"             guint64               : Read / Write
A window of time in nanoseconds to wait before creating a discontinuity as a result of breaching the drift-tolerance.
Allowed values: <= 18446744073709551614
Default value: 1000000000
"drift-tolerance" property  "drift-tolerance"          gint64                : Read / Write
Controls the amount of time in microseconds that clocks are allowed to drift before resynchronisation happens.
Allowed values: >= 1
Default value: 40000
"latency-time" property  "latency-time"             gint64                : Read / Write
The minimum amount of data to write in each iteration 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" GstAudioBaseSinkSlaveMethod : Read / Write
Algorithm to use to match the rate of the masterclock.
Default value: GST_AUDIO_BASE_SINK_SLAVE_SKEW