## gstbaseaudiosrc gstbaseaudiosrc — Base class for audio sources |

## Synopsis

    #include <gst/audio/gstbaseaudiosrc.h>

                        GstBaseAudioSrc;
                        GstBaseAudioSrcClass;
    #define             GST_BASE_AUDIO_SRC_CLOCK            (obj)
    #define             GST_BASE_AUDIO_SRC_PAD              (obj)
    GstRingBuffer*      gst_base_audio_src_create_ringbuffer
                                                            (GstBaseAudioSrc *src);

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----GstBaseSrc
                         +----GstPushSrc
                               +----GstBaseAudioSrc
                                     +----GstAudioSrc

## Properties

      "buffer-time"              gint64                : Read / Write
      "latency-time"             gint64                : Read / Write
      "provide-clock"            gboolean              : Read / Write

## Description

This is the base class for audio sources. Subclasses need to implement the ::create_ringbuffer vmethod. This base class will then take care of reading samples from the ringbuffer, synchronisation and flushing.

Last reviewed on 2006-09-27 (0.10.12)

## Details

### GstBaseAudioSrc

    typedef struct _GstBaseAudioSrc GstBaseAudioSrc;

Opaque GstBaseAudioSrc.

### GstBaseAudioSrcClass

    typedef struct {
      GstPushSrcClass parent_class;

      /* subclass ringbuffer allocation */
      GstRingBuffer* (*create_ringbuffer)  (GstBaseAudioSrc *src);
    } GstBaseAudioSrcClass;

GstBaseAudioSrc class. Override the vmethod to implement functionality.

GstPushSrcClass `parent_class`; | the parent class.
`create_ringbuffer` () | create and return a GstRingBuffer to read from.

### GST_BASE_AUDIO_SRC_CLOCK()

    #define GST_BASE_AUDIO_SRC_CLOCK(obj)    (GST_BASE_AUDIO_SRC (obj)->clock)

Get the GstClock of `obj`.

`obj` : | a GstBaseAudioSrc

### GST_BASE_AUDIO_SRC_PAD()

    #define GST_BASE_AUDIO_SRC_PAD(obj)      (GST_BASE_SRC (obj)->srcpad)

Get the source GstPad of `obj`.

`obj` : | a GstBaseAudioSrc

### gst_base_audio_src_create_ringbuffer ()

    GstRingBuffer*      gst_base_audio_src_create_ringbuffer
                                                            (GstBaseAudioSrc *src);

Create and return the GstRingBuffer for `src`. This function will call the ::create_ringbuffer vmethod and will set `src` as the parent of the returned buffer (see `gst_object_set_parent()`).

`src` : | a GstBaseAudioSrc.
Returns : | The new ringbuffer of `src`.

## Property Details

### The "`buffer-time`" property

      "buffer-time"              gint64                : Read / Write

Size of audio buffer in microseconds.

Allowed values: >= 1

Default value: 200000

### The "`latency-time`" property

      "latency-time"             gint64                : Read / Write

Audio latency in microseconds.

Allowed values: >= 1

Default value: 10000

### The "`provide-clock`" property

      "provide-clock"            gboolean              : Read / Write

Provide a clock to be used as the global pipeline clock.

Default value: TRUE

## See Also

GstAudioSrc, GstRingBuffer.