FFmpeg
Functions
frame.c File Reference
#include "channel_layout.h"
#include "avassert.h"
#include "buffer.h"
#include "common.h"
#include "cpu.h"
#include "dict.h"
#include "frame.h"
#include "imgutils.h"
#include "mem.h"
#include "samplefmt.h"
#include "hwcontext.h"

Go to the source code of this file.

Functions

static void get_frame_defaults (AVFrame *frame)
 
static void free_side_data (AVFrameSideData **ptr_sd)
 
static void wipe_side_data (AVFrameSideData ***sd, int *nb_side_data)
 
static void frame_side_data_wipe (AVFrame *frame)
 
void av_frame_side_data_free (AVFrameSideData ***sd, int *nb_sd)
 Free all side data entries and their contents, then zeroes out the values which the pointers are pointing to. More...
 
static void remove_side_data (AVFrameSideData ***sd, int *nb_side_data, const enum AVFrameSideDataType type)
 
static void remove_side_data_by_entry (AVFrameSideData ***sd, int *nb_sd, const AVFrameSideData *target)
 
AVFrameav_frame_alloc (void)
 Allocate an AVFrame and set its fields to default values. More...
 
void av_frame_free (AVFrame **frame)
 Free the frame and any dynamically allocated objects in it, e.g. More...
 
static int get_video_buffer (AVFrame *frame, int align)
 
static int get_audio_buffer (AVFrame *frame, int align)
 
int av_frame_get_buffer (AVFrame *frame, int align)
 Allocate new buffer(s) for audio or video data. More...
 
static int frame_copy_props (AVFrame *dst, const AVFrame *src, int force_copy)
 
int av_frame_ref (AVFrame *dst, const AVFrame *src)
 Set up a new reference to the data described by the source frame. More...
 
int av_frame_replace (AVFrame *dst, const AVFrame *src)
 Ensure the destination frame refers to the same data described by the source frame, either by creating a new reference for each AVBufferRef from src if they differ from those in dst, by allocating new buffers and copying data if src is not reference counted, or by unrefencing it if src is empty. More...
 
AVFrameav_frame_clone (const AVFrame *src)
 Create a new frame that references the same data as src. More...
 
void av_frame_unref (AVFrame *frame)
 Unreference all the buffers referenced by frame and reset the frame fields. More...
 
void av_frame_move_ref (AVFrame *dst, AVFrame *src)
 Move everything contained in src to dst and reset src. More...
 
int av_frame_is_writable (AVFrame *frame)
 Check if the frame data is writable. More...
 
int av_frame_make_writable (AVFrame *frame)
 Ensure that the frame data is writable, avoiding data copy if possible. More...
 
int av_frame_copy_props (AVFrame *dst, const AVFrame *src)
 Copy only "metadata" fields from src to dst. More...
 
AVBufferRefav_frame_get_plane_buffer (const AVFrame *frame, int plane)
 Get the buffer reference a given data plane is stored in. More...
 
static AVFrameSideDataadd_side_data_from_buf_ext (AVFrameSideData ***sd, int *nb_sd, enum AVFrameSideDataType type, AVBufferRef *buf, uint8_t *data, size_t size)
 
static AVFrameSideDataadd_side_data_from_buf (AVFrameSideData ***sd, int *nb_sd, enum AVFrameSideDataType type, AVBufferRef *buf)
 
AVFrameSideDataav_frame_new_side_data_from_buf (AVFrame *frame, enum AVFrameSideDataType type, AVBufferRef *buf)
 Add a new side data to a frame from an existing AVBufferRef. More...
 
AVFrameSideDataav_frame_new_side_data (AVFrame *frame, enum AVFrameSideDataType type, size_t size)
 Add a new side data to a frame. More...
 
AVFrameSideDataav_frame_side_data_new (AVFrameSideData ***sd, int *nb_sd, enum AVFrameSideDataType type, size_t size, unsigned int flags)
 Add new side data entry to an array. More...
 
int av_frame_side_data_clone (AVFrameSideData ***sd, int *nb_sd, const AVFrameSideData *src, unsigned int flags)
 Add a new side data entry to an array based on existing side data, taking a reference towards the contained AVBufferRef. More...
 
const AVFrameSideDataav_frame_side_data_get_c (const AVFrameSideData *const *sd, const int nb_sd, enum AVFrameSideDataType type)
 Get a side data entry of a specific type from an array. More...
 
