| Top |
| enum | GstAudioFlags |
| enum | GstAudioFormat |
| enum | GstAudioFormatFlags |
| struct | GstAudioFormatInfo |
| struct | GstAudioInfo |
| enum | GstAudioLayout |
| enum | GstAudioPackFlags |
| #define | GST_META_TAG_AUDIO_STR |
| #define | GST_META_TAG_AUDIO_CHANNELS_STR |
| #define | GST_AUDIO_RATE_RANGE |
| #define | GST_AUDIO_CHANNELS_RANGE |
| #define | GST_AUDIO_FORMATS_ALL |
| #define | GST_AUDIO_DEF_RATE |
| #define | GST_AUDIO_DEF_CHANNELS |
| #define | GST_AUDIO_DEF_FORMAT |
void (*GstAudioFormatPack) (const GstAudioFormatInfo *info,GstAudioPackFlags flags,const gpointer src,gpointer data,gint length);
Packs length
samples from src
to the data array in format info
.
The samples from source have each channel interleaved
and will be packed into data
.
void (*GstAudioFormatUnpack) (const GstAudioFormatInfo *info,GstAudioPackFlags flags,gpointer dest,const gpointer data,gint length);
Unpacks length
samples from the given data of format info
.
The samples will be unpacked into dest
which each channel
interleaved. dest
should at least be big enough to hold length
*
channels * size(unpack_format) bytes.
void
gst_audio_info_init (GstAudioInfo *info);
Initialize info
with default values.
gboolean gst_audio_info_from_caps (GstAudioInfo *info,const GstCaps *caps);
Parse caps
and update info
.
GstCaps *
gst_audio_info_to_caps (const GstAudioInfo *info);
Convert the values of info
into a GstCaps.
gboolean gst_audio_info_convert (const GstAudioInfo *info,GstFormat src_fmt,gint64 src_val,GstFormat dest_fmt,gint64 *dest_val);
Converts among various GstFormat types. This function handles GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For raw audio, GST_FORMAT_DEFAULT corresponds to audio frames. This function can be used to handle pad queries of the type GST_QUERY_CONVERT.
const GstAudioFormatInfo *
gst_audio_format_get_info (GstAudioFormat format);
Get the GstAudioFormatInfo for format
GstAudioInfo *
gst_audio_info_copy (const GstAudioInfo *info);
Copy a GstAudioInfo structure.
void
gst_audio_info_free (GstAudioInfo *info);
Free a GstAudioInfo structure previously allocated with gst_audio_info_new()
or gst_audio_info_copy().
GstAudioInfo *
gst_audio_info_new (void);
Allocate a new GstAudioInfo that is also initialized with
gst_audio_info_init().
void gst_audio_info_set_format (GstAudioInfo *info,GstAudioFormat format,gint rate,gint channels,const GstAudioChannelPosition *position);
Set the default info for the audio info of format
and rate
and channels
.
Note: This initializes info
first, no values are preserved.
gboolean gst_audio_info_is_equal (const GstAudioInfo *info,const GstAudioInfo *other);
Compares two GstAudioInfo and returns whether they are equal or not
Since: 1.2
GstAudioFormat gst_audio_format_build_integer (gboolean sign,gint endianness,gint width,gint depth);
Construct a GstAudioFormat with given parameters.
sign |
signed or unsigned format |
|
endianness |
G_LITTLE_ENDIAN or G_BIG_ENDIAN |
|
width |
amount of bits used per sample |
|
depth |
amount of used bits in |
a GstAudioFormat or GST_AUDIO_FORMAT_UNKNOWN when no audio format exists with the given parameters.
void gst_audio_format_fill_silence (const GstAudioFormatInfo *info,gpointer dest,gsize length);
Fill length
bytes in dest
with silence samples for info
.
GstAudioFormat
gst_audio_format_from_string (const gchar *format);
Convert the format
string to its GstAudioFormat.
the GstAudioFormat for format
or GST_AUDIO_FORMAT_UNKNOWN when the
string is not a known format.
#define GST_AUDIO_FORMAT_INFO_ENDIANNESS(info) ((info)->endianness)
#define GST_AUDIO_FORMAT_INFO_IS_FLOAT(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_FLOAT)
#define GST_AUDIO_FORMAT_INFO_IS_INTEGER(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_INTEGER)
#define GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN(info) ((info)->endianness == G_BIG_ENDIAN)
#define GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN(info) ((info)->endianness == G_LITTLE_ENDIAN)
#define GST_AUDIO_FORMAT_INFO_IS_SIGNED(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_SIGNED)
#define GST_AUDIO_INFO_ENDIANNESS(i) (GST_AUDIO_FORMAT_INFO_ENDIANNESS((i)->finfo))
#define GST_AUDIO_INFO_IS_BIG_ENDIAN(i) (GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN((i)->finfo))
#define GST_AUDIO_INFO_IS_FLOAT(i) (GST_AUDIO_FORMAT_INFO_IS_FLOAT((i)->finfo))
#define GST_AUDIO_INFO_IS_INTEGER(i) (GST_AUDIO_FORMAT_INFO_IS_INTEGER((i)->finfo))
#define GST_AUDIO_INFO_IS_LITTLE_ENDIAN(i) (GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN((i)->finfo))
#define GST_AUDIO_INFO_IS_SIGNED(i) (GST_AUDIO_FORMAT_INFO_IS_SIGNED((i)->finfo))
#define GST_AUDIO_INFO_IS_UNPOSITIONED(info) ((info)->flags & GST_AUDIO_FLAG_UNPOSITIONED)
#define GST_AUDIO_INFO_IS_VALID(i) ((i)->finfo != NULL && (i)->rate > 0 && (i)->channels > 0 && (i)->bpf > 0)
#define GST_FRAMES_TO_CLOCK_TIME(frames, rate)
Calculate clocktime from sample frames
and rate
.
#define GST_CLOCK_TIME_TO_FRAMES(clocktime, rate)
Calculate frames from clocktime
and sample rate
.
# define GST_AUDIO_NE(s) G_STRINGIFY(s)"LE"
Turns audio format string s
into the format string for native endianness.
# define GST_AUDIO_OE(s) G_STRINGIFY(s)"BE"
Turns audio format string s
into the format string for other endianness.
#define GST_AUDIO_CAPS_MAKE(format)
Generic caps string for audio, for use in pad templates.
GstBuffer * gst_audio_buffer_clip (GstBuffer *buffer,GstSegment *segment,gint rate,gint bpf);
Clip the buffer to the given GstSegment.
After calling this function the caller does not own a reference to
buffer
anymore.
buffer |
The buffer to clip. |
[transfer full] |
segment |
Segment in |
|
rate |
sample rate. |
|
bpf |
size of one audio frame in bytes. This is the size of one sample
|
Enum value describing the most common audio formats.
|
unknown or unset audio format |
||
|
encoded audio format |
||
|
8 bits in 8 bits, signed |
||
|
8 bits in 8 bits, unsigned |
||
|
16 bits in 16 bits, signed, little endian |
||
|
16 bits in 16 bits, signed, big endian |
||
|
16 bits in 16 bits, unsigned, little endian |
||
|
16 bits in 16 bits, unsigned, big endian |
||
|
24 bits in 32 bits, signed, little endian |
||
|
24 bits in 32 bits, signed, big endian |
||
|
24 bits in 32 bits, unsigned, little endian |
||
|
24 bits in 32 bits, unsigned, big endian |
||
|
32 bits in 32 bits, signed, little endian |
||
|
32 bits in 32 bits, signed, big endian |
||
|
32 bits in 32 bits, unsigned, little endian |
||
|
32 bits in 32 bits, unsigned, big endian |
||
|
24 bits in 24 bits, signed, little endian |
||
|
24 bits in 24 bits, signed, big endian |
||
|
24 bits in 24 bits, unsigned, little endian |
||
|
24 bits in 24 bits, unsigned, big endian |
||
|
20 bits in 24 bits, signed, little endian |
||
|
20 bits in 24 bits, signed, big endian |
||
|
20 bits in 24 bits, unsigned, little endian |
||
|
20 bits in 24 bits, unsigned, big endian |
||
|
18 bits in 24 bits, signed, little endian |
||
|
18 bits in 24 bits, signed, big endian |
||
|
18 bits in 24 bits, unsigned, little endian |
||
|
18 bits in 24 bits, unsigned, big endian |
||
|
32-bit floating point samples, little endian |
||
|
32-bit floating point samples, big endian |
||
|
64-bit floating point samples, little endian |
||
|
64-bit floating point samples, big endian |
||
|
16 bits in 16 bits, signed, native endianness |
||
|
16 bits in 16 bits, unsigned, native endianness |
||
|
24 bits in 32 bits, signed, native endianness |
||
|
24 bits in 32 bits, unsigned, native endianness |
||
|
32 bits in 32 bits, signed, native endianness |
||
|
32 bits in 32 bits, unsigned, native endianness |
||
|
24 bits in 24 bits, signed, native endianness |
||
|
24 bits in 24 bits, unsigned, native endianness |
||
|
20 bits in 24 bits, signed, native endianness |
||
|
20 bits in 24 bits, unsigned, native endianness |
||
|
18 bits in 24 bits, signed, native endianness |
||
|
18 bits in 24 bits, unsigned, native endianness |
||
|
32-bit floating point samples, native endianness |
||
|
64-bit floating point samples, native endianness |
The different audio flags that a format info can have.
|
integer samples |
||
|
float samples |
||
|
signed samples |
||
|
complex layout |
||
|
the format can be used in GstAudioFormatUnpack and GstAudioFormatPack functions |
struct GstAudioFormatInfo {
GstAudioFormat format;
const gchar *name;
const gchar *description;
GstAudioFormatFlags flags;
gint endianness;
gint width;
gint depth;
guint8 silence[8];
GstAudioFormat unpack_format;
GstAudioFormatUnpack unpack_func;
GstAudioFormatPack pack_func;
};
Information for an audio format.
GstAudioFormat |
||
string representation of the format |
||
user readable description of the format |
||
GstAudioFormatFlags |
||
the endianness |
||
amount of bits used for one sample |
||
amount of valid bits in |
||
|
||
GstAudioFormat |
the format of the unpacked samples |
|
GstAudioFormatUnpack |
function to unpack samples |
|
GstAudioFormatPack |
function to pack samples |
struct GstAudioInfo {
const GstAudioFormatInfo *finfo;
GstAudioFlags flags;
GstAudioLayout layout;
gint rate;
gint channels;
gint bpf;
GstAudioChannelPosition position[64];
};
Information describing audio properties. This information can be filled
in from GstCaps with gst_audio_info_from_caps().
Use the provided macros to access the info in this structure.
const GstAudioFormatInfo * |
the format info of the audio |
|
GstAudioFlags |
additional audio flags |
|
GstAudioLayout |
audio layout |
|
the audio sample rate |
||
the number of channels |
||
the number of bytes for one frame, this is the size of one
sample * |
||
GstAudioChannelPosition |
the positions for each channel |
#define GST_META_TAG_AUDIO_STR "audio"
This metadata is relevant for audio streams.
Since: 1.2
#define GST_META_TAG_AUDIO_CHANNELS_STR "channels"
This metadata stays relevant as long as channels are unchanged.
Since: 1.2
#define GST_AUDIO_RATE_RANGE "(int) [ 1, max ]"
Maximum range of allowed sample rates, for use in template caps strings.
#define GST_AUDIO_CHANNELS_RANGE "(int) [ 1, max ]"
Maximum range of allowed channels, for use in template caps strings.
#define GST_AUDIO_FORMATS_ALL
List of all audio formats, for use in template caps strings.
#define GST_AUDIO_DEF_CHANNELS 2
Standard number of channels used in consumer audio.