MediaProcessors
Public Attributes | List of all members
fifo_ctx_s Struct Reference
Collaboration diagram for fifo_ctx_s:
Collaboration graph
[legend]

Public Attributes

volatile uint32_t flags
 
volatile int flag_exit
 
char fifo_file_name [FIFO_FILE_NAME_MAX_SIZE]
 
fifo_elem_ctx_dup_fxn_t * elem_ctx_dup
 
fifo_elem_ctx_release_fxn_t * elem_ctx_release
 
pthread_mutex_t api_mutex
 
int flag_api_mutex_initialized
 
pthread_cond_t buf_put_signal
 
int flag_buf_put_signal_initialized
 
pthread_cond_t buf_get_signal
 
int flag_buf_get_signal_initialized
 
volatile ssize_t slots_used_cnt
 
volatile ssize_t buf_level
 
volatile int input_idx
 
volatile int output_idx
 
size_t buf_slots_max
 
size_t chunk_size_max
 
fifo_elem_ctx_t buf []
 

Detailed Description

FIFO context structure.

Definition at line 87 of file fifo.c.

Member Data Documentation

pthread_mutex_t fifo_ctx_s::api_mutex

Module API mutex.

Definition at line 119 of file fifo.c.

fifo_elem_ctx_t fifo_ctx_s::buf[]

This is a circular buffer of pointers to chunks of data. Instead of managing a single pool of data, the buffer stores pointers to a fixed number of chunk objects, each one holding the reference and the size of each chunk.

Definition at line 172 of file fifo.c.

pthread_cond_t fifo_ctx_s::buf_get_signal

Signals each time a new chunk is consumed from the FIFO buffer.

Definition at line 129 of file fifo.c.

volatile ssize_t fifo_ctx_s::buf_level

Summation of all the size values of the chunk-buffers that compose the input buffer. Namely, is the overall input buffer level.

Definition at line 139 of file fifo.c.

pthread_cond_t fifo_ctx_s::buf_put_signal

Signals each time a new chunk enters the FIFO buffer.

Definition at line 124 of file fifo.c.

size_t fifo_ctx_s::buf_slots_max

Maximum number of element-slots (namely, maximum number of possible chunks) of the FIFO buffer.

Definition at line 157 of file fifo.c.

size_t fifo_ctx_s::chunk_size_max

Maximum permitted size of chunks [bytes]. In the case of shared memory, this value must be set greater than zero. Otherwise, setting this value to zero means no limit to input chunk size.

Definition at line 165 of file fifo.c.

fifo_elem_ctx_dup_fxn_t* fifo_ctx_s::elem_ctx_dup

Externally defined duplication function. Not applicable when using shared memory.

Definition at line 110 of file fifo.c.

fifo_elem_ctx_release_fxn_t* fifo_ctx_s::elem_ctx_release

Externally defined releasing functions. Not applicable when using shared memory.

Definition at line 115 of file fifo.c.

volatile int fifo_ctx_s::flag_exit

Exit flag: if set to non-zero value, FIFO module should finish/unblock transactions as fast as possible

Definition at line 98 of file fifo.c.

volatile uint32_t fifo_ctx_s::flags

Module flags:

  • FIFO_O_NONBLOCK
  • FIFO_PROCESS_SHARED

Definition at line 93 of file fifo.c.

volatile int fifo_ctx_s::input_idx

Receiver chunk-buffer index. Each time a chunk-buffer is filled with new data, we increment this index to point to the next empty receiving buffer.

Definition at line 145 of file fifo.c.

volatile int fifo_ctx_s::output_idx

Consumer chunk-buffer index. Each time a chunk-buffer is consumed (emptied) by a consuming process, we increment this index to point to the next full buffer ready to be processed.

Definition at line 152 of file fifo.c.

volatile ssize_t fifo_ctx_s::slots_used_cnt

Number of slots currently used.

Definition at line 134 of file fifo.c.


The documentation for this struct was generated from the following file: