# GstAudioBaseSrc

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.

## GstAudioBaseSrc

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseSrc
                        ╰──GstPushSrc
                            ╰──GstAudioBaseSrc
                                ╰──GstAudioSrc

Opaque GstAudioBaseSrc.

### Members

`element` (GstPushSrc) –
No description available
`ringbuffer` (GstAudioRingBuffer *) –
No description available
`buffer_time` (GstClockTime) –
No description available
`latency_time` (GstClockTime) –
No description available
`next_sample` (guint64) –
No description available
`clock` (GstClock *) –
No description available

### Class structure

#### GstAudioBaseSrcClass

GstAudioBaseSrc class. Override the vmethod to implement functionality.

##### Fields

`parent_class` (GstPushSrcClass) –

the parent class.

### GstAudio.AudioBaseSrcClass

GstAudio.AudioBaseSrc class. Override the vmethod to implement functionality.

##### Attributes

`parent_class` (GstBase.PushSrcClass) –

the parent class.

### GstAudio.AudioBaseSrcClass

GstAudio.AudioBaseSrc class. Override the vmethod to implement functionality.

##### Attributes

`parent_class` (GstBase.PushSrcClass) –

the parent class.

## GstAudio.AudioBaseSrc

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──GstBase.BaseSrc
                        ╰──GstBase.PushSrc
                            ╰──GstAudio.AudioBaseSrc
                                ╰──GstAudio.AudioSrc

Opaque GstAudio.AudioBaseSrc.

### Members

`element` (GstBase.PushSrc) –
No description available
`ringbuffer` (GstAudio.AudioRingBuffer) –
No description available
`buffer_time` (Number) –
No description available
`latency_time` (Number) –
No description available
`next_sample` (Number) –
No description available
`clock` (Gst.Clock) –
No description available

## GstAudio.AudioBaseSrc

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──GstBase.BaseSrc
                        ╰──GstBase.PushSrc
                            ╰──GstAudio.AudioBaseSrc
                                ╰──GstAudio.AudioSrc

Opaque GstAudio.AudioBaseSrc.

### Members

`element` (GstBase.PushSrc) –
No description available
`ringbuffer` (GstAudio.AudioRingBuffer) –
No description available
`buffer_time` (int) –
No description available
`latency_time` (int) –
No description available
`next_sample` (int) –
No description available
`clock` (Gst.Clock) –
No description available

### Methods

#### gst_audio_base_src_create_ringbuffer

    GstAudioRingBuffer *
    gst_audio_base_src_create_ringbuffer (GstAudioBaseSrc * src)

Create and return the GstAudioRingBuffer 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).

Parameters:

`src` –

a GstAudioBaseSrc.

Returns ( [transfer: none][nullable]) –

The new ringbuffer of src.

#### GstAudio.AudioBaseSrc.prototype.create_ringbuffer

    function GstAudio.AudioBaseSrc.prototype.create_ringbuffer(): {
        // javascript wrapper for 'gst_audio_base_src_create_ringbuffer'
    }

Create and return the GstAudio.AudioRingBuffer for src. This function will call the ::create_ringbuffer vmethod and will set src as the parent of the returned buffer (see Gst.Object.prototype.set_parent).

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc.

Returns (GstAudio.AudioRingBuffer) –

The new ringbuffer of src.

#### GstAudio.AudioBaseSrc.create_ringbuffer

    def GstAudio.AudioBaseSrc.create_ringbuffer (self):
        #python wrapper for 'gst_audio_base_src_create_ringbuffer'

Create and return the GstAudio.AudioRingBuffer 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).

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc.

Returns (GstAudio.AudioRingBuffer) –

The new ringbuffer of src.

#### gst_audio_base_src_get_provide_clock

    gboolean
    gst_audio_base_src_get_provide_clock (GstAudioBaseSrc * src)

Queries whether src will provide a clock or not. See also gst_audio_base_src_set_provide_clock.

Parameters:

`src` –

a GstAudioBaseSrc

Returns –

TRUE if src will provide a clock.

#### GstAudio.AudioBaseSrc.prototype.get_provide_clock

    function GstAudio.AudioBaseSrc.prototype.get_provide_clock(): {
        // javascript wrapper for 'gst_audio_base_src_get_provide_clock'
    }

Queries whether src will provide a clock or not. See also gst_audio_base_src_set_provide_clock.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

Returns (Number) –

true if src will provide a clock.

#### GstAudio.AudioBaseSrc.get_provide_clock

    def GstAudio.AudioBaseSrc.get_provide_clock (self):
        #python wrapper for 'gst_audio_base_src_get_provide_clock'

