xine-lib: xine-lib-1.2.13/include/xine/ring_buffer.h File Reference

xine-lib 1.2.13-20230125hg15249

Typedefs | Functions
ring_buffer.h File Reference
`#include <stddef.h>`
`#include <xine/attributes.h>`

Go to the source code of this file.

## Typedefs
typedef struct xine_ring_buffer_s | xine_ring_buffer_t

## Functions
xine_ring_buffer_t * | xine_ring_buffer_new (size_t size)
void | xine_ring_buffer_delete (xine_ring_buffer_t *ring_buffer)
void * | xine_ring_buffer_alloc (xine_ring_buffer_t *ring_buffer, size_t size)
void | xine_ring_buffer_put (xine_ring_buffer_t *ring_buffer, void *chunk)
void * | xine_ring_buffer_get (xine_ring_buffer_t *ring_buffer, size_t size, size_t *rsize)
void | xine_ring_buffer_release (xine_ring_buffer_t *ring_buffer, void *chunk)
void | xine_ring_buffer_close (xine_ring_buffer_t *ring_buffer)

## Typedef Documentation

## ◆ xine_ring_buffer_t

typedef struct xine_ring_buffer_s xine_ring_buffer_t

## Function Documentation

## ◆ xine_ring_buffer_alloc()

void * xine_ring_buffer_alloc | ( | xine_ring_buffer_t * | ring_buffer,
|  | size_t | size )

References _x_assert, xine_ring_buffer_s::alloc_list, xine_ring_buffer_s::buffer, xine_ring_buffer_s::buffer_end, xine_ring_buffer_s::buffer_size, xine_ring_buffer_s::chunk_pool, xine_ring_buffer_s::free_size, xine_ring_buffer_s::free_size_cond, xine_ring_buffer_s::free_size_needed, xine_ring_buffer_s::head_alloc, xine_ring_buffer_s::lock, xine_ring_buffer_chunk_s::mem, xine_ring_buffer_chunk_s::size, xine_list_push_back(), xine_pool_get(), and xine_ring_buffer_display_stat().

## ◆ xine_ring_buffer_close()

void xine_ring_buffer_close | ( | xine_ring_buffer_t * | ring_buffer | ) |

References xine_ring_buffer_s::EOS, xine_ring_buffer_s::full_size_cond, xine_ring_buffer_s::full_size_needed, and xine_ring_buffer_s::lock.

## ◆ xine_ring_buffer_delete()

void xine_ring_buffer_delete | ( | xine_ring_buffer_t * | ring_buffer | ) |

References _x_freep(), xine_ring_buffer_s::alloc_list, xine_ring_buffer_s::buffer, xine_ring_buffer_s::chunk_pool, xine_ring_buffer_s::get_list, xine_ring_buffer_s::lock, xine_list_delete(), and xine_pool_delete().

## ◆ xine_ring_buffer_get()

void * xine_ring_buffer_get | ( | xine_ring_buffer_t * | ring_buffer,
|  | size_t | size,
|  | size_t * | rsize )

References _x_assert, xine_ring_buffer_s::buffer, xine_ring_buffer_s::buffer_end, xine_ring_buffer_s::chunk_pool, xine_ring_buffer_s::EOS, xine_ring_buffer_s::extra_buffer, xine_ring_buffer_s::extra_buffer_size, xine_ring_buffer_s::full_size, xine_ring_buffer_s::full_size_cond, xine_ring_buffer_s::full_size_needed, xine_ring_buffer_s::get_list, xine_ring_buffer_s::lock, xine_ring_buffer_chunk_s::mem, xine_ring_buffer_chunk_s::size, xine_ring_buffer_s::tail, xine_list_push_back(), and xine_pool_get().

## ◆ xine_ring_buffer_new()

xine_ring_buffer_t * xine_ring_buffer_new | ( | size_t | size | ) |

References xine_ring_buffer_s::alloc_list, xine_ring_buffer_s::buffer, xine_ring_buffer_s::buffer_end, xine_ring_buffer_s::buffer_size, xine_ring_buffer_s::chunk_pool, xine_ring_buffer_s::EOS, xine_ring_buffer_s::extra_buffer, xine_ring_buffer_s::extra_buffer_size, xine_ring_buffer_s::free_size, xine_ring_buffer_s::free_size_cond, xine_ring_buffer_s::free_size_needed, xine_ring_buffer_s::full_size, xine_ring_buffer_s::full_size_cond, xine_ring_buffer_s::full_size_needed, xine_ring_buffer_s::get_list, xine_ring_buffer_s::head, xine_ring_buffer_s::head_alloc, xine_ring_buffer_s::lock, NULL, RING_BUFFER_EXTRA_BUFFER_SIZE, xine_ring_buffer_s::tail, xine_ring_buffer_s::tail_release, xine_list_new(), xine_pool_new(), xine_ring_buffer_chunk_create(), and xine_ring_buffer_chunk_return().

## ◆ xine_ring_buffer_put()

void xine_ring_buffer_put | ( | xine_ring_buffer_t * | ring_buffer,
|  | void * | chunk )

References _x_assert, xine_ring_buffer_s::alloc_list, xine_ring_buffer_s::buffer, xine_ring_buffer_s::buffer_end, xine_ring_buffer_s::chunk_pool, xine_ring_buffer_s::full_size, xine_ring_buffer_s::full_size_cond, xine_ring_buffer_s::full_size_needed, xine_ring_buffer_s::head, xine_ring_buffer_s::lock, xine_ring_buffer_chunk_s::mem, NULL, xine_ring_buffer_chunk_s::size, xine_list_front(), xine_list_get_value(), xine_list_next(), xine_list_remove(), and xine_pool_put().

## ◆ xine_ring_buffer_release()

void xine_ring_buffer_release | ( | xine_ring_buffer_t * | ring_buffer,
|  | void * | chunk )

References _x_assert, xine_ring_buffer_s::buffer, xine_ring_buffer_s::buffer_end, xine_ring_buffer_s::buffer_size, xine_ring_buffer_s::chunk_pool, xine_ring_buffer_s::free_size, xine_ring_buffer_s::free_size_cond, xine_ring_buffer_s::free_size_needed, xine_ring_buffer_s::get_list, xine_ring_buffer_s::lock, xine_ring_buffer_chunk_s::mem, NULL, xine_ring_buffer_chunk_s::size, xine_ring_buffer_s::tail_release, xine_list_front(), xine_list_get_value(), xine_list_next(), xine_list_remove(), and xine_pool_put().