Gjsify LogoGjsify Logo

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, the planes array only contains one item, which is the pointer to the beginning of the buffer, and n_planes equals 1.

The different channels in planes are always in the GStreamer channel order.

record

Hierarchy

  • AudioBuffer

Index

Constructors

Properties

buffer: Gst.Buffer

the mapped buffer

field
info: AudioInfo

a #GstAudioInfo describing the audio properties of this buffer

field
n_planes: number

the number of planes available

field
n_samples: number

the size of the buffer in samples

field
planes: object

an array of n_planes pointers pointing to the start of each plane in the mapped buffer

field
name: string

Methods

  • unmap(): void
  • Clip the buffer to the given %GstSegment.

    After calling this function the caller does not own a reference to buffer anymore.

    Parameters

    • buffer: Gst.Buffer

      The buffer to clip.

    • segment: Gst.Segment

      Segment in %GST_FORMAT_TIME or %GST_FORMAT_DEFAULT to which the buffer should be clipped.

    • rate: number

      sample rate.

    • bpf: number

      size of one audio frame in bytes. This is the size of one sample * number of channels.

    Returns Gst.Buffer

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

    Parameters

    • info: AudioInfo

      the audio properties of the buffer

    • gstbuffer: Gst.Buffer

      the #GstBuffer to be mapped

    • flags: Gst.MapFlags

      the access mode for the memory

    Returns [boolean, AudioBuffer]

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

    Parameters

    • buffer: Gst.Buffer

      The buffer to truncate.

    • bpf: number

      size of one audio frame in bytes. This is the size of one sample * number of channels.

    • trim: number

      the number of samples to remove from the beginning of the buffer

    • samples: number

      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.

    Returns Gst.Buffer

Legend

  • Module
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Index signature
  • Type alias
  • Type alias with type parameter
  • Enumeration
  • Enumeration member
  • Property
  • Method
  • Interface
  • Interface with type parameter
  • Constructor
  • Property
  • Method
  • Index signature
  • Class
  • Class with type parameter
  • Constructor
  • Property
  • Method
  • Accessor
  • Index signature
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Protected property
  • Protected method
  • Protected accessor
  • Private property
  • Private method
  • Private accessor
  • Static property
  • Static method