FFmpeg
Loading...
Searching...
No Matches
d3d12va_encode.h File Reference

Go to the source code of this file.

Data Structures

struct  D3D12VAEncodePicture
 
struct  D3D12VAEncodeProfile
 
struct  D3D12VAEncodeRCMode
 
struct  D3D12VAEncodeContext
 
struct  D3D12VAEncodeType
 

Macros

#define MAX_PARAM_BUFFER_SIZE   4096
 
#define D3D12VA_VIDEO_ENC_ASYNC_DEPTH   8
 
#define D3D12VA_ENCODE_INTRA_REFRESH_MODE(name, mode, desc)
 
#define D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAX_VALUE   D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL
 
#define D3D12VA_ENCODE_ME_PRECISION_MODE(name, mode, desc)
 
#define FFPP_D3D12VA_ME_PRECISION_EIGHTH_PIXEL
 
#define D3D12VA_ENCODE_COMMON_OPTIONS
 
#define D3D12VA_ENCODE_RC_MODE(name, desc)
 
#define D3D12VA_ENCODE_RC_OPTIONS
 

Enumerations

enum  {
  RC_MODE_AUTO , RC_MODE_CQP , RC_MODE_CBR , RC_MODE_VBR ,
  RC_MODE_QVBR , RC_MODE_MAX = RC_MODE_QVBR
}
 

Functions

int ff_d3d12va_encode_receive_packet (AVCodecContext *avctx, AVPacket *pkt)
 
int ff_d3d12va_encode_init (AVCodecContext *avctx)
 
int ff_d3d12va_encode_close (AVCodecContext *avctx)
 
void ff_d3d12va_encode_check_encoder_feature_flags (void *log_ctx, D3D12_VIDEO_ENCODER_VALIDATION_FLAGS flags)
 

Variables

const AVCodecHWConfigInternal *const ff_d3d12va_encode_hw_configs []
 

Macro Definition Documentation

◆ MAX_PARAM_BUFFER_SIZE

◆ D3D12VA_VIDEO_ENC_ASYNC_DEPTH

#define D3D12VA_VIDEO_ENC_ASYNC_DEPTH   8

Definition at line 40 of file d3d12va_encode.h.

Referenced by d3d12va_encode_create_command_objects().

◆ D3D12VA_ENCODE_INTRA_REFRESH_MODE

#define D3D12VA_ENCODE_INTRA_REFRESH_MODE ( name,
mode,
desc )
Value:
{ #name, desc, 0, AV_OPT_TYPE_CONST, { .i64 = D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ ## mode }, \
0, 0, FLAGS, .unit = "intra_refresh_mode" }
#define FLAGS
Definition cmdutils.c:598
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
Definition opt.h:298
const char * desc
Definition libsvtav1.c:83
const char * name
Definition qsvenc.c:142
Definition swscale.c:71

Definition at line 381 of file d3d12va_encode.h.

◆ D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAX_VALUE

#define D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAX_VALUE   D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL

Definition at line 388 of file d3d12va_encode.h.

◆ D3D12VA_ENCODE_ME_PRECISION_MODE

