deinterleave

Splits one interleaved multichannel audio stream into many mono audio streams.

This element handles all raw audio formats and supports changing the input caps as long as all downstream elements can handle the new caps and the number of channels and the channel positions stay the same. This restriction will be removed in later versions by adding or removing some source pads as required.

In most cases a queue and an audioconvert element should be added after each source pad before further processing of the audio data.

Example launch line

 gst-launch-1.0 filesrc location=/path/to/file.mp3 ! decodebin ! audioconvert ! "audio/x-raw,channels=2 ! deinterleave name=d  d.src_0 ! queue ! audioconvert ! vorbisenc ! oggmux ! filesink location=channel1.ogg  d.src_1 ! queue ! audioconvert ! vorbisenc ! oggmux ! filesink location=channel2.ogg

Decodes an MP3 file and encodes the left and right channel into separate Ogg Vorbis files.

 gst-launch-1.0 filesrc location=file.mp3 ! decodebin ! audioconvert ! "audio/x-raw,channels=2" ! deinterleave name=d  interleave name=i ! audioconvert ! wavenc ! filesink location=test.wav    d.src_0 ! queue ! audioconvert ! i.sink_1    d.src_1 ! queue ! audioconvert ! i.sink_0

Decodes and deinterleaves a Stereo MP3 file into separate channels and then interleaves the channels again to a WAV file with the channel with the channels exchanged.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──deinterleave

Factory details

Authors: – Andy Wingo , Iain , Sebastian Dröge

Classification:Filter/Converter/Audio

Rank – none

Plugin – gstinterleave

Package – GStreamer Good Plug-ins git

Pad Templates

sink

audio/x-raw:
         format: { S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }
           rate: [ 1, 2147483647 ]
       channels: [ 1, 2147483647 ]
         layout: interleaved

Presencealways

Directionsink


src_%u

audio/x-raw:
         format: { S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }
           rate: [ 1, 2147483647 ]
       channels: 1
         layout: { (string)non-interleaved, (string)interleaved }

Presencesometimes

Directionsrc


Signals

no-more-pads

no_more_pads_callback (GstElement * param_0,
                       gpointer udata)
def no_more_pads_callback (param_0, udata):
    #python callback for the 'no-more-pads' signal
function no_more_pads_callback(param_0: GstElement * param_0, udata: gpointer udata): {
    // javascript callback for the 'no-more-pads' signal
}

Parameters:

param_0
No description available
udata
No description available

pad-added

pad_added_callback (GstElement * param_0,
                    GstPad * param_1,
                    gpointer udata)
def pad_added_callback (param_0, param_1, udata):
    #python callback for the 'pad-added' signal
function pad_added_callback(param_0: GstElement * param_0, param_1: GstPad * param_1, udata: gpointer udata): {
    // javascript callback for the 'pad-added' signal
}

Parameters:

param_0
No description available
param_1
No description available
udata
No description available

pad-removed

pad_removed_callback (GstElement * param_0,
                      GstPad * param_1,
                      gpointer udata)
def pad_removed_callback (param_0, param_1, udata):
    #python callback for the 'pad-removed' signal
function pad_removed_callback(param_0: GstElement * param_0, param_1: GstPad * param_1, udata: gpointer udata): {
    // javascript callback for the 'pad-removed' signal
}

Parameters:

param_0
No description available
param_1
No description available
udata
No description available

Properties

keep-positions

“keep-positions” gboolean

Keep positions: When enable the caps on the output buffers will contain the original channel positions. This can be used to correctly interleave the output again later but can also lead to unwanted effects if the output should be handled as Mono.

Flags : Read / Write

Default value : false


name

“name” gchararray

The name of the object

Flags : Read / Write / Construct

Default value : NULL


parent

“parent” GstObject *

The parent of the object

Flags : Read / Write


The results of the search are