## gstaudiometa gstaudiometa |

## Synopsis

    #include <gst/audio/gstaudiometa.h>

    struct              GstAudioDownmixMeta;
    GstAudioDownmixMeta * gst_buffer_add_audio_downmix_meta (GstBuffer *buffer,
                                                             const GstAudioChannelPosition *from_position,
                                                             gint from_channels,
                                                             const GstAudioChannelPosition *to_position,
                                                             gint to_channels,
                                                             const gfloat **matrix);
    #define             gst_buffer_get_audio_downmix_meta   (b)
    GstAudioDownmixMeta * gst_buffer_get_audio_downmix_meta_for_channels
                                                            (GstBuffer *buffer,
                                                             const GstAudioChannelPosition *to_position,
                                                             gint to_channels);

## Description

## Details

### struct GstAudioDownmixMeta

    struct GstAudioDownmixMeta {
      GstMeta      meta;

      GstAudioChannelPosition *from_position;
      GstAudioChannelPosition *to_position;
      gint        from_channels, to_channels;
      gfloat       **matrix;
    };

Extra buffer metadata describing audio downmixing matrix. This metadata is attached to audio buffers and contains a matrix to downmix the buffer number of channels to `channels`.

`matrix` is an two-dimensional array of `to_channels` times `from_channels` coefficients, i.e. the i-th output channels is constructed by multiplicating the input channels with the coefficients in `matrix`[i] and taking the sum of the results.

GstMeta `meta`; | parent GstMeta
GstAudioChannelPosition *`from_position`; | the channel positions of the source
GstAudioChannelPosition *`to_position`; | the channel positions of the destination
gint `from_channels`; | the number of channels of the source
gint `to_channels`; | the number of channels of the destination
gfloat **`matrix`; | the matrix coefficients.

### gst_buffer_add_audio_downmix_meta ()

    GstAudioDownmixMeta * gst_buffer_add_audio_downmix_meta (GstBuffer *buffer,
                                                             const GstAudioChannelPosition *from_position,
                                                             gint from_channels,
                                                             const GstAudioChannelPosition *to_position,
                                                             gint to_channels,
                                                             const gfloat **matrix);

Attaches GstAudioDownmixMeta metadata to `buffer` with the given parameters.

`matrix` is an two-dimensional array of `to_channels` times `from_channels` coefficients, i.e. the i-th output channels is constructed by multiplicating the input channels with the coefficients in `matrix`[i] and taking the sum of the results.

`buffer` : | a GstBuffer
`from_position` : | the channel positions of the source. [array length=from_channels]
`from_channels` : | The number of channels of the source
`to_position` : | the channel positions of the destination. [array length=to_channels]
`to_channels` : | The number of channels of the destination
`matrix` : | The matrix coefficients.
Returns : | the GstAudioDownmixMeta on `buffer`.

### gst_buffer_get_audio_downmix_meta()

    #define gst_buffer_get_audio_downmix_meta(b) ((GstAudioDownmixMeta*)gst_buffer_get_meta((b),GST_AUDIO_DOWNMIX_META_INFO))

### gst_buffer_get_audio_downmix_meta_for_channels ()

    GstAudioDownmixMeta * gst_buffer_get_audio_downmix_meta_for_channels
                                                            (GstBuffer *buffer,
                                                             const GstAudioChannelPosition *to_position,
                                                             gint to_channels);

Find the GstAudioDownmixMeta on `buffer` for the given destination channel positions.

`buffer` : | a GstBuffer
`to_position` : | the channel positions of the destination. [array length=to_channels]
`to_channels` : | The number of channels of the destination
Returns : | the GstAudioDownmixMeta on `buffer`.