#define D3D12VA_ENCODE_ME_PRECISION_MODE ( name,
mode,
desc )
Value:
{ #name, #desc " pixel precision", 0, AV_OPT_TYPE_CONST, \
{ .i64 = D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_ ## mode }, \
0, 0, FLAGS, .unit = "me_precision" }

Definition at line 391 of file d3d12va_encode.h.

◆ FFPP_D3D12VA_ME_PRECISION_EIGHTH_PIXEL

#define FFPP_D3D12VA_ME_PRECISION_EIGHTH_PIXEL

Definition at line 400 of file d3d12va_encode.h.

◆ D3D12VA_ENCODE_COMMON_OPTIONS

#define D3D12VA_ENCODE_COMMON_OPTIONS
Value:
{ "max_frame_size", \
"Maximum frame size (in bytes)",\
OFFSET(common.max_frame_size), AV_OPT_TYPE_INT, \
{ .i64 = 0 }, 0, INT_MAX / 8, FLAGS }, \
{ "intra_refresh_mode", \
"Set intra refresh mode", \
OFFSET(common.intra_refresh.Mode), AV_OPT_TYPE_INT, \
{ .i64 = D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE }, \
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE, \
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED, FLAGS, .unit = "intra_refresh_mode" }, \
D3D12VA_ENCODE_INTRA_REFRESH_MODE(none, NONE, "Disable intra refresh"), \
D3D12VA_ENCODE_INTRA_REFRESH_MODE(row_based, ROW_BASED, "Row-based intra refresh"), \
{ "intra_refresh_duration", \
"Number of frames over which to spread intra refresh (0 = GOP size)", \
OFFSET(common.intra_refresh.IntraRefreshDuration), AV_OPT_TYPE_INT, \
{ .i64 = 0 }, 0, INT_MAX, FLAGS }, \
{ "me_precision", "Motion estimation precision mode", \
OFFSET(common.me_precision), AV_OPT_TYPE_INT, \
{ .i64 = D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM }, \
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM, \
FLAGS, .unit = "me_precision" }, \
{ "maximum", "Maximum (best quality, slowest)", 0, AV_OPT_TYPE_CONST, \
{ .i64 = D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM }, \
0, 0, FLAGS, .unit = "me_precision" }, \
D3D12VA_ENCODE_ME_PRECISION_MODE(full_pixel, FULL_PIXEL, Full), \
D3D12VA_ENCODE_ME_PRECISION_MODE(half_pixel, HALF_PIXEL, Half), \
D3D12VA_ENCODE_ME_PRECISION_MODE(quarter_pixel, QUARTER_PIXEL, Quarter) \
#define D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAX_VALUE
#define FFPP_D3D12VA_ME_PRECISION_EIGHTH_PIXEL
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition opt.h:258
#define NONE
Definition vf_drawvg.c:262

Definition at line 403 of file d3d12va_encode.h.

◆ D3D12VA_ENCODE_RC_MODE

#define D3D12VA_ENCODE_RC_MODE ( name,
desc )
Value:
{ #name, desc, 0, AV_OPT_TYPE_CONST, { .i64 = RC_MODE_ ## name }, \
0, 0, FLAGS, .unit = "rc_mode" }

Definition at line 434 of file d3d12va_encode.h.

◆ D3D12VA_ENCODE_RC_OPTIONS

#define D3D12VA_ENCODE_RC_OPTIONS
Value:
{ "rc_mode",\
"Set rate control mode", \
OFFSET(common.explicit_rc_mode), AV_OPT_TYPE_INT, \
{ .i64 = RC_MODE_AUTO }, RC_MODE_AUTO, RC_MODE_MAX, FLAGS, .unit = "rc_mode" }, \
{ "auto", "Choose mode automatically based on other parameters", \
0, AV_OPT_TYPE_CONST, { .i64 = RC_MODE_AUTO }, 0, 0, FLAGS, .unit = "rc_mode" }, \
D3D12VA_ENCODE_RC_MODE(CQP, "Constant-quality"), \
D3D12VA_ENCODE_RC_MODE(CBR, "Constant-bitrate"), \
D3D12VA_ENCODE_RC_MODE(VBR, "Variable-bitrate"), \
D3D12VA_ENCODE_RC_MODE(QVBR, "Quality-defined variable-bitrate")
@ CBR
Definition af_afade.c:62
@ RC_MODE_MAX
@ RC_MODE_AUTO

Definition at line 437 of file d3d12va_encode.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
RC_MODE_AUTO 
RC_MODE_CQP 
RC_MODE_CBR 
RC_MODE_VBR 
RC_MODE_QVBR 
RC_MODE_MAX 

Definition at line 98 of file d3d12va_encode.h.

Function Documentation

◆ ff_d3d12va_encode_receive_packet()

int ff_d3d12va_encode_receive_packet ( AVCodecContext * avctx,
AVPacket * pkt )

Definition at line 1723 of file d3d12va_encode.c.

◆ ff_d3d12va_encode_init()

int ff_d3d12va_encode_init ( AVCodecContext * avctx)

◆ ff_d3d12va_encode_close()

int ff_d3d12va_encode_close ( AVCodecContext * avctx)

◆ ff_d3d12va_encode_check_encoder_feature_flags()

void ff_d3d12va_encode_check_encoder_feature_flags ( void * log_ctx,
D3D12_VIDEO_ENCODER_VALIDATION_FLAGS flags )

Variable Documentation

◆ ff_d3d12va_encode_hw_configs

const AVCodecHWConfigInternal* const ff_d3d12va_encode_hw_configs[]
extern

Definition at line 37 of file d3d12va_encode.c.