FFmpeg
Functions
framepool.h File Reference
#include "libavutil/buffer.h"
#include "libavutil/frame.h"
#include "libavutil/internal.h"

Go to the source code of this file.

Functions

FFFramePoolff_frame_pool_video_init (AVBufferRef *(*alloc)(size_t size), int width, int height, enum AVPixelFormat format, int align)
 Allocate and initialize a video frame pool. More...
 
FFFramePoolff_frame_pool_audio_init (AVBufferRef *(*alloc)(size_t size), int channels, int samples, enum AVSampleFormat format, int align)
 Allocate and initialize an audio frame pool. More...
 
void ff_frame_pool_uninit (FFFramePool **pool)
 Deallocate the frame pool. More...
 
int ff_frame_pool_get_video_config (FFFramePool *pool, int *width, int *height, enum AVPixelFormat *format, int *align)
 Get the video frame pool configuration. More...
 
int ff_frame_pool_get_audio_config (FFFramePool *pool, int *channels, int *nb_samples, enum AVSampleFormat *format, int *align)
 Get the audio frame pool configuration. More...
 
AVFrameff_frame_pool_get (FFFramePool *pool)
 Allocate a new AVFrame, reussing old buffers from the pool when available. More...
 

Function Documentation

◆ ff_frame_pool_video_init()

FFFramePool* ff_frame_pool_video_init ( AVBufferRef *(*)(size_t size alloc,
int  width,
int  height,
enum AVPixelFormat  format,
int  align 
)

Allocate and initialize a video frame pool.

Parameters
alloca function that will be used to allocate new frame buffers when the pool is empty. May be NULL, then the default allocator will be used (av_buffer_alloc()).
widthwidth of each frame in this pool
heightheight of each frame in this pool
formatformat of each frame in this pool
alignbuffers alignement of each frame in this pool
Returns
newly created video frame pool on success, NULL on error.

Definition at line 52 of file framepool.c.

Referenced by ff_default_get_video_buffer2().

◆ ff_frame_pool_audio_init()

FFFramePool* ff_frame_pool_audio_init ( AVBufferRef *(*)(size_t size alloc,
int  channels,
int  samples,
enum AVSampleFormat  format,
int  align 
)

Allocate and initialize an audio frame pool.

Parameters
alloca function that will be used to allocate new frame buffers when the pool is empty. May be NULL, then the default allocator will be used (av_buffer_alloc()).
channelschannels of each frame in this pool
nb_samplesnumber of samples of each frame in this pool
formatformat of each frame in this pool
alignbuffers alignement of each frame in this pool
Returns
newly created audio frame pool on success, NULL on error.

Definition at line 115 of file framepool.c.

Referenced by ff_default_get_audio_buffer().

◆ ff_frame_pool_uninit()

void ff_frame_pool_uninit ( FFFramePool **  pool)

Deallocate the frame pool.

It is safe to call this function while some of the allocated frame are still in use.

Parameters
poolpointer to the frame pool to be freed. It will be set to NULL.

Definition at line 279 of file framepool.c.

Referenced by ff_default_get_audio_buffer(), ff_default_get_video_buffer2(), ff_frame_pool_audio_init(), ff_frame_pool_video_init(), and link_free().

◆ ff_frame_pool_get_video_config()

int ff_frame_pool_get_video_config ( FFFramePool pool,
int *  width,
int *  height,
enum AVPixelFormat format,
int *  align 
)

Get the video frame pool configuration.

Parameters
widthwidth of each frame in this pool
heightheight of each frame in this pool
formatformat of each frame in this pool
alignbuffers alignement of each frame in this pool
Returns
0 on success, a negative AVERROR otherwise.

Definition at line 153 of file framepool.c.

Referenced by ff_default_get_video_buffer2().

◆ ff_frame_pool_get_audio_config()

int ff_frame_pool_get_audio_config ( FFFramePool pool,
int *  channels,
int *  nb_samples,
enum AVSampleFormat format,
int *  align 
)

Get the audio frame pool configuration.

Parameters
channelschannels of each frame in this pool
nb_samplesnumber of samples of each frame in this pool
formatformat of each frame in this pool
alignbuffers alignement of each frame in this pool
Returns
0 on success, a negative AVERROR otherwise.

Definition at line 172 of file framepool.c.

Referenced by ff_default_get_audio_buffer().

◆ ff_frame_pool_get()

AVFrame* ff_frame_pool_get ( FFFramePool pool)

Allocate a new AVFrame, reussing old buffers from the pool when available.

This function may be called simultaneously from multiple threads.

Returns
a new AVFrame on success, NULL on error.

Definition at line 191 of file framepool.c.

Referenced by ff_default_get_audio_buffer(), and ff_default_get_video_buffer2().