xine-lib 1.2.13-20230125hg15249
|
#include <pthread.h>
#include <stdlib.h>
#include <inttypes.h>
#include <stdio.h>
#include <string.h>
#include <xine/attributes.h>
#include <xine/xineutils.h>
#include <xine/pool.h>
#include <xine/list.h>
#include <xine/ring_buffer.h>
Data Structures | |
struct | xine_ring_buffer_chunk_s |
struct | xine_ring_buffer_s |
Macros | |
#define | RING_BUFFER_EXTRA_BUFFER_SIZE (1024 * 8) |
Typedefs | |
typedef struct xine_ring_buffer_chunk_s | xine_ring_buffer_chunk_t |
Functions | |
static void | xine_ring_buffer_chunk_create (void *object) |
static void | xine_ring_buffer_chunk_return (void *object) |
xine_ring_buffer_t * | xine_ring_buffer_new (size_t size) |
void | xine_ring_buffer_delete (xine_ring_buffer_t *ring_buffer) |
static void | xine_ring_buffer_display_stat (const 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 *buffer) |
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 *buffer) |
void | xine_ring_buffer_close (xine_ring_buffer_t *ring_buffer) |
#define RING_BUFFER_EXTRA_BUFFER_SIZE (1024 * 8) |
Referenced by xine_ring_buffer_new().
typedef struct xine_ring_buffer_chunk_s xine_ring_buffer_chunk_t |
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().
|
static |
References xine_ring_buffer_chunk_s::mem, NULL, and xine_ring_buffer_chunk_s::size.
Referenced by xine_ring_buffer_new().
|
static |
References xine_ring_buffer_chunk_s::mem, NULL, and xine_ring_buffer_chunk_s::size.
Referenced by xine_ring_buffer_new().
void xine_ring_buffer_close | ( | xine_ring_buffer_t * | ring_buffer | ) |
void xine_ring_buffer_delete | ( | xine_ring_buffer_t * | ring_buffer | ) |
|
static |
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_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().
void xine_ring_buffer_put | ( | xine_ring_buffer_t * | ring_buffer, |
void * | buffer ) |
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().
void xine_ring_buffer_release | ( | xine_ring_buffer_t * | ring_buffer, |
void * | buffer ) |
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().