FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
bufferqueue.h File Reference
#include "avfilter.h"
#include "libavutil/avassert.h"

Go to the source code of this file.

Data Structures

struct  FFBufQueue
 Structure holding the queue. More...
 

Macros

#define FF_BUFQUEUE_SIZE   32
 FFBufQueue: simple AVFilterBufferRef queue API.
 
#define BUCKET(i)   queue->queue[(queue->head + (i)) % FF_BUFQUEUE_SIZE]
 

Functions

static void ff_bufqueue_add (void *log, struct FFBufQueue *queue, AVFilterBufferRef *buf)
 Add a buffer to the queue.
 
static AVFilterBufferRefff_bufqueue_peek (struct FFBufQueue *queue, unsigned index)
 Get a buffer from the queue without altering it.
 
static AVFilterBufferRefff_bufqueue_get (struct FFBufQueue *queue)
 Get the first buffer from the queue and remove it.
 
static void ff_bufqueue_discard_all (struct FFBufQueue *queue)
 Unref and remove all buffers from the queue.
 

Macro Definition Documentation

#define FF_BUFQUEUE_SIZE   32

FFBufQueue: simple AVFilterBufferRef queue API.

Note: this API is not thread-safe. Concurrent access to the same queue must be protected by a mutex or any synchronization mechanism. Maximum size of the queue.

This value can be overridden by definying it before including this header. Powers of 2 are recommended.

Definition at line 40 of file bufferqueue.h.

Referenced by ff_bufqueue_add(), and ff_bufqueue_get().

#define BUCKET (   i)    queue->queue[(queue->head + (i)) % FF_BUFQUEUE_SIZE]

Definition at line 55 of file bufferqueue.h.

Referenced by ff_bufqueue_add(), and ff_bufqueue_peek().

Function Documentation

static void ff_bufqueue_add ( void log,
struct FFBufQueue queue,
AVFilterBufferRef buf 
)
inlinestatic

Add a buffer to the queue.

If the queue is already full, then the current last buffer is dropped (and unrefed) with a warning before adding the new buffer.

Definition at line 63 of file bufferqueue.h.

Referenced by filter_frame(), filter_frame_main(), filter_frame_over(), and process_frame().

static AVFilterBufferRef* ff_bufqueue_peek ( struct FFBufQueue queue,
unsigned  index 
)
inlinestatic

Get a buffer from the queue without altering it.

Buffer with index 0 is the first buffer in the queue. Return NULL if the queue has not enough buffers.

Definition at line 79 of file bufferqueue.h.

Referenced by filter_frame(), request_frame(), try_filter_frame(), and try_filter_next_frame().

static AVFilterBufferRef* ff_bufqueue_get ( struct FFBufQueue queue)
inlinestatic

Get the first buffer from the queue and remove it.

Do not use on an empty queue.

Definition at line 90 of file bufferqueue.h.

Referenced by ff_bufqueue_discard_all(), filter_frame(), flush_segment(), try_filter_frame(), and try_filter_next_frame().

static void ff_bufqueue_discard_all ( struct FFBufQueue queue)
inlinestatic

Unref and remove all buffers from the queue.

Definition at line 103 of file bufferqueue.h.

Referenced by uninit().