123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /* GStreamer
- * Copyright (C) <2011> Wim Taymans <wim.taymans@gmail.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
- #ifndef __GST_AUDIO_META_H__
- #define __GST_AUDIO_META_H__
- #include <gst/audio/audio.h>
- G_BEGIN_DECLS
- #define GST_AUDIO_DOWNMIX_META_API_TYPE (gst_audio_downmix_meta_api_get_type())
- #define GST_AUDIO_DOWNMIX_META_INFO (gst_audio_downmix_meta_get_info())
- typedef struct _GstAudioDownmixMeta GstAudioDownmixMeta;
- /**
- * GstAudioDownmixMeta:
- * @meta: parent #GstMeta
- * @from_position: the channel positions of the source
- * @to_position: the channel positions of the destination
- * @from_channels: the number of channels of the source
- * @to_channels: the number of channels of the destination
- * @matrix: the matrix coefficients.
- *
- * 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.
- */
- struct _GstAudioDownmixMeta {
- GstMeta meta;
- GstAudioChannelPosition *from_position;
- GstAudioChannelPosition *to_position;
- gint from_channels, to_channels;
- gfloat **matrix;
- };
- GType gst_audio_downmix_meta_api_get_type (void);
- const GstMetaInfo * gst_audio_downmix_meta_get_info (void);
- #define gst_buffer_get_audio_downmix_meta(b) ((GstAudioDownmixMeta*)gst_buffer_get_meta((b), GST_AUDIO_DOWNMIX_META_API_TYPE))
- GstAudioDownmixMeta * gst_buffer_get_audio_downmix_meta_for_channels (GstBuffer *buffer,
- const GstAudioChannelPosition *to_position,
- gint to_channels);
- 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_AUDIO_CLIPPING_META_API_TYPE (gst_audio_clipping_meta_api_get_type())
- #define GST_AUDIO_CLIPPING_META_INFO (gst_audio_clipping_meta_get_info())
- typedef struct _GstAudioClippingMeta GstAudioClippingMeta;
- /**
- * GstAudioClippingMeta:
- * @meta: parent #GstMeta
- * @format: GstFormat of @start and @stop, GST_FORMAT_DEFAULT is samples
- * @start: Amount of audio to clip from start of buffer
- * @end: Amount of to clip from end of buffer
- *
- * Extra buffer metadata describing how much audio has to be clipped from
- * the start or end of a buffer. This is used for compressed formats, where
- * the first frame usually has some additional samples due to encoder and
- * decoder delays, and the last frame usually has some additional samples to
- * be able to fill the complete last frame.
- *
- * This is used to ensure that decoded data in the end has the same amount of
- * samples, and multiply decoded streams can be gaplessly concatenated.
- *
- * Note: If clipping of the start is done by adjusting the segment, this meta
- * has to be dropped from buffers as otherwise clipping could happen twice.
- *
- * Since: 1.8
- */
- struct _GstAudioClippingMeta {
- GstMeta meta;
- GstFormat format;
- guint64 start;
- guint64 end;
- };
- GType gst_audio_clipping_meta_api_get_type (void);
- const GstMetaInfo * gst_audio_clipping_meta_get_info (void);
- #define gst_buffer_get_audio_clipping_meta(b) ((GstAudioClippingMeta*)gst_buffer_get_meta((b), GST_AUDIO_CLIPPING_META_API_TYPE))
- GstAudioClippingMeta * gst_buffer_add_audio_clipping_meta (GstBuffer *buffer,
- GstFormat format,
- guint64 start,
- guint64 end);
- G_END_DECLS
- #endif /* __GST_AUDIO_META_H__ */
|