gstaudiobasesrc

gstaudiobasesrc — Base class for audio sources

Functions

Properties

gint64 actual-buffer-time Read
gint64 actual-latency-time Read
gint64 buffer-time Read / Write
gint64 latency-time Read / Write
gboolean provide-clock Read / Write
GstAudioBaseSrcSlaveMethod slave-method Read / Write

Types and Values

Object Hierarchy

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

Includes

#include <gst/audio/gstaudiobasesrc.h>

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.

Functions

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

 

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

The new ringbuffer of src .

[transfer none]


gst_audio_base_src_set_provide_clock ()

void
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

 

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.


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 .


gst_audio_base_src_set_slave_method ()

void
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

 

Types and Values

struct GstAudioBaseSrc

struct GstAudioBaseSrc;

Opaque GstAudioBaseSrc.


struct GstAudioBaseSrcClass

struct GstAudioBaseSrcClass {
  GstPushSrcClass      parent_class;

  /* subclass ringbuffer allocation */
  GstAudioRingBuffer* (*create_ringbuffer)  (GstAudioBaseSrc *src);
};

GstAudioBaseSrc class. Override the vmethod to implement functionality.

Members

GstPushSrcClass parent_class;

the parent class.

 

create_ringbuffer ()

create and return a GstAudioRingBuffer to read from.

 

enum 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

Resample to match the master clock.

 

GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP

Retimestamp output buffers with master clock time.

 

GST_AUDIO_BASE_SRC_SLAVE_SKEW

Adjust capture pointer when master clock drifts too much.

 

GST_AUDIO_BASE_SRC_SLAVE_NONE

No adjustment is done.

 

Property Details

The “actual-buffer-time” property

  “actual-buffer-time”       gint64

Actual configured size of audio buffer in microseconds.

Flags: Read

Allowed values: >= -1

Default value: -1


The “actual-latency-time” property

  “actual-latency-time”      gint64

Actual configured audio latency in microseconds.

Flags: Read

Allowed values: >= -1

Default value: -1


The “buffer-time” property

  “buffer-time”              gint64

Size of audio buffer in microseconds. This is the maximum amount of data that is buffered in the device and the maximum latency that the source reports. This value might be ignored by the element if necessary; see "actual-buffer-time".

Flags: Read / Write

Allowed values: >= 1

Default value: 200000


The “latency-time” property

  “latency-time”             gint64

The minimum amount of data to read in each iteration in microseconds. This is the minimum latency that the source reports. This value might be ignored by the element if necessary; see "actual-latency-time".

Flags: Read / Write

Allowed values: >= 1

Default value: 10000


The “provide-clock” property

  “provide-clock”            gboolean

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

Flags: Read / Write

Default value: TRUE


The “slave-method” property

  “slave-method”             GstAudioBaseSrcSlaveMethod

Algorithm used to match the rate of the masterclock.

Flags: Read / Write

Default value: GST_AUDIO_BASE_SRC_SLAVE_SKEW

See Also

GstAudioSrc, GstAudioRingBuffer.