deinterleave

deinterleave — Splits one interleaved multichannel audio stream into many mono audio streams

Synopsis

struct              GstDeinterleave;

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstElement
                     +----GstDeinterleave

Properties

  "keep-positions"           gboolean              : Read / Write

Description

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

1
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.
1
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.

Synopsis

Element Information

plugin

interleave

author

Andy Wingo <wingo at pobox.com>, Iain <iain@prettypeople.org>, Sebastian Dröge <slomo@circular-chaos.org>

class

Filter/Converter/Audio

Element Pads

name

sink

direction

sink

presence

always

details

audio/x-raw, format=(string){ 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=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved

name

src_%u

direction

source

presence

sometimes

details

audio/x-raw, format=(string){ 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=(int)[ 1, 2147483647 ], channels=(int)1, layout=(string){ non-interleaved, interleaved }

Details

struct GstDeinterleave

struct GstDeinterleave;

Property Details

The "keep-positions" property

  "keep-positions"           gboolean              : Read / Write

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.

Default value: FALSE

See Also

interleave