# pulsesink

Source: [https://docs.qualcomm.com/doc/80-70014-50/topic/pulsesink.html](https://docs.qualcomm.com/doc/80-70014-50/topic/pulsesink.html)

The pulsesink plugin interacts with the underlying PulseAudio sound server to play
        the PCM samples.

The PulseAudio Server interacts with the underlying hardware to provide the playback
            capability and is based on [GstAudioBaseSink](https://gstreamer.freedesktop.org/documentation/audio/gstaudiobasesink.html#GstAudioBaseSink) base class.

## Inheritance chain

[GObject](https://docs.gtk.org/gobject/) → [GstObject](https://gstreamer.freedesktop.org/documentation/gstreamer/gstobject.html?gi-language=c) → [GstElement](https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c) → [GstBaseSink](https://gstreamer.freedesktop.org/documentation/base/gstbasesink.html?gi-language=c#GstBaseSink)→ [GstAudioBaseSink](https://gstreamer.freedesktop.org/documentation/audio/gstaudiobasesink.html#GstAudioBaseSink) → GstPulseSink

The following tables provide information on pad templates and element properties of
                pulsesink. For use cases, see [Audio (only) playback](https://docs.qualcomm.com/doc/80-70014-50/topic/audio-only-playback.html).

## Pad configuration

| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-raw | format: | { (string)S16LE, (string)S16BE, (string)F32LE, (string)F32BE,<br>                                (string)S32LE, (string)S32BE, (string)S24LE, (string)S24BE,<br>                                (string)S24\_32LE, (string)S24\_32BE, (string)U8 } |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-raw | layout: | interleaved |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-raw | rate: | [ 1, 22579200 ] |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-raw | channels: | [ 1, 32 ] |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-alaw | rate: | [ 1, 22579200 ] |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-alaw | channels: | [ 1, 32 ] |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-mulaw | rate: | [ 1, 22579200 ] |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-mulaw | channels: | [ 1, 32 ] |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-ac3 | framed: | true |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-eac3 | framed: | true |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-dts | framed: | true |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/x-dts | block-size: | { (int)512, (int)1024, (int)2048 } |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/mpeg | mpegversion: | 1 |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/mpeg | mpegaudioversion: | [ 1, 3 ] |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/mpeg | parsed: | true |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/mpeg | mpegversion: | { (int)2, (int)4 } |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/mpeg | framed: | true |
| SINK template: 'sink'<br><br><br>                                <br>*Availability:* Always<br><br><br>                                <br>*Direction:* sink | audio/mpeg | stream-format: | adts |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

## Element configuration

Table : Elements properties of pulsesink

| Property | Description |
| --- | --- |
| name | <ul class="ul" id="pulsesink__ul_gsh_4b4_myb"><br>                                    <li class="li">The name of the object</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: "pulsesink0"</li><br><br>                                </ul> |
| parent | <ul class="ul" id="pulsesink__ul_hsh_4b4_myb"><br>                                    <li class="li">The parent of the object</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Object of type "GstObject"</li><br><br>                                </ul> |
| sync | <ul class="ul" id="pulsesink__ul_ish_4b4_myb"><br>                                    <li class="li">Sync on the clock</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| max-lateness | <ul class="ul" id="pulsesink__ul_jsh_4b4_myb"><br>                                    <li class="li">Maximum number of nanoseconds that a buffer can be late<br>                                        before it is dropped (-1 unlimited)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer64. Range: -1 - 9223372036854775807 Default: -1</li><br><br>                                </ul> |
| qos | <ul class="ul" id="pulsesink__ul_ksh_4b4_myb"><br>                                    <li class="li">Generate Quality-of-Service events upstream</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| async | <ul class="ul" id="pulsesink__ul_lsh_4b4_myb"><br>                                    <li class="li">Go asynchronously to PAUSED</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| ts-offset | <ul class="ul" id="pulsesink__ul_msh_4b4_myb"><br>                                    <li class="li">Timestamp offset in nanoseconds</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer64. Range: -9223372036854775808 - 9223372036854775807<br>                                        Default: 0</li><br><br>                                </ul> |
| enable-last-sample | <ul class="ul" id="pulsesink__ul_nsh_4b4_myb"><br>                                    <li class="li">Enable the last-sample property</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| last-sample | <ul class="ul" id="pulsesink__ul_osh_4b4_myb"><br>                                    <li class="li">The last sample received in the sink</li><br><br>                                    <li class="li">flags: readable</li><br><br>                                    <li class="li">Boxed pointer of type "GstSample"</li><br><br>                                </ul> |
| blocksize | <ul class="ul" id="pulsesink__ul_psh_4b4_myb"><br>                                    <li class="li">Size in bytes to pull per buffer (0 = default)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer. Range: 0 - 4294967295 Default: 4096</li><br><br>                                </ul> |
| render-delay | <ul class="ul" id="pulsesink__ul_qsh_4b4_myb"><br>                                    <li class="li">Additional render delay of the sink in nanoseconds</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        0</li><br><br>                                </ul> |
| throttle-time | <ul class="ul" id="pulsesink__ul_rsh_4b4_myb"><br>                                    <li class="li">The time to keep between rendered buffers (0 =<br>                                        disabled)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        0</li><br><br>                                </ul> |
| max-bitrate | <ul class="ul" id="pulsesink__ul_ssh_4b4_myb"><br>                                    <li class="li">The maximum bits per second to render (0 = disabled)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        0</li><br><br>                                </ul> |
| buffer-time | <ul class="ul" id="pulsesink__ul_tsh_4b4_myb"><br>                                    <li class="li">Size of audio buffer in microseconds, this is the minimum<br>                                        latency that the sink reports</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer64. Range: 1 - 9223372036854775807 Default:<br>                                        200000</li><br><br>                                </ul> |
| latency-time | <ul class="ul" id="pulsesink__ul_ush_4b4_myb"><br>                                    <li class="li">The minimum amount of data to write in each iteration in<br>                                        microseconds</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer64. Range: 1 - 9223372036854775807 Default:<br>                                        10000</li><br><br>                                </ul> |
| provide-clock | <ul class="ul" id="pulsesink__ul_vsh_4b4_myb"><br>                                    <li class="li">Provide a clock to be used as the global pipeline clock</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| slave-method | <ul class="ul" id="pulsesink__ul_wsh_4b4_myb"><br>                                    <li class="li">Algorithm used to match the rate of the masterclock</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                </ul><br><br>                                <br>Enum "GstAudioBaseSinkSlaveMethod" Default: 1, "skew"<br><br><br>                                <ul class="ul" id="pulsesink__ul_wp1_pb4_myb"><br>                                    <li class="li"> (0): resample - GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE</li><br><br>                                    <li class="li"> (1): skew - GST_AUDIO_BASE_SINK_SLAVE_SKEW</li><br><br>                                    <li class="li"> (2): none - GST_AUDIO_BASE_SINK_SLAVE_NONE</li><br><br>                                    <li class="li"> (3): custom - GST_AUDIO_BASE_SINK_SLAVE_CUSTOM</li><br><br>                                </ul> |
| can-activate-pull | <ul class="ul" id="pulsesink__ul_xsh_4b4_myb"><br>                                    <li class="li">Allow pull-based scheduling</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| alignment-threshold | <ul class="ul" id="pulsesink__ul_ysh_4b4_myb"><br>                                    <li class="li">Timestamp alignment threshold in nanoseconds</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 1 - 18446744073709551614 Default:<br>                                        40000000</li><br><br>                                </ul> |
| drift-tolerance | <ul class="ul" id="pulsesink__ul_zsh_4b4_myb"><br>                                    <li class="li">Tolerance for clock drift in microseconds</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer64. Range: 1 - 9223372036854775807 Default:<br>                                        40000</li><br><br>                                </ul> |
| discont-wait | <ul class="ul" id="pulsesink__ul_ath_4b4_myb"><br>                                    <li class="li">Window of time in nanoseconds to wait before creating a<br>                                        discontinuity</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551614 Default:<br>                                        1000000000</li><br><br>                                </ul> |
| server | <ul class="ul" id="pulsesink__ul_bth_4b4_myb"><br>                                    <li class="li">The PulseAudio server to connect to</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: null</li><br><br>                                </ul> |
| device | <ul class="ul" id="pulsesink__ul_cth_4b4_myb"><br>                                    <li class="li">The PulseAudio sink device to connect to</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: null</li><br><br>                                </ul> |
| current-device | <ul class="ul" id="pulsesink__ul_dth_4b4_myb"><br>                                    <li class="li">The current PulseAudio sink device</li><br><br>                                    <li class="li">flags: readable</li><br><br>                                    <li class="li">String. Default: ""</li><br><br>                                </ul> |
| device-name | <ul class="ul" id="pulsesink__ul_eth_4b4_myb"><br>                                    <li class="li">Human-readable name of the sound device</li><br><br>                                    <li class="li">flags: readable</li><br><br>                                    <li class="li">String. Default: null</li><br><br>                                </ul> |
| volume | <ul class="ul" id="pulsesink__ul_fth_4b4_myb"><br>                                    <li class="li">Linear volume of this stream, 1.0=100%</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Double. Range: 0 - 10 Default: 1</li><br><br>                                </ul> |
| mute | <ul class="ul" id="pulsesink__ul_gth_4b4_myb"><br>                                    <li class="li">Mute state of this stream</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| client-name | <ul class="ul" id="pulsesink__ul_hth_4b4_myb"><br>                                    <li class="li">The PulseAudio client name to use</li><br><br>                                    <li class="li">flags: readable, writable, changeable only in NULL or READY<br>                                        state</li><br><br>                                    <li class="li">String. Default: "gst-inspect-1.0"</li><br><br>                                </ul> |
| stream-properties | <ul class="ul" id="pulsesink__ul_ith_4b4_myb"><br>                                    <li class="li">list of pulseaudio stream properties</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boxed pointer of type "GstStructure"</li><br><br>                                </ul> |
| stream-flags | <ul class="ul" id="pulsesink__ul_jth_4b4_myb"><br>                                    <li class="li">Stream flags to use (not all default flags can be<br>                                        overridden)</li><br><br>                                    <li class="li">flags: writable</li><br><br>                                    <li class="li">Flags "GstPulseStreamFlags" Default: 0x0000200b, "Try to<br>                                        adjust the latency of the sink/source based on the requested<br>                                        buffer metrics and adjust buffer metrics accordingly+Timing<br>                                        update requests are issued periodically<br>                                        automatically+Interpolate the latency for this stream+Create<br>                                        the stream corked" <ul class="ul" id="pulsesink__ul_kth_4b4_myb"><br>                                            <li class="li">(0x00000000): Flag to pass when no specific options<br>                                                are needed - GST_PULSE_STREAM_NOFLAGS</li><br><br>                                            <li class="li">(0x00000001): Create the stream corked -<br>                                                GST_PULSE_STREAM_START_CORKED</li><br><br>                                            <li class="li">(0x00000002): Interpolate the latency for this<br>                                                stream - GST_PULSE_STREAM_INTERPOLATE_TIMING</li><br><br>                                            <li class="li">(0x00000004): Don't force the time to increase<br>                                                monotonically - GST_PULSE_STREAM_NOT_MONOTONIC</li><br><br>                                            <li class="li">(0x00000008): Timing update requests are issued<br>                                                periodically automatically -<br>                                                GST_PULSE_STREAM_AUTO_TIMING_UPDATE</li><br><br>                                            <li class="li">(0x00000010): Don't remap channels by their name,<br>                                                instead map them simply by their index -<br>                                                GST_PULSE_STREAM_NO_REMAP_CHANNELS</li><br><br>                                            <li class="li">(0x00000020): When remapping channels by name, don't<br>                                                upmix or downmix them to related channels -<br>                                                GST_PULSE_STREAM_NO_REMIX_CHANNELS</li><br><br>                                            <li class="li">(0x00000040): Use the sample format of the<br>                                                sink/device this stream is being connected to -<br>                                                GST_PULSE_STREAM_FIX_FORMAT</li><br><br>                                            <li class="li">(0x00000080): Use the sample rate of the sink -<br>                                                GST_PULSE_STREAM_FIX_RATE</li><br><br>                                            <li class="li">(0x00000100): Use the number of channels and the<br>                                                channel map of the sink -<br>                                                GST_PULSE_STREAM_FIX_CHANNELS</li><br><br>                                            <li class="li">(0x00000200): Don't allow moving of this stream to<br>                                                another sink/device -<br>                                                GST_PULSE_STREAM_DONT_MOVE</li><br><br>                                            <li class="li">(0x00000400): Allow dynamic changing of the sampling<br>                                                rate during playback -<br>                                                GST_PULSE_STREAM_VARIABLE_RATE</li><br><br>                                            <li class="li">(0x00000800): Find peaks instead of resampling -<br>                                                GST_PULSE_STREAM_PEAK_DETECT</li><br><br>                                            <li class="li">(0x00001000): Create in muted state -<br>                                                GST_PULSE_STREAM_START_MUTED</li><br><br>                                            <li class="li">(0x00002000): Try to adjust the latency of the<br>                                                sink/source based on the requested buffer metrics<br>                                                and adjust buffer metrics accordingly -<br>                                                GST_PULSE_STREAM_ADJUST_LATENCY</li><br><br>                                            <li class="li">(0x00004000): Enable compatibility mode for legacy<br>                                                clients that rely on a classic hardware device<br>                                                fragment-style playback model -<br>                                                GST_PULSE_STREAM_EARLY_REQUESTS</li><br><br>                                            <li class="li">(0x00008000): If set this stream won't be considered<br>                                                when it is checked whether the device this stream is<br>                                                connected to should auto-suspend -<br>                                                GST_PULSE_STREAM_DONT_INHIBIT_AUTO_SUSPEND</li><br><br>                                            <li class="li">(0x00010000): Create in unmuted state -<br>                                                GST_PULSE_STREAM_START_UNMUTED</li><br><br>                                            <li class="li">(0x00020000): If the sink/source this stream is<br>                                                connected to is suspended during the creation of<br>                                                this stream, cause it to fail -<br>                                                GST_PULSE_STREAM_FAIL_ON_SUSPEND</li><br><br>                                            <li class="li">(0x00040000): If a volume is passed when this stream<br>                                                is created, creation of this stream, cause it to<br>                                                fail - GST_PULSE_STREAM_RELATIVE_VOLUME</li><br><br>                                            <li class="li">(0x00080000): Used to tag content that will be<br>                                                rendered by passthrough sinks -<br>                                                GST_PULSE_STREAM_PASSTHROUGH Write only</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| prebuf | <ul class="ul" id="pulsesink__ul_lth_4b4_myb"><br>                                    <li class="li">Prebuf to be set with sink-input</li><br><br>                                    <li class="li">flags: writable</li><br><br>                                    <li class="li">Integer. Range: -1 - 2147483647 Default: 0 Write only</li><br><br>                                </ul> |

**Parent Topic:** [Qualcomm GST plugins](https://docs.qualcomm.com/doc/80-70014-50/topic/qim-sdk-plugins.html)

Last Published: Oct 27, 2025

[Previous Topic
pulsesrc](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/pulsesrc.md) [Next Topic
qtivcomposer](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/qtivcomposer.md)