## GstAudioChannelMixer

## GstAudio.AudioChannelMixer

### Methods

#### gst_audio_channel_mixer_free

    gst_audio_channel_mixer_free (GstAudioChannelMixer * mix)

Free memory allocated by mix.

Parameters:

`mix` –

a GstAudioChannelMixer

#### GstAudio.AudioChannelMixer.prototype.free

    function GstAudio.AudioChannelMixer.prototype.free(): {
        // javascript wrapper for 'gst_audio_channel_mixer_free'
    }

Free memory allocated by mix.

Parameters:

`mix` (GstAudio.AudioChannelMixer) –

a GstAudio.AudioChannelMixer

#### GstAudio.AudioChannelMixer.free

    def GstAudio.AudioChannelMixer.free (self):
        #python wrapper for 'gst_audio_channel_mixer_free'

Free memory allocated by mix.

Parameters:

`mix` (GstAudio.AudioChannelMixer) –

a GstAudio.AudioChannelMixer

#### gst_audio_channel_mixer_is_passthrough

    gboolean
    gst_audio_channel_mixer_is_passthrough (GstAudioChannelMixer * mix)

Check if mix is in passthrough.

Only N x N mix identity matrices are considered passthrough, this is determined by comparing the contents of the matrix with 0.0 and 1.0.

As this is floating point comparisons, if the values have been generated, they should be rounded up or down by explicit assignment of 0.0 or 1.0 to values within a user-defined epsilon, this code doesn't make assumptions as to what may constitute an appropriate epsilon.

Parameters:

`mix` –

a GstAudioChannelMixer

Returns –

TRUE is mix is passthrough.

#### GstAudio.AudioChannelMixer.prototype.is_passthrough

    function GstAudio.AudioChannelMixer.prototype.is_passthrough(): {
        // javascript wrapper for 'gst_audio_channel_mixer_is_passthrough'
    }

Check if mix is in passthrough.

Only N x N mix identity matrices are considered passthrough, this is determined by comparing the contents of the matrix with 0.0 and 1.0.

As this is floating point comparisons, if the values have been generated, they should be rounded up or down by explicit assignment of 0.0 or 1.0 to values within a user-defined epsilon, this code doesn't make assumptions as to what may constitute an appropriate epsilon.

Parameters:

`mix` (GstAudio.AudioChannelMixer) –

a GstAudio.AudioChannelMixer

Returns (Number) –

true is mix is passthrough.

#### GstAudio.AudioChannelMixer.is_passthrough

    def GstAudio.AudioChannelMixer.is_passthrough (self):
        #python wrapper for 'gst_audio_channel_mixer_is_passthrough'

Check if mix is in passthrough.

Only N x N mix identity matrices are considered passthrough, this is determined by comparing the contents of the matrix with 0.0 and 1.0.

As this is floating point comparisons, if the values have been generated, they should be rounded up or down by explicit assignment of 0.0 or 1.0 to values within a user-defined epsilon, this code doesn't make assumptions as to what may constitute an appropriate epsilon.

Parameters:

`mix` (GstAudio.AudioChannelMixer) –

a GstAudio.AudioChannelMixer

Returns (bool) –

True is mix is passthrough.

#### gst_audio_channel_mixer_samples

    gst_audio_channel_mixer_samples (GstAudioChannelMixer * mix,
                                     const gpointer * in,
                                     gpointer * out,
                                     gint samples)

In case the samples are interleaved, in and out must point to an array with a single element pointing to a block of interleaved samples.

If non-interleaved samples are used, in and out must point to an array with pointers to memory blocks, one for each channel.

Perform channel mixing on in_data and write the result to out_data. in_data and out_data need to be in format and layout.

Parameters:

`mix` –

a GstAudioChannelMixer

`in` ( [array][element-type gpointer]) –

input samples

`out` ( [array][element-type gpointer]) –

output samples

`samples` –

number of samples

### Functions

#### gst_audio_channel_mixer_new

    GstAudioChannelMixer *
    gst_audio_channel_mixer_new (GstAudioChannelMixerFlags flags,
                                 GstAudioFormat format,
                                 gint in_channels,
                                 GstAudioChannelPosition * in_position,
                                 gint out_channels,
                                 GstAudioChannelPosition * out_position)

Create a new channel mixer object for the given parameters.

Parameters:

`flags` –

GstAudioChannelMixerFlags

`format` –
No description available
`in_channels` –

number of input channels

`in_position` ( [array length=in_channels]) –

positions of input channels

`out_channels` –

number of output channels

`out_position` ( [array length=out_channels]) –

positions of output channels

Returns ( [transfer: full]) –

a new GstAudioChannelMixer object. Free with gst_audio_channel_mixer_free after usage.

#### gst_audio_channel_mixer_new_with_matrix

    GstAudioChannelMixer *
    gst_audio_channel_mixer_new_with_matrix (GstAudioChannelMixerFlags flags,
                                             GstAudioFormat format,
                                             gint in_channels,
                                             gint out_channels,
                                             gfloat ** matrix)

Create a new channel mixer object for the given parameters.

Parameters:

`flags` –

GstAudioChannelMixerFlags

`format` –
No description available
`in_channels` –

number of input channels

`out_channels` –

number of output channels

`matrix` ( [array][element-type float*][transfer: full][nullable]) –

channel conversion matrix, m[@in_channels][@out_channels]. If identity matrix, passthrough applies. If NULL, a (potentially truncated) identity matrix is generated.

Returns ( [transfer: full]) –

a new GstAudioChannelMixer object. Free with gst_audio_channel_mixer_free after usage.

Since : 1.14

## Enumerations

### GstAudioChannelMixerFlags

Flags passed to gst_audio_channel_mixer_new

##### Members

`GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE` (0) –

no flag

`GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN` (1) –

input channels are not interleaved

`GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT` (2) –

output channels are not interleaved

`GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN` (4) –

input channels are explicitly unpositioned

`GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT` (8) –

output channels are explicitly unpositioned

### GstAudio.AudioChannelMixerFlags

Flags passed to gst_audio_channel_mixer_new (not introspectable)

##### Members

`GstAudio.AudioChannelMixerFlags.NONE` (0) –

no flag

`GstAudio.AudioChannelMixerFlags.NON_INTERLEAVED_IN` (1) –

input channels are not interleaved

`GstAudio.AudioChannelMixerFlags.NON_INTERLEAVED_OUT` (2) –

output channels are not interleaved

`GstAudio.AudioChannelMixerFlags.UNPOSITIONED_IN` (4) –

input channels are explicitly unpositioned

`GstAudio.AudioChannelMixerFlags.UNPOSITIONED_OUT` (8) –

output channels are explicitly unpositioned

### GstAudio.AudioChannelMixerFlags

Flags passed to gst_audio_channel_mixer_new (not introspectable)

##### Members

`GstAudio.AudioChannelMixerFlags.NONE` (0) –

no flag

`GstAudio.AudioChannelMixerFlags.NON_INTERLEAVED_IN` (1) –

input channels are not interleaved

`GstAudio.AudioChannelMixerFlags.NON_INTERLEAVED_OUT` (2) –

output channels are not interleaved

`GstAudio.AudioChannelMixerFlags.UNPOSITIONED_IN` (4) –

input channels are explicitly unpositioned

`GstAudio.AudioChannelMixerFlags.UNPOSITIONED_OUT` (8) –

output channels are explicitly unpositioned

The results of the search are