Queries whether src will provide a clock or not. See also gst_audio_base_src_set_provide_clock.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

Returns (bool) –

True if src will provide a clock.

#### gst_audio_base_src_get_slave_method

    GstAudioBaseSrcSlaveMethod
    gst_audio_base_src_get_slave_method (GstAudioBaseSrc * src)

Get the current slave method used by src.

Parameters:

`src` –

a GstAudioBaseSrc

Returns –

The current slave method used by src.

#### GstAudio.AudioBaseSrc.prototype.get_slave_method

    function GstAudio.AudioBaseSrc.prototype.get_slave_method(): {
        // javascript wrapper for 'gst_audio_base_src_get_slave_method'
    }

Get the current slave method used by src.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

Returns (GstAudio.AudioBaseSrcSlaveMethod) –

The current slave method used by src.

#### GstAudio.AudioBaseSrc.get_slave_method

    def GstAudio.AudioBaseSrc.get_slave_method (self):
        #python wrapper for 'gst_audio_base_src_get_slave_method'

Get the current slave method used by src.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

Returns (GstAudio.AudioBaseSrcSlaveMethod) –

The current slave method used by src.

#### gst_audio_base_src_set_provide_clock

    gst_audio_base_src_set_provide_clock (GstAudioBaseSrc * src,
                                          gboolean provide)

Controls whether src will provide a clock or not. If provide is TRUE, gst_element_provide_clock will return a clock that reflects the datarate of src. If provide is FALSE, gst_element_provide_clock will return NULL.

Parameters:

`src` –

a GstAudioBaseSrc

`provide` –

new state

#### GstAudio.AudioBaseSrc.prototype.set_provide_clock

    function GstAudio.AudioBaseSrc.prototype.set_provide_clock(provide: Number): {
        // javascript wrapper for 'gst_audio_base_src_set_provide_clock'
    }

Controls whether src will provide a clock or not. If provide is true, Gst.Element.prototype.provide_clock will return a clock that reflects the datarate of src. If provide is false, Gst.Element.prototype.provide_clock will return NULL.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

`provide` (Number) –

new state

#### GstAudio.AudioBaseSrc.set_provide_clock

    def GstAudio.AudioBaseSrc.set_provide_clock (self, provide):
        #python wrapper for 'gst_audio_base_src_set_provide_clock'

Controls whether src will provide a clock or not. If provide is True, Gst.Element.provide_clock will return a clock that reflects the datarate of src. If provide is False, Gst.Element.provide_clock will return NULL.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

`provide` (bool) –

new state

#### gst_audio_base_src_set_slave_method

    gst_audio_base_src_set_slave_method (GstAudioBaseSrc * src,
                                         GstAudioBaseSrcSlaveMethod method)

Controls how clock slaving will be performed in src.

Parameters:

`src` –

a GstAudioBaseSrc

`method` –

the new slave method

#### GstAudio.AudioBaseSrc.prototype.set_slave_method

    function GstAudio.AudioBaseSrc.prototype.set_slave_method(method: GstAudio.AudioBaseSrcSlaveMethod): {
        // javascript wrapper for 'gst_audio_base_src_set_slave_method'
    }

Controls how clock slaving will be performed in src.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

`method` (GstAudio.AudioBaseSrcSlaveMethod) –

the new slave method

#### GstAudio.AudioBaseSrc.set_slave_method

    def GstAudio.AudioBaseSrc.set_slave_method (self, method):
        #python wrapper for 'gst_audio_base_src_set_slave_method'

Controls how clock slaving will be performed in src.

Parameters:

`src` (GstAudio.AudioBaseSrc) –

a GstAudio.AudioBaseSrc

`method` (GstAudio.AudioBaseSrcSlaveMethod) –

the new slave method

### Properties

#### actual-buffer-time

    “actual-buffer-time” gint64

Actual configured size of audio buffer in microseconds.

Flags : Read

#### actual-buffer-time

    “actual-buffer-time” Number

Actual configured size of audio buffer in microseconds.

Flags : Read

#### actual_buffer_time

    “self.props.actual_buffer_time” int

Actual configured size of audio buffer in microseconds.

Flags : Read

#### actual-latency-time

    “actual-latency-time” gint64

Actual configured audio latency in microseconds.

Flags : Read

#### actual-latency-time

    “actual-latency-time” Number

Actual configured audio latency in microseconds.

Flags : Read

#### actual_latency_time

    “self.props.actual_latency_time” int

Actual configured audio latency in microseconds.

Flags : Read

#### buffer-time

    “buffer-time” gint64

