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