22 #ifndef AVFILTER_FRAMEQUEUE_H
23 #define AVFILTER_FRAMEQUEUE_H
This structure describes decoded (raw) audio or video data.
uint64_t total_frames_head
Total number of frames entered in the queue.
Queue of AVFrame pointers.
size_t allocated
Size of the array of buckets.
uint64_t total_samples_head
Total number of samples entered in the queue.
void ff_framequeue_skip_samples(FFFrameQueue *fq, size_t samples, AVRational time_base)
Skip samples from the first frame in the queue.
uint64_t total_frames_tail
Total number of frames dequeued from the queue.
reference-counted frame API
size_t tail
Tail of the queue.
void ff_framequeue_global_init(FFFrameQueueGlobal *fqg)
Init a global structure.
AVFrame * ff_framequeue_peek(FFFrameQueue *fq, size_t idx)
Access a frame in the queue, without removing it.
void ff_framequeue_init(FFFrameQueue *fq, FFFrameQueueGlobal *fqg)
Init a frame queue and attach it to a global structure.
uint64_t total_samples_tail
Total number of samples dequeued from the queue.
size_t queued
Number of currently queued frames.
Rational number (pair of numerator and denominator).
int samples_skipped
Indicate that samples are skipped.
static uint64_t ff_framequeue_queued_samples(const FFFrameQueue *fq)
Get the number of queued samples.
FFFrameBucket * queue
Array of allocated buckets, used as a circular buffer.
static size_t ff_framequeue_queued_frames(const FFFrameQueue *fq)
Get the number of queued frames.
void ff_framequeue_free(FFFrameQueue *fq)
Free the queue and all queued frames.
static void ff_framequeue_update_peeked(FFFrameQueue *fq, size_t idx)
Update the statistics after a frame accessed using ff_framequeue_peek() was modified.
FFFrameBucket first_bucket
Pre-allocated bucket for queues of size 1.
int ff_framequeue_add(FFFrameQueue *fq, AVFrame *frame)
Add a frame.
AVFrame * ff_framequeue_take(FFFrameQueue *fq)
Take the first frame in the queue.
Structure to hold global options and statistics for frame queues.
FFFrameQueue: simple AVFrame queue API.