# audioconvert

Audioconvert converts raw audio buffers between various possible formats. It supports integer to float conversion, width/depth conversion, signedness and endianness conversion and channel transformations (ie. upmixing and downmixing), as well as dithering and noise-shaping.

## Example launch line

     gst-launch-1.0 -v -m audiotestsrc ! audioconvert ! audio/x-raw,format=S8,channels=2 ! level ! fakesink silent=TRUE

This pipeline converts audio to 8-bit. The level element shows that the output levels still match the one for a sine wave.

     gst-launch-1.0 -v -m uridecodebin uri=file:///path/to/audio.flac ! audioconvert ! vorbisenc ! oggmux ! filesink location=audio.ogg

The vorbis encoder takes float audio data instead of the integer data output by most other audio elements. This pipeline decodes a FLAC audio file (or any other audio file for which decoders are installed) and re-encodes it into an Ogg/Vorbis audio file.

A mix matrix can be passed to audioconvert, that will govern the remapping of input to output channels. This is required if the input channels are unpositioned and no standard layout can be determined. If an empty mix matrix is specified, a (potentially truncated) identity matrix will be generated.

## Example matrix generation code

To generate the matrix using code:

     GValue v = G_VALUE_INIT;
     GValue v2 = G_VALUE_INIT;
     GValue v3 = G_VALUE_INIT;

     g_value_init (&v2, GST_TYPE_ARRAY);
     g_value_init (&v3, G_TYPE_FLOAT);
     g_value_set_float (&v3, 1);
     gst_value_array_append_value (&v2, &v3);
     g_value_unset (&v3);
     [ Repeat for as many float as your input channels - unset and reinit v3 ]
     g_value_init (&v, GST_TYPE_ARRAY);
     gst_value_array_append_value (&v, &v2);
     g_value_unset (&v2);
     [ Repeat for as many v2's as your output channels - unset and reinit v2]
     g_object_set_property (G_OBJECT (audioconvert), "mix-matrix", &v);
     g_value_unset (&v);

## Example launch line

     gst-launch-1.0 audiotestsrc ! audio/x-raw, channels=4 ! audioconvert mix-matrix="<<(float)1.0, (float)0.0, (float)0.0, (float)0.0>, <(float)0.0, (float)1.0, (float)0.0, (float)0.0>>" ! audio/x-raw,channels=2 ! autoaudiosink

## Example empty matrix generation code

     GValue v = G_VALUE_INIT;

     g_value_init (&v, GST_TYPE_ARRAY);
     g_object_set_property (G_OBJECT (audioconvert), "mix-matrix", &v);
     g_value_unset (&v);

## Example empty matrix launch line

     gst-launch-1.0 -v audiotestsrc ! audio/x-raw,channels=8 ! audioconvert mix-matrix="<>" ! audio/x-raw,channels=16,channel-mask=\(bitmask\)0x0000000000000000 ! fakesink

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseTransform
                        ╰──audioconvert

## Factory details

Authors: – Benjamin Otte <otte></otte>

Classification: – `Filter/Converter/Audio`

Rank – primary

Plugin – audioconvert

Package – GStreamer Base Plug-ins

## Pad Templates

### `sink`

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

Presence – always

Direction – sink

Object type – GstPad

### `src`

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

Presence – always

Direction – src

Object type – GstPad

## Properties

### dithering

    “dithering” GstAudioDitherMethod *

Selects between different dithering methods.

Flags : Read / Write

Default value : tpdf (2)

### dithering-threshold

    “dithering-threshold” guint

Threshold for the output bit depth at/below which to apply dithering.

Flags : Read / Write

Default value : 20

Since : 1.22

### mix-matrix

    “mix-matrix” GstValueArray *

Transformation matrix for input/output channels. Required if the input channels are unpositioned and no standard layout can be determined. Setting an empty matrix like "< >" will generate an identity matrix."

Flags : Read / Write

### noise-shaping

    “noise-shaping” GstAudioNoiseShapingMethod *

Selects between different noise shaping methods.

Flags : Read / Write

Default value : none (0)

The results of the search are