AVFrameSideDataav_frame_get_side_data (const AVFrame *frame, enum AVFrameSideDataType type)
 
static int frame_copy_video (AVFrame *dst, const AVFrame *src)
 
static int frame_copy_audio (AVFrame *dst, const AVFrame *src)
 
int av_frame_copy (AVFrame *dst, const AVFrame *src)
 Copy the frame data from src to dst. More...
 
void av_frame_remove_side_data (AVFrame *frame, enum AVFrameSideDataType type)
 Remove and free all side data instances of the given type. More...
 
const char * av_frame_side_data_name (enum AVFrameSideDataType type)
 
static int calc_cropping_offsets (size_t offsets[4], const AVFrame *frame, const AVPixFmtDescriptor *desc)
 
int av_frame_apply_cropping (AVFrame *frame, int flags)
 Crop the given video AVFrame according to its crop_left/crop_top/crop_right/ crop_bottom fields. More...
 

Function Documentation

◆ get_frame_defaults()

static void get_frame_defaults ( AVFrame frame)
static

Definition at line 31 of file frame.c.

Referenced by av_frame_alloc(), av_frame_move_ref(), and av_frame_unref().

◆ free_side_data()

static void free_side_data ( AVFrameSideData **  ptr_sd)
static

Definition at line 57 of file frame.c.

Referenced by remove_side_data(), remove_side_data_by_entry(), and wipe_side_data().

◆ wipe_side_data()

static void wipe_side_data ( AVFrameSideData ***  sd,
int nb_side_data 
)
static

Definition at line 66 of file frame.c.

Referenced by av_frame_side_data_free(), and frame_side_data_wipe().

◆ frame_side_data_wipe()

static void frame_side_data_wipe ( AVFrame frame)
static

Definition at line 76 of file frame.c.

Referenced by av_frame_replace(), av_frame_unref(), and frame_copy_props().

◆ remove_side_data()

static void remove_side_data ( AVFrameSideData ***  sd,
int nb_side_data,
const enum AVFrameSideDataType  type 
)
static

◆ remove_side_data_by_entry()

static void remove_side_data_by_entry ( AVFrameSideData ***  sd,
int nb_sd,
const AVFrameSideData target 
)
static

Definition at line 101 of file frame.c.

Referenced by av_frame_side_data_clone().

◆ get_video_buffer()

static int get_video_buffer ( AVFrame frame,
int  align 
)
static

Definition at line 139 of file frame.c.

Referenced by av_frame_get_buffer().

◆ get_audio_buffer()

static int get_audio_buffer ( AVFrame frame,
int  align 
)
static

Definition at line 208 of file frame.c.

Referenced by av_frame_get_buffer().

◆ frame_copy_props()

static int frame_copy_props ( AVFrame dst,
const AVFrame src,
int  force_copy 
)
static

Definition at line 272 of file frame.c.

Referenced by av_frame_copy_props(), av_frame_ref(), and av_frame_replace().

◆ add_side_data_from_buf_ext()

static AVFrameSideData* add_side_data_from_buf_ext ( AVFrameSideData ***  sd,
int nb_sd,
enum AVFrameSideDataType  type,
AVBufferRef buf,
uint8_t *  data,
size_t  size 
)
static

Definition at line 714 of file frame.c.

Referenced by add_side_data_from_buf(), and av_frame_side_data_clone().

◆ add_side_data_from_buf()

static AVFrameSideData* add_side_data_from_buf ( AVFrameSideData ***  sd,
int nb_sd,
enum AVFrameSideDataType  type,
AVBufferRef buf 
)
static

Definition at line 745 of file frame.c.

Referenced by av_frame_new_side_data_from_buf(), and av_frame_side_data_new().

◆ frame_copy_video()

static int frame_copy_video ( AVFrame dst,
const AVFrame src 
)
static

Definition at line 847 of file frame.c.

Referenced by av_frame_copy().

◆ frame_copy_audio()

static int frame_copy_audio ( AVFrame dst,
const AVFrame src 
)
static

Definition at line 870 of file frame.c.

Referenced by av_frame_copy().

◆ calc_cropping_offsets()

static int calc_cropping_offsets ( size_t  offsets[4],
const AVFrame frame,
const AVPixFmtDescriptor desc 
)
static

Definition at line 943 of file frame.c.

Referenced by av_frame_apply_cropping().