Flags : Read / Write

#### buffer-time

    “buffer-time” Number

Flags : Read / Write

#### buffer_time

    “self.props.buffer_time” int

Flags : Read / Write

#### latency-time

    “latency-time” gint64

Flags : Read / Write

#### latency-time

    “latency-time” Number

Flags : Read / Write

#### latency_time

    “self.props.latency_time” int

Flags : Read / Write

#### provide-clock

    “provide-clock” gboolean

Flags : Read / Write

#### provide-clock

    “provide-clock” Number

Flags : Read / Write

#### provide_clock

    “self.props.provide_clock” bool

Flags : Read / Write

#### slave-method

    “slave-method” GstAudioBaseSrcSlaveMethod *

Flags : Read / Write

#### slave-method

    “slave-method” GstAudio.AudioBaseSrcSlaveMethod

Flags : Read / Write

#### slave_method

    “self.props.slave_method” GstAudio.AudioBaseSrcSlaveMethod

Flags : Read / Write

### Virtual Methods

#### create_ringbuffer

    GstAudioRingBuffer *
    create_ringbuffer (GstAudioBaseSrc * src)

create and return a GstAudioRingBuffer to read from.

Parameters:

`src` –
No description available
Returns –
No description available

#### vfunc_create_ringbuffer

    function vfunc_create_ringbuffer(src: GstAudio.AudioBaseSrc): {
        // javascript implementation of the 'create_ringbuffer' virtual method
    }

create and return a GstAudio.AudioRingBuffer to read from.

Parameters:

`src` (GstAudio.AudioBaseSrc) –
No description available
Returns (GstAudio.AudioRingBuffer) –
No description available

#### do_create_ringbuffer

    def do_create_ringbuffer (src):
        #python implementation of the 'create_ringbuffer' virtual method

create and return a GstAudio.AudioRingBuffer to read from.

Parameters:

`src` (GstAudio.AudioBaseSrc) –
No description available
Returns (GstAudio.AudioRingBuffer) –
No description available

## Function Macros

### GST_AUDIO_BASE_SRC_CAST

    #define GST_AUDIO_BASE_SRC_CAST(obj)            ((GstAudioBaseSrc*)obj)

### GST_AUDIO_BASE_SRC_CLOCK

    #define GST_AUDIO_BASE_SRC_CLOCK(obj)    (GST_AUDIO_BASE_SRC (obj)->clock)

Get the GstClock of obj.

Parameters:

`obj` –

a GstAudioBaseSrc

### GST_AUDIO_BASE_SRC_PAD

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

Get the source GstPad of obj.

Parameters:

`obj` –

a GstAudioBaseSrc

## Enumerations

### GstAudioBaseSrcSlaveMethod

Different possible clock slaving algorithms when the internal audio clock was not selected as the pipeline clock.

##### Members

`GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE` (0) –

Resample to match the master clock.

`GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP` (1) –

Retimestamp output buffers with master clock time.

`GST_AUDIO_BASE_SRC_SLAVE_SKEW` (2) –

Adjust capture pointer when master clock drifts too much.

`GST_AUDIO_BASE_SRC_SLAVE_NONE` (3) –

No adjustment is done.

### GstAudio.AudioBaseSrcSlaveMethod

Different possible clock slaving algorithms when the internal audio clock was not selected as the pipeline clock.

##### Members

`GstAudio.AudioBaseSrcSlaveMethod.RESAMPLE` (0) –

Resample to match the master clock.

`GstAudio.AudioBaseSrcSlaveMethod.RE_TIMESTAMP` (1) –

Retimestamp output buffers with master clock time.

`GstAudio.AudioBaseSrcSlaveMethod.SKEW` (2) –

Adjust capture pointer when master clock drifts too much.

`GstAudio.AudioBaseSrcSlaveMethod.NONE` (3) –

No adjustment is done.

### GstAudio.AudioBaseSrcSlaveMethod

Different possible clock slaving algorithms when the internal audio clock was not selected as the pipeline clock.

##### Members

`GstAudio.AudioBaseSrcSlaveMethod.RESAMPLE` (0) –

Resample to match the master clock.

`GstAudio.AudioBaseSrcSlaveMethod.RE_TIMESTAMP` (1) –

Retimestamp output buffers with master clock time.

`GstAudio.AudioBaseSrcSlaveMethod.SKEW` (2) –

Adjust capture pointer when master clock drifts too much.

`GstAudio.AudioBaseSrcSlaveMethod.NONE` (3) –

No adjustment is done.

## Constants

### GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP

    #define GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP

The results of the search are