the mapped buffer
a #GstAudioInfo describing the audio properties of this buffer
the number of planes available
the size of the buffer in samples
an array of n_planes
pointers pointing to the start of each
plane in the mapped buffer
Unmaps an audio buffer that was previously mapped with gst_audio_buffer_map().
Clip the buffer to the given %GstSegment.
After calling this function the caller does not own a reference to
buffer
anymore.
The buffer to clip.
Segment in %GST_FORMAT_TIME or %GST_FORMAT_DEFAULT to which the buffer should be clipped.
sample rate.
size of one audio frame in bytes. This is the size of one sample * number of channels.
Maps an audio gstbuffer
so that it can be read or written and stores the
result of the map operation in buffer
.
This is especially useful when the gstbuffer
is in non-interleaved (planar)
layout, in which case this function will use the information in the
gstbuffer'
s attached #GstAudioMeta in order to map each channel in a
separate "plane" in #GstAudioBuffer. If a #GstAudioMeta is not attached
on the gstbuffer,
then it must be in interleaved layout.
If a #GstAudioMeta is attached, then the #GstAudioInfo on the meta is checked
against info
. Normally, they should be equal, but in case they are not,
a g_critical will be printed and the #GstAudioInfo from the meta will be
used.
In non-interleaved buffers, it is possible to have each channel on a separate #GstMemory. In this case, each memory will be mapped separately to avoid copying their contents in a larger memory area. Do note though that it is not supported to have a single channel spanning over two or more different #GstMemory objects. Although the map operation will likely succeed in this case, it will be highly sub-optimal and it is recommended to merge all the memories in the buffer before calling this function.
Note: The actual #GstBuffer is not ref'ed, but it is required to stay valid as long as it's mapped.
the audio properties of the buffer
the #GstBuffer to be mapped
the access mode for the memory
Reorders buffer
from the channel positions from
to the channel
positions to
. from
and to
must contain the same number of
positions and the same positions, only in a different order.
buffer
must be writable.
The buffer to reorder.
The %GstAudioFormat of the buffer.
The channel positions in the buffer.
The channel positions to convert to.
Truncate the buffer to finally have samples
number of samples, removing
the necessary amount of samples from the end and trim
number of samples
from the beginning.
This function does not know the audio rate, therefore the caller is responsible for re-setting the correct timestamp and duration to the buffer. However, timestamp will be preserved if trim == 0, and duration will also be preserved if there is no trimming to be done. Offset and offset end will be preserved / updated.
After calling this function the caller does not own a reference to
buffer
anymore.
The buffer to truncate.
size of one audio frame in bytes. This is the size of one sample * number of channels.
the number of samples to remove from the beginning of the buffer
the final number of samples that should exist in this buffer or -1 to use all the remaining samples if you are only removing samples from the beginning.
A structure containing the result of an audio buffer map operation, which is executed with gst_audio_buffer_map(). For non-interleaved (planar) buffers, the beginning of each channel in the buffer has its own pointer in the
planes
array. For interleaved buffers, theplanes
array only contains one item, which is the pointer to the beginning of the buffer, andn_planes
equals 1.The different channels in
planes
are always in the GStreamer channel order.