![]() |
UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
|


Go to the source code of this file.
Classes | |
| struct | ring_buf_deleter |
Typedefs | |
| typedef struct ring_buffer | ring_buffer_t |
| using | ring_buffer_uniq = std::unique_ptr<ring_buffer, ring_buf_deleter> |
Functions | |
| void | ring_advance_read_idx (struct ring_buffer *ring, int amount) |
| bool | ring_advance_write_idx (struct ring_buffer *ring, int amount) |
| void | ring_buffer_destroy (struct ring_buffer *ring) |
| void | ring_buffer_flush (struct ring_buffer *ring) |
| struct ring_buffer * | ring_buffer_init (int size) |
| int | ring_buffer_read (struct ring_buffer *ring, char *out, int max_len) |
| void | ring_buffer_write (struct ring_buffer *ring, const char *in, int len) |
| void | ring_fill (struct ring_buffer *ring, int c, int size) |
| int | ring_get_available_write_size (struct ring_buffer *ring) |
| int | ring_get_current_size (struct ring_buffer *ring) |
| int | ring_get_read_regions (struct ring_buffer *ring, int max_len, void **ptr1, int *size1, void **ptr2, int *size2) |
| int | ring_get_size (struct ring_buffer *ring) |
| int | ring_get_write_regions (struct ring_buffer *ring, int requested_len, void **ptr1, int *size1, void **ptr2, int *size2) |
Variables | |
| struct audio_buffer_api | ring_buffer_fns |
Definition in file ring_buffer.h.
| typedef struct ring_buffer ring_buffer_t |
Definition at line 58 of file ring_buffer.h.
| using ring_buffer_uniq = std::unique_ptr<ring_buffer, ring_buf_deleter> |
Definition at line 150 of file ring_buffer.h.
| void ring_advance_read_idx | ( | struct ring_buffer * | ring, |
| int | amount ) |
Marks memory as already read and free for writing. Use after reading using ring_get_read_regions(), or simply for discarding unwanted unread data.
| amount | amount in bytes to discard |
Definition at line 127 of file ring_buffer.cpp.
References ring_buffer::len, ring_buffer::start, and start().
Referenced by echo_cancel(), and ring_buffer_read().

| bool ring_advance_write_idx | ( | struct ring_buffer * | ring, |
| int | amount ) |
Marks written memory as ready for reading. Use after writing using ring_get_write_regions().
| amount | amount in bytes to discard |
Definition at line 192 of file ring_buffer.cpp.
References calculate_avail_write(), ring_buffer::end, ring_buffer::len, ring_buffer::start, and start().
Referenced by audio_export_raw_ch(), echo_cancel(), echo_play(), ring_buffer_write(), and ring_fill().

| void ring_buffer_destroy | ( | struct ring_buffer * | ring | ) |
Definition at line 77 of file ring_buffer.cpp.
Referenced by display_bluefish444_state::~display_bluefish444_state(), audio_buffer_destroy(), audio_cap_ca_done(), audio_cap_ca_init(), audio_cap_jack_done(), audio_cap_portaudio_done(), audio_export_destroy(), cleanup_common(), display_deltacast_reconfigure_audio(), display_dvs_reconfigure_audio(), ring_buf_deleter::operator()(), and vidcap_file_common_cleanup().
| void ring_buffer_flush | ( | struct ring_buffer * | ring | ) |
Flushes all data from ring buffer. Not thread safe - needs external synchronization to ensure that this is not called while the buffer is being read or written.
Definition at line 155 of file ring_buffer.cpp.
References ring_buffer::end, and ring_buffer::start.
Referenced by audio_reading_thread(), flush_captured_data(), reconfigure_echo(), and reset_import().
| struct ring_buffer * ring_buffer_init | ( | int | size | ) |
Definition at line 66 of file ring_buffer.cpp.
Referenced by audio_buffer_init(), audio_cap_ca_init(), audio_cap_jack_init(), audio_cap_pipewire_init(), audio_cap_portaudio_init(), audio_cap_sdl_mixer_init(), audio_play_ca_reconfigure(), audio_play_jack_reconfigure(), audio_play_pw_reconfigure(), configure(), configure_audio(), display_deltacast_reconfigure_audio(), display_dvs_reconfigure_audio(), echo_cancellation_init(), init_audio(), set_delay_size(), and vidcap_file_init().
| int ring_buffer_read | ( | struct ring_buffer * | ring, |
| char * | out, | ||
| int | max_len ) |
Definition at line 138 of file ring_buffer.cpp.
References ring_advance_read_idx(), and ring_get_read_regions().
Referenced by audio_buffer_read(), audio_cap_ca_read(), audio_cap_jack_read(), audio_cap_pipewire_read(), audio_cap_portaudio_read(), audio_cap_sdl_mixer_read(), audio_export_thread(), display_deltacast_putf(), display_dvs_run(), echo_cancel(), filter(), get_audio(), on_process(), display_bluefish444_state::playback_loop(), sdl_audio_callback(), and vidcap_import_grab().

