mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
committed by
Ryan Foster
parent
53ad05db9f
commit
be66c8a701
@@ -1,161 +0,0 @@
|
||||
Circular Buffers
|
||||
================
|
||||
|
||||
A circular buffer that will automatically increase in size as necessary
|
||||
as data is pushed to the front or back.
|
||||
|
||||
.. deprecated:: 30.1
|
||||
Replaced by :doc:`reference-libobs-util-deque`
|
||||
|
||||
.. code:: cpp
|
||||
|
||||
#include <util/circlebuf.h>
|
||||
|
||||
|
||||
Circular Buffer Structure (struct circlebuf)
|
||||
--------------------------------------------
|
||||
|
||||
.. struct:: circlebuf
|
||||
.. member:: void *circlebuf.data
|
||||
.. member:: size_t circlebuf.size
|
||||
.. member:: size_t circlebuf.start_pos
|
||||
.. member:: size_t circlebuf.end_pos
|
||||
.. member:: size_t circlebuf.capacity
|
||||
|
||||
|
||||
Circular Buffer Inline Functions
|
||||
--------------------------------
|
||||
|
||||
.. function:: void circlebuf_init(struct circlebuf *cb)
|
||||
|
||||
Initializes a circular buffer (just zeroes out the entire structure).
|
||||
|
||||
:param cb: The circular buffer
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_free(struct circlebuf *cb)
|
||||
|
||||
Frees a circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_reserve(struct circlebuf *cb, size_t capacity)
|
||||
|
||||
Reserves a specific amount of buffer space to ensure minimum
|
||||
upsizing.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param capacity: The new capacity, in bytes
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_upsize(struct circlebuf *cb, size_t size)
|
||||
|
||||
Sets the current active (not just reserved) size. Any new data is
|
||||
zeroed.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param size: The new size, in bytes
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_place(struct circlebuf *cb, size_t position, const void *data, size_t size)
|
||||
|
||||
Places data at a specific positional index (relative to the starting
|
||||
point) within the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param position: Positional index relative to starting point
|
||||
:param data: Data to insert
|
||||
:param size: Size of data to insert
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_push_back(struct circlebuf *cb, const void *data, size_t size)
|
||||
|
||||
Pushes data to the end of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param data: Data
|
||||
:param size: Size of data
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_push_front(struct circlebuf *cb, const void *data, size_t size)
|
||||
|
||||
Pushes data to the front of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param data: Data
|
||||
:param size: Size of data
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_push_back_zero(struct circlebuf *cb, size_t size)
|
||||
|
||||
Pushes zeroed data to the end of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param size: Size
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_push_front_zero(struct circlebuf *cb, size_t size)
|
||||
|
||||
Pushes zeroed data to the front of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param size: Size
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_peek_front(struct circlebuf *cb, void *data, size_t size)
|
||||
|
||||
Peeks data at the front of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param data: Buffer to store data in
|
||||
:param size: Size of data to retrieve
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_peek_back(struct circlebuf *cb, void *data, size_t size)
|
||||
|
||||
Peeks data at the back of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param data: Buffer to store data in
|
||||
:param size: Size of data to retrieve
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_pop_front(struct circlebuf *cb, void *data, size_t size)
|
||||
|
||||
Pops data from the front of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param data: Buffer to store data in, or *NULL*
|
||||
:param size: Size of data to retrieve
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void circlebuf_pop_back(struct circlebuf *cb, void *data, size_t size)
|
||||
|
||||
Pops data from the back of the circular buffer.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param data: Buffer to store data in, or *NULL*
|
||||
:param size: Size of data to retrieve
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void *circlebuf_data(struct circlebuf *cb, size_t idx)
|
||||
|
||||
Gets a direct pointer to data at a specific positional index within
|
||||
the circular buffer, relative to the starting point.
|
||||
|
||||
:param cb: The circular buffer
|
||||
:param idx: Byte index relative to the starting point
|
||||
@@ -6,7 +6,6 @@ Platform/Utility API Reference (libobs/util)
|
||||
|
||||
reference-libobs-util-base
|
||||
reference-libobs-util-bmem
|
||||
reference-libobs-util-circlebuf
|
||||
reference-libobs-util-config-file
|
||||
reference-libobs-util-darray
|
||||
reference-libobs-util-deque
|
||||
|
||||
Reference in New Issue
Block a user