FFmpeg
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   64
  FFBufQueue: simple AVFrame queue API. More...
 
#define  BUCKET(i)   queue->queue[(queue->head + (i)) % FF_BUFQUEUE_SIZE]
 

Functions

static int  ff_bufqueue_is_full (struct FFBufQueue *queue)
  Test if a buffer queue is full. More...
 
static void  ff_bufqueue_add (void *log, struct FFBufQueue *queue, AVFrame *buf)
  Add a buffer to the queue. More...
 
static AVFrameff_bufqueue_peek (struct FFBufQueue *queue, unsigned index)
  Get a buffer from the queue without altering it. More...
 
static AVFrameff_bufqueue_get (struct FFBufQueue *queue)
  Get the first buffer from the queue and remove it. More...
 
static void  ff_bufqueue_discard_all (struct FFBufQueue *queue)
  Unref and remove all buffers from the queue. More...
 

Macro Definition Documentation

FF_BUFQUEUE_SIZE

#define FF_BUFQUEUE_SIZE   64

FFBufQueue: simple AVFrame 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.

BUCKET

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

Definition at line 55 of file bufferqueue.h.

Function Documentation

ff_bufqueue_is_full()

static int ff_bufqueue_is_full ( struct FFBufQueuequeue )
inlinestatic

Test if a buffer queue is full.

Definition at line 60 of file bufferqueue.h.

Referenced by ff_bufqueue_add(), and ffat_encode().

ff_bufqueue_add()

static void ff_bufqueue_add ( void *  log,
struct FFBufQueuequeue,
AVFramebuf 
)
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 71 of file bufferqueue.h.

Referenced by ffat_encode(), ffat_encode_callback(), filter_frame(), opus_encode_frame(), opus_encode_init(), and vorbis_encode_frame().

ff_bufqueue_peek()

static AVFrame* ff_bufqueue_peek ( struct FFBufQueuequeue,
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 87 of file bufferqueue.h.

Referenced by activate(), celt_frame_setup_input(), filter_frame(), opus_encode_init(), request_frame(), and step_collect_psy_metrics().

ff_bufqueue_get()

static AVFrame* ff_bufqueue_get ( struct FFBufQueuequeue )
inlinestatic

Get the first buffer from the queue and remove it.

Do not use on an empty queue.

Definition at line 98 of file bufferqueue.h.

Referenced by celt_frame_setup_input(), ff_bufqueue_discard_all(), ffat_encode_callback(), filter_frame(), flush(), and move_audio().

ff_bufqueue_discard_all()

static void ff_bufqueue_discard_all ( struct FFBufQueuequeue )
inlinestatic

Unref and remove all buffers from the queue.

Definition at line 111 of file bufferqueue.h.

Referenced by ffat_close_encoder(), ffat_encode(), ffat_encode_flush(), opus_encode_end(), uninit(), and vorbis_encode_close().


Generated on Wed Aug 24 2022 21:38:45 for FFmpeg by   doxygen 1.8.17

AltStyle によって変換されたページ (->オリジナル) /