Only wrapping AudioInfo and AudioFormatInfo and related for now. https://github.com/sdroege/gstreamer-rs/issues/4
9.8 KiB
Audio channel positions.
These are the channels defined in SMPTE 2036-2-2008 Table 1 for 22.2 audio systems with the Surround and Wide channels from DTS Coherent Acoustics (v.1.3.1) and 10.2 and 7.1 layouts. In the caps the actual channel layout is expressed with a channel count and a channel mask, which describes the existing channels. The positions in the bit mask correspond to the enum values. For negotiation it is allowed to have more bits set in the channel mask than the number of channels to specify the allowed channel positions but this is not allowed in negotiated caps. It is not allowed in any situation other than the one mentioned below to have less bits set in the channel mask than the number of channels.
AudioChannelPosition::Mono
can only be used with a single mono channel that
has no direction information and would be mixed into all directional channels.
This is expressed in caps by having a single channel and no channel mask.
AudioChannelPosition::None
can only be used if all channels have this position.
This is expressed in caps by having a channel mask with no bits set.
As another special case it is allowed to have two channels without a channel mask. This implicitely means that this is a stereo stream with a front left and front right channel.
used for position-less channels, e.g. from a sound card that records 1024 channels; mutually exclusive with any other channel position
Mono without direction; can only be used with 1 channel
invalid position
Front left
Front right
Front center
Low-frequency effects 1 (subwoofer)
Rear left
Rear right
Front left of center
Front right of center
Rear center
Low-frequency effects 2 (subwoofer)
Side left
Side right
Top front left
Top front right
Top front center
Top center
Top rear left
Top rear right
Top side right
Top rear right
Top rear center
Bottom front center
Bottom front left
Bottom front right
Wide left (between front left and side left)
Wide right (between front right and side right)
Surround left (between rear left and side left)
Surround right (between rear right and side right)
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
Information for an audio format.
Information describing audio properties. This information can be filled
in from GstCaps with AudioInfo::from_caps
.
Use the provided macros to access the info in this structure.
Allocate a new AudioInfo
that is also initialized with
AudioInfo::init
.
Returns
a new AudioInfo
. free with AudioInfo::free
.
Converts among various gst::Format
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.
src_fmt
gst::Format
of the src_val
src_val
value to convert
dest_fmt
gst::Format
of the dest_val
dest_val
pointer to destination value
Returns
TRUE if the conversion was successful.
Copy a GstAudioInfo structure.
Returns
a new AudioInfo
. free with gst_audio_info_free.
Free a GstAudioInfo structure previously allocated with AudioInfo::new
or AudioInfo::copy
.
Parse caps
and update self
.
caps
a gst::Caps
Returns
TRUE if caps
could be parsed
Initialize self
with default values.
Compares two AudioInfo
and returns whether they are equal or not
other
a AudioInfo
Returns
true
if self
and other
are equal, else false
.
Set the default info for the audio info of format
and rate
and channels
.
Note: This initializes self
first, no values are preserved.
format
the format
rate
the samplerate
channels
the number of channels
position
the channel positions
Convert the values of self
into a gst::Caps
.
Returns
the new gst::Caps
containing the
info of self
.
Layout of the audio samples for the different channels.
interleaved audio
non-interleaved audio