## gstaudiometa gstaudiometa — Buffer metadata for audio downmix matrix handling |

## Functions

GstAudioDownmixMeta * | gst_buffer_add_audio_downmix_meta ()
#define | gst_buffer_get_audio_downmix_meta()
GstAudioDownmixMeta * | gst_buffer_get_audio_downmix_meta_for_channels ()

## Types and Values

struct | GstAudioDownmixMeta

## Includes

    #include <gst/audio/gstaudiometa.h>

## Description

GstAudioDownmixMeta defines an audio downmix matrix to be send along with audio buffers. These functions in this module help to create and attach the meta as well as extracting it.

## Functions

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

#### Parameters

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.

#### Parameters

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

## Types and Values

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

#### Members

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