:right-sidebar: True BufferList =================================================================== .. currentmodule:: gi.repository.Gst .. class:: BufferList(**kwargs) :no-contents-entry: Buffer lists are an object containing a list of buffers. Buffer lists are created with :func:`~gi.repository.Gst.BufferList.new` and filled with data using :func:`~gi.repository.Gst.BufferList.insert`. Buffer lists can be pushed on a srcpad with :func:`~gi.repository.Gst.Pad.push_list`. This is interesting when multiple buffers need to be pushed in one go because it can reduce the amount of overhead for pushing each buffer individually. Constructors ------------ .. rst-class:: interim-class .. class:: BufferList :no-index: .. classmethod:: new() -> ~gi.repository.Gst.BufferList Creates a new, empty :obj:`~gi.repository.Gst.BufferList`\. .. classmethod:: new_sized(size: int) -> ~gi.repository.Gst.BufferList Creates a new, empty :obj:`~gi.repository.Gst.BufferList`\. The list will have ``size`` space preallocated so that memory reallocations can be avoided. :param size: an initial reserved size Methods ------- .. rst-class:: interim-class .. class:: BufferList :no-index: .. method:: calculate_size() -> int Calculates the size of the data contained in ``list`` by adding the size of all buffers. .. versionadded:: 1.14 .. method:: foreach(func: ~typing.Callable[[int, ~typing.Any], ~typing.Tuple[bool, ~gi.repository.Gst.Buffer | None]], user_data: ~typing.Any = None) -> bool Calls ``func`` with ``data`` for each buffer in ``list``\. ``func`` can modify the passed buffer pointer or its contents. The return value of ``func`` defines if this function returns or if the remaining buffers in the list should be skipped. :param func: a :obj:`~gi.repository.Gst.BufferListFunc` to call :param user_data: user data passed to ``func`` .. method:: get(idx: int) -> ~gi.repository.Gst.Buffer | None Gets the buffer at ``idx``\. You must make sure that ``idx`` does not exceed the number of buffers available. :param idx: the index .. method:: get_writable(idx: int) -> ~gi.repository.Gst.Buffer | None Gets the buffer at ``idx``\, ensuring it is a writable buffer. You must make sure that ``idx`` does not exceed the number of buffers available. .. versionadded:: 1.14 :param idx: the index .. method:: insert(idx: int, buffer: ~gi.repository.Gst.Buffer) -> None Inserts ``buffer`` at ``idx`` in ``list``\. Other buffers are moved to make room for this new buffer. A -1 value for ``idx`` will append the buffer at the end. :param idx: the index :param buffer: a :obj:`~gi.repository.Gst.Buffer` .. method:: length() -> int Returns the number of buffers in ``list``\. .. method:: remove(idx: int, length: int) -> None Removes ``length`` buffers starting from ``idx`` in ``list``\. The following buffers are moved to close the gap. :param idx: the index :param length: the amount to remove