| void ring_buffer_write | ( | struct ring_buffer * | ring, |
| const char * | in, | ||
| int | len ) |
Definition at line 207 of file ring_buffer.cpp.
References len, ring_advance_write_idx(), and ring_get_write_regions().
Referenced by audio_buffer_write(), audio_export_raw(), audio_play_pw_put_frame(), audio_reading_thread(), callback(), display_deltacast_put_audio_frame(), display_dvs_put_audio_frame(), display_sdl_put_audio_frame(), echo_cancel(), echo_play(), filter(), InputProc(), jack_process_callback(), on_process(), sdl_mixer_audio_callback(), and vidcap_file_write_audio().

| void ring_fill | ( | struct ring_buffer * | ring, |
| int | c, | ||
| int | size ) |
Definition at line 233 of file ring_buffer.cpp.
References ring_advance_write_idx(), and ring_get_write_regions().
Referenced by set_delay_size().

| int ring_get_available_write_size | ( | struct ring_buffer * | ring | ) |
Returns size available for writing
Definition at line 276 of file ring_buffer.cpp.
References calculate_avail_write(), ring_buffer::end, ring_buffer::len, ring_buffer::start, and start().
Referenced by audio_play_pw_put_frame(), echo_cancel(), and echo_play().

| int ring_get_current_size | ( | struct ring_buffer * | ring | ) |
Returns actual buffer usage
Definition at line 270 of file ring_buffer.cpp.
References calculate_avail_read(), ring_buffer::end, ring_buffer::len, ring_buffer::start, and start().
Referenced by audio_buffer_read(), audio_cap_jack_read(), audio_export_thread(), audio_reading_thread(), echo_cancel(), echo_play(), get_audio(), on_process(), vidcap_file_write_audio(), and vidcap_import_grab().

| int ring_get_read_regions | ( | struct ring_buffer * | ring, |
| int | max_len, | ||
| void ** | ptr1, | ||
| int * | size1, | ||
| void ** | ptr2, | ||
| int * | size2 ) |
Returns pointers to memory available for reading. After reading use ring_advance_read_idx() to mark the memory as free for writing.
| max_len | cap returned size to this value |
| ptr1 | pointer to the first region |
| size1 | size of available data in the first region |
| ptr2 | pointer to the second region |
| size2 | size of available data in the second region |
Definition at line 96 of file ring_buffer.cpp.
References calculate_avail_read(), ring_buffer::data, ring_buffer::end, ring_buffer::len, ring_buffer::start, and start().
Referenced by ring_buffer_read().

| int ring_get_size | ( | struct ring_buffer * | ring | ) |
Definition at line 229 of file ring_buffer.cpp.
References ring_buffer::len.
Referenced by audio_reading_thread(), and display_dvs_reconfigure_audio().
| int ring_get_write_regions | ( | struct ring_buffer * | ring, |
| int | requested_len, | ||
| void ** | ptr1, | ||
| int * | size1, | ||
| void ** | ptr2, | ||
| int * | size2 ) |
Returns pointers to memory available for writing. After writing use ring_advance_write_idx() to mark the memory as available for reading.
Does not check for overflow, returns regions of requested size even if buffer is full.
If the requested_len is longer than the whole buffer, returns 0.
| requested_len | amount you want to write |
| ptr1 | pointer to the first region |
| size1 | size of the first region |
| ptr2 | pointer to the second region |
| size2 | size of the second region |
Definition at line 164 of file ring_buffer.cpp.
References ring_buffer::data, ring_buffer::end, and ring_buffer::len.
Referenced by audio_export_raw_ch(), echo_cancel(), echo_play(), ring_buffer_write(), and ring_fill().
|
extern |
Definition at line 282 of file ring_buffer.cpp.
Referenced by audio_play_ca_reconfigure(), and audio_play_jack_reconfigure().