FFmpeg
Data Structures | Enumerations | Functions
video_enc_params.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "libavutil/avassert.h"
#include "libavutil/frame.h"

Go to the source code of this file.

Data Structures

struct  AVVideoEncParams
 Video encoding parameters for a given frame. More...
 
struct  AVVideoBlockParams
 Data structure for storing block-level encoding information. More...
 

Enumerations

enum  AVVideoEncParamsType { AV_VIDEO_ENC_PARAMS_NONE = -1, AV_VIDEO_ENC_PARAMS_VP9, AV_VIDEO_ENC_PARAMS_H264, AV_VIDEO_ENC_PARAMS_MPEG2 }
 

Functions

static av_always_inline AVVideoBlockParamsav_video_enc_params_block (AVVideoEncParams *par, unsigned int idx)
 Get the block at the specified. More...
 
AVVideoEncParamsav_video_enc_params_alloc (enum AVVideoEncParamsType type, unsigned int nb_blocks, size_t *out_size)
 Allocates memory for AVVideoEncParams of the given type, plus an array of. More...
 
AVVideoEncParamsav_video_enc_params_create_side_data (AVFrame *frame, enum AVVideoEncParamsType type, unsigned int nb_blocks)
 Allocates memory for AVEncodeInfoFrame plus an array of. More...
 

Enumeration Type Documentation

◆ AVVideoEncParamsType

Enumerator
AV_VIDEO_ENC_PARAMS_NONE 
AV_VIDEO_ENC_PARAMS_VP9 

VP9 stores:

To compute the resulting quantizer index for a block:

  • for luma AC, add the base qp and the per-block delta_qp, saturating to unsigned 8-bit.
  • for luma DC and chroma AC/DC, add the corresponding AVVideoBlockParams.delta_qp to the luma AC index, again saturating to unsigned 8-bit.
AV_VIDEO_ENC_PARAMS_H264 

H.264 stores:

  • in PPS (per-picture):
  • per-slice QP delta, not exported directly, added to the per-MB value
  • per-MB delta; not exported directly; the final per-MB quantizer parameter - QP_Y - minus the value in AVVideoEncParams.qp is exported as AVVideoBlockParams.qp_delta.
AV_VIDEO_ENC_PARAMS_MPEG2 

Definition at line 28 of file video_enc_params.h.

Function Documentation

◆ av_video_enc_params_block()

static av_always_inline AVVideoBlockParams* av_video_enc_params_block ( AVVideoEncParams par,
unsigned int  idx 
)
static

Get the block at the specified.

idx

. Must be between 0 and nb_blocks - 1.

Definition at line 143 of file video_enc_params.h.

Referenced by ff_mpv_export_qp_table(), ff_qp_table_extract(), filter_frame(), h264_export_enc_params(), process_frame(), and vp9_export_enc_params().

◆ av_video_enc_params_alloc()

AVVideoEncParams* av_video_enc_params_alloc ( enum AVVideoEncParamsType  type,
unsigned int  nb_blocks,
size_t *  out_size 
)

Allocates memory for AVVideoEncParams of the given type, plus an array of.

nb_blocks

AVVideoBlockParams and initializes the variables. Can be freed with a normal av_free() call.

Parameters
out_sizeif non-NULL, the size in bytes of the resulting data array is written here.

Definition at line 27 of file video_enc_params.c.

Referenced by av_video_enc_params_create_side_data().

◆ av_video_enc_params_create_side_data()

AVVideoEncParams* av_video_enc_params_create_side_data ( AVFrame frame,
enum AVVideoEncParamsType  type,
unsigned int  nb_blocks 
)

Allocates memory for AVEncodeInfoFrame plus an array of.

nb_blocks

AVEncodeInfoBlock in the given AVFrame

as AVFrameSideData of type AV_FRAME_DATA_VIDEO_ENC_PARAMS and initializes the variables.

Definition at line 58 of file video_enc_params.c.

Referenced by ff_mpv_export_qp_table(), filter_frame(), h264_export_enc_params(), and vp9_export_enc_params().

frame
static AVFrame * frame
Definition: demux_decode.c:54