FFmpeg
Data Structures | Macros | Functions | Variables
mfenc.c File Reference
#include "encode.h"
#include "mf_utils.h"
#include "libavutil/imgutils.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "codec_internal.h"
#include "internal.h"
#include "compat/w32dlfcn.h"

Go to the source code of this file.

Data Structures

struct  MFContext
 

Macros

#define COBJMACROS
 
#define _WIN32_WINNT   0x0602
 
#define MF_TIMEBASE   (AVRational){1, 10000000}
 
#define MF_INVALID_TIME   AV_NOPTS_VALUE
 
#define LOAD_MF_FUNCTION(context, func_name)
 
#define OFFSET(x)   offsetof(MFContext, x)
 
#define MF_ENCODER(MEDIATYPE, NAME, ID, OPTS, FMTS, CAPS, DEFAULTS)
 
#define AFMTS   CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),
 
#define ACAPS
 
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 
#define VFMTS   CODEC_PIXFMTS(AV_PIX_FMT_NV12, AV_PIX_FMT_YUV420P, AV_PIX_FMT_D3D11),
 
#define VCAPS
 

Functions

static int mf_choose_output_type (AVCodecContext *avctx)
 
static int mf_setup_context (AVCodecContext *avctx)
 
static int mf_wait_events (AVCodecContext *avctx)
 
static AVRational mf_get_tb (AVCodecContext *avctx)
 
static LONGLONG mf_to_mf_time (AVCodecContext *avctx, int64_t av_pts)
 
static void mf_sample_set_pts (AVCodecContext *avctx, IMFSample *sample, int64_t av_pts)
 
static int64_t mf_from_mf_time (AVCodecContext *avctx, LONGLONG stime)
 
static int64_t mf_sample_get_pts (AVCodecContext *avctx, IMFSample *sample)
 
static int mf_enca_output_type_get (AVCodecContext *avctx, IMFMediaType *type)
 
static int mf_encv_output_type_get (AVCodecContext *avctx, IMFMediaType *type)
 
static int mf_output_type_get (AVCodecContext *avctx)
 
static int mf_sample_to_avpacket (AVCodecContext *avctx, IMFSample *sample, AVPacket *avpkt)
 
static int mf_a_avframe_to_sample (AVCodecContext *avctx, const AVFrame *frame, IMFSample **out_sample)
 
static int initialize_dxgi_manager (AVCodecContext *avctx)
 
static int process_d3d11_frame (AVCodecContext *avctx, const AVFrame *frame, IMFSample **out_sample)
 
static int process_software_frame (AVCodecContext *avctx, const AVFrame *frame, IMFSample **out_sample)
 
static int mf_v_avframe_to_sample (AVCodecContext *avctx, const AVFrame *frame, IMFSample **out_sample)
 
static int mf_avframe_to_sample (AVCodecContext *avctx, const AVFrame *frame, IMFSample **out_sample)
 
static int mf_send_sample (AVCodecContext *avctx, IMFSample *sample)
 
static int mf_receive_sample (AVCodecContext *avctx, IMFSample **out_sample)
 
static int mf_receive_packet (AVCodecContext *avctx, AVPacket *avpkt)
 
static int64_t mf_enca_output_score (AVCodecContext *avctx, IMFMediaType *type)
 
static int mf_enca_output_adjust (AVCodecContext *avctx, IMFMediaType *type)
 
static int64_t mf_enca_input_score (AVCodecContext *avctx, IMFMediaType *type)
 
static int mf_enca_input_adjust (AVCodecContext *avctx, IMFMediaType *type)
 
static int64_t mf_encv_output_score (AVCodecContext *avctx, IMFMediaType *type)
 
static int mf_encv_output_adjust (AVCodecContext *avctx, IMFMediaType *type)
 
static int64_t mf_encv_input_score (AVCodecContext *avctx, IMFMediaType *type)
 
static int mf_encv_input_adjust (AVCodecContext *avctx, IMFMediaType *type)
 
static int mf_choose_input_type (AVCodecContext *avctx)
 
static int mf_negotiate_types (AVCodecContext *avctx)
 
static int mf_unlock_async (AVCodecContext *avctx)
 
static int mf_create (void *log, MFFunctions *f, IMFTransform **mft, const AVCodec *codec, int use_hw)
 
static int mf_init_encoder (AVCodecContext *avctx)
 
static int mf_load_library (AVCodecContext *avctx)
 
static int mf_close (AVCodecContext *avctx)
 
static av_cold int mf_init (AVCodecContext *avctx)
 
 MF_ENCODER (AUDIO, aac, AAC, NULL, AFMTS, ACAPS, NULL)
 
 MF_ENCODER (AUDIO, ac3, AC3, NULL, AFMTS, ACAPS, NULL)
 
 MF_ENCODER (AUDIO, mp3, MP3, NULL, AFMTS, ACAPS, NULL)
 
 MF_ENCODER (VIDEO, h264, H264, venc_opts, VFMTS, VCAPS, defaults)
 
 MF_ENCODER (VIDEO, hevc, HEVC, venc_opts, VFMTS, VCAPS, defaults)
 
 MF_ENCODER (VIDEO, av1, AV1, venc_opts, VFMTS, VCAPS, defaults)
 

Variables

static const AVOption venc_opts []
 
static const FFCodecDefault defaults []
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 19 of file mfenc.c.

◆ _WIN32_WINNT

#define _WIN32_WINNT   0x0602

Definition at line 22 of file mfenc.c.

◆ MF_TIMEBASE

#define MF_TIMEBASE   (AVRational){1, 10000000}

Definition at line 73 of file mfenc.c.

◆ MF_INVALID_TIME

#define MF_INVALID_TIME   AV_NOPTS_VALUE

Definition at line 75 of file mfenc.c.

◆ LOAD_MF_FUNCTION

#define LOAD_MF_FUNCTION (   context,
  func_name 
)
Value:
context->functions.func_name = (void *)dlsym(context->library, #func_name); \
if (!context->functions.func_name) { \
av_log(context, AV_LOG_ERROR, "DLL mfplat.dll failed to find function "\
#func_name "\n"); \
return AVERROR_UNKNOWN; \
}

Definition at line 1299 of file mfenc.c.

◆ OFFSET

#define OFFSET (   x)    offsetof(MFContext, x)

Definition at line 1389 of file mfenc.c.

◆ MF_ENCODER

#define MF_ENCODER (   MEDIATYPE,
  NAME,
  ID,
  OPTS,
  FMTS,
  CAPS,
  DEFAULTS 
)
Value:
static const AVClass ff_ ## NAME ## _mf_encoder_class = { \
.class_name = #NAME "_mf", \
.item_name = av_default_item_name, \
.option = OPTS, \
.version = LIBAVUTIL_VERSION_INT, \
}; \
const FFCodec ff_ ## NAME ## _mf_encoder = { \
.p.priv_class = &ff_ ## NAME ## _mf_encoder_class, \
.p.name = #NAME "_mf", \
CODEC_LONG_NAME(#ID " via MediaFoundation"), \
.p.type = AVMEDIA_TYPE_ ## MEDIATYPE, \
.p.id = AV_CODEC_ID_ ## ID, \
.priv_data_size = sizeof(MFContext), \
.init = mf_init, \
FMTS \
CAPS \
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP, \
.defaults = DEFAULTS, \
};

Definition at line 1391 of file mfenc.c.

◆ AFMTS

#define AFMTS   CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),

Definition at line 1414 of file mfenc.c.

◆ ACAPS

#define ACAPS
Value:
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID | \

Definition at line 1416 of file mfenc.c.

◆ VE

Definition at line 1424 of file mfenc.c.

◆ VFMTS

Definition at line 1456 of file mfenc.c.

◆ VCAPS

#define VCAPS
Value:
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID | \
AV_CODEC_CAP_DR1,

Definition at line 1458 of file mfenc.c.

Function Documentation

◆ mf_choose_output_type()

static int mf_choose_output_type ( AVCodecContext avctx)
static

Definition at line 911 of file mfenc.c.

Referenced by mf_negotiate_types(), and mf_receive_sample().

◆ mf_setup_context()

static int mf_setup_context ( AVCodecContext avctx)
static

Definition at line 1115 of file mfenc.c.

Referenced by mf_init_encoder(), and mf_receive_sample().

◆ mf_wait_events()

static int mf_wait_events ( AVCodecContext avctx)
static

Definition at line 77 of file mfenc.c.

Referenced by mf_receive_sample(), and mf_send_sample().

◆ mf_get_tb()

static AVRational mf_get_tb ( AVCodecContext avctx)
static

Definition at line 116 of file mfenc.c.

Referenced by mf_from_mf_time(), and mf_to_mf_time().

◆ mf_to_mf_time()

static LONGLONG mf_to_mf_time ( AVCodecContext avctx,
int64_t  av_pts 
)
static

◆ mf_sample_set_pts()

static void mf_sample_set_pts ( AVCodecContext avctx,
IMFSample *  sample,
int64_t  av_pts 
)
static

Definition at line 130 of file mfenc.c.

Referenced by mf_avframe_to_sample().

◆ mf_from_mf_time()

static int64_t mf_from_mf_time ( AVCodecContext avctx,
LONGLONG  stime 
)
static

Definition at line 137 of file mfenc.c.

Referenced by mf_sample_get_pts(), and mf_sample_to_avpacket().

◆ mf_sample_get_pts()

static int64_t mf_sample_get_pts ( AVCodecContext avctx,
IMFSample *  sample 
)
static

Definition at line 142 of file mfenc.c.

Referenced by mf_sample_to_avpacket().

◆ mf_enca_output_type_get()

static int mf_enca_output_type_get ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 151 of file mfenc.c.

Referenced by mf_output_type_get().

◆ mf_encv_output_type_get()

static int mf_encv_output_type_get ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 191 of file mfenc.c.

Referenced by mf_output_type_get().

◆ mf_output_type_get()

static int mf_output_type_get ( AVCodecContext avctx)
static

Definition at line 214 of file mfenc.c.

Referenced by mf_init_encoder(), and mf_setup_context().

◆ mf_sample_to_avpacket()

static int mf_sample_to_avpacket ( AVCodecContext avctx,
IMFSample *  sample,
AVPacket avpkt 
)
static

Definition at line 244 of file mfenc.c.

Referenced by mf_receive_packet().

◆ mf_a_avframe_to_sample()

static int mf_a_avframe_to_sample ( AVCodecContext avctx,
const AVFrame frame,
IMFSample **  out_sample 
)
static

Definition at line 299 of file mfenc.c.

Referenced by mf_avframe_to_sample().

◆ initialize_dxgi_manager()

static int initialize_dxgi_manager ( AVCodecContext avctx)
static

Definition at line 320 of file mfenc.c.

Referenced by process_d3d11_frame().

◆ process_d3d11_frame()

static int process_d3d11_frame ( AVCodecContext avctx,
const AVFrame frame,
IMFSample **  out_sample 
)
static

Definition at line 347 of file mfenc.c.

Referenced by mf_v_avframe_to_sample().

◆ process_software_frame()

static int process_software_frame ( AVCodecContext avctx,
const AVFrame frame,
IMFSample **  out_sample 
)
static

Definition at line 403 of file mfenc.c.

Referenced by mf_v_avframe_to_sample().

◆ mf_v_avframe_to_sample()

static int mf_v_avframe_to_sample ( AVCodecContext avctx,
const AVFrame frame,
IMFSample **  out_sample 
)
static

Definition at line 450 of file mfenc.c.

Referenced by mf_avframe_to_sample().

◆ mf_avframe_to_sample()

static int mf_avframe_to_sample ( AVCodecContext avctx,
const AVFrame frame,
IMFSample **  out_sample 
)
static

Definition at line 480 of file mfenc.c.

Referenced by mf_receive_packet().

◆ mf_send_sample()

static int mf_send_sample ( AVCodecContext avctx,
IMFSample *  sample 
)
static

Definition at line 500 of file mfenc.c.

Referenced by mf_receive_packet().

◆ mf_receive_sample()

static int mf_receive_sample ( AVCodecContext avctx,
IMFSample **  out_sample 
)
static

Definition at line 538 of file mfenc.c.

Referenced by mf_receive_packet().

◆ mf_receive_packet()

static int mf_receive_packet ( AVCodecContext avctx,
AVPacket avpkt 
)
static

Definition at line 620 of file mfenc.c.

◆ mf_enca_output_score()

static int64_t mf_enca_output_score ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 682 of file mfenc.c.

Referenced by mf_choose_output_type().

◆ mf_enca_output_adjust()

static int mf_enca_output_adjust ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 722 of file mfenc.c.

Referenced by mf_choose_output_type().

◆ mf_enca_input_score()

static int64_t mf_enca_input_score ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 732 of file mfenc.c.

Referenced by mf_choose_input_type().

◆ mf_enca_input_adjust()

static int mf_enca_input_adjust ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 756 of file mfenc.c.

Referenced by mf_choose_input_type().

◆ mf_encv_output_score()

static int64_t mf_encv_output_score ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 782 of file mfenc.c.

Referenced by mf_choose_output_type().

◆ mf_encv_output_adjust()

static int mf_encv_output_adjust ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 798 of file mfenc.c.

Referenced by mf_choose_output_type().

◆ mf_encv_input_score()

static int64_t mf_encv_input_score ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 874 of file mfenc.c.

Referenced by mf_choose_input_type().

◆ mf_encv_input_adjust()

static int mf_encv_input_adjust ( AVCodecContext avctx,
IMFMediaType *  type 
)
static

Definition at line 891 of file mfenc.c.

Referenced by mf_choose_input_type().

◆ mf_choose_input_type()

static int mf_choose_input_type ( AVCodecContext avctx)
static

Definition at line 1000 of file mfenc.c.

Referenced by mf_negotiate_types().

◆ mf_negotiate_types()

static int mf_negotiate_types ( AVCodecContext avctx)
static

Definition at line 1088 of file mfenc.c.

Referenced by mf_init_encoder().

◆ mf_unlock_async()

static int mf_unlock_async ( AVCodecContext avctx)
static

Definition at line 1143 of file mfenc.c.

Referenced by mf_init_encoder().

◆ mf_create()

static int mf_create ( void *  log,
MFFunctions f,
IMFTransform **  mft,
const AVCodec codec,
int  use_hw 
)
static

Definition at line 1192 of file mfenc.c.

Referenced by mf_init_encoder().

◆ mf_init_encoder()

static int mf_init_encoder ( AVCodecContext avctx)
static

Definition at line 1222 of file mfenc.c.

Referenced by mf_init().

◆ mf_load_library()

static int mf_load_library ( AVCodecContext avctx)
static

Definition at line 1322 of file mfenc.c.

Referenced by mf_init().

◆ mf_close()

static int mf_close ( AVCodecContext avctx)
static

Definition at line 1349 of file mfenc.c.

◆ mf_init()

static av_cold int mf_init ( AVCodecContext avctx)
static

Definition at line 1378 of file mfenc.c.

◆ MF_ENCODER() [1/6]

MF_ENCODER ( AUDIO  ,
aac  ,
AAC  ,
NULL  ,
AFMTS  ,
ACAPS  ,
NULL   
)

◆ MF_ENCODER() [2/6]

MF_ENCODER ( AUDIO  ,
ac3  ,
AC3  ,
NULL  ,
AFMTS  ,
ACAPS  ,
NULL   
)

◆ MF_ENCODER() [3/6]

MF_ENCODER ( AUDIO  ,
mp3  ,
MP3  ,
NULL  ,
AFMTS  ,
ACAPS  ,
NULL   
)

◆ MF_ENCODER() [4/6]

MF_ENCODER ( VIDEO  ,
h264  ,
H264  ,
venc_opts  ,
VFMTS  ,
VCAPS  ,
defaults   
)

◆ MF_ENCODER() [5/6]

MF_ENCODER ( VIDEO  ,
hevc  ,
HEVC  ,
venc_opts  ,
VFMTS  ,
VCAPS  ,
defaults   
)

◆ MF_ENCODER() [6/6]

MF_ENCODER ( VIDEO  ,
av1  ,
AV1  ,
venc_opts  ,
VFMTS  ,
VCAPS  ,
defaults   
)

Variable Documentation

◆ venc_opts

const AVOption venc_opts[]
static
Initial value:
= {
{"rate_control", "Select rate control mode", OFFSET(opt_enc_rc), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VE, .unit = "rate_control"},
{ "default", "Default mode", 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, VE, .unit = "rate_control"},
{ "cbr", "CBR mode", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVEncCommonRateControlMode_CBR}, 0, 0, VE, .unit = "rate_control"},
{ "pc_vbr", "Peak constrained VBR mode", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVEncCommonRateControlMode_PeakConstrainedVBR}, 0, 0, VE, .unit = "rate_control"},
{ "u_vbr", "Unconstrained VBR mode", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVEncCommonRateControlMode_UnconstrainedVBR}, 0, 0, VE, .unit = "rate_control"},
{ "quality", "Quality mode", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVEncCommonRateControlMode_Quality}, 0, 0, VE, .unit = "rate_control" },
{ "ld_vbr", "Low delay VBR mode", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVEncCommonRateControlMode_LowDelayVBR}, 0, 0, VE, .unit = "rate_control"},
{ "g_vbr", "Global VBR mode", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVEncCommonRateControlMode_GlobalVBR}, 0, 0, VE, .unit = "rate_control" },
{ "gld_vbr", "Global low delay VBR mode", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVEncCommonRateControlMode_GlobalLowDelayVBR}, 0, 0, VE, .unit = "rate_control"},
{"scenario", "Select usage scenario", OFFSET(opt_enc_scenario), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VE, .unit = "scenario"},
{ "default", "Default scenario", 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, VE, .unit = "scenario"},
{ "display_remoting", "Display remoting", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVScenarioInfo_DisplayRemoting}, 0, 0, VE, .unit = "scenario"},
{ "video_conference", "Video conference", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVScenarioInfo_VideoConference}, 0, 0, VE, .unit = "scenario"},
{ "archive", "Archive", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVScenarioInfo_Archive}, 0, 0, VE, .unit = "scenario"},
{ "live_streaming", "Live streaming", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVScenarioInfo_LiveStreaming}, 0, 0, VE, .unit = "scenario"},
{ "camera_record", "Camera record", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVScenarioInfo_CameraRecord}, 0, 0, VE, .unit = "scenario"},
{ "display_remoting_with_feature_map", "Display remoting with feature map", 0, AV_OPT_TYPE_CONST, {.i64 = ff_eAVScenarioInfo_DisplayRemotingWithFeatureMap}, 0, 0, VE, .unit = "scenario"},
{"quality", "Quality", OFFSET(opt_enc_quality), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 100, VE},
{"hw_encoding", "Force hardware encoding", OFFSET(opt_enc_hw), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, VE},
{NULL}
}

Definition at line 1425 of file mfenc.c.

◆ defaults

const FFCodecDefault defaults[]
static
Initial value:
= {
{ "g", "0" },
{ NULL },
}

Definition at line 1451 of file mfenc.c.

FF_CODEC_CAP_INIT_CLEANUP
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
Definition: codec_internal.h:42
AVCodec::priv_class
const AVClass * priv_class
AVClass for the private context.
Definition: codec.h:206
ff_eAVEncCommonRateControlMode_Quality
@ ff_eAVEncCommonRateControlMode_Quality
Definition: mf_utils.h:131
ff_eAVEncCommonRateControlMode_CBR
@ ff_eAVEncCommonRateControlMode_CBR
Definition: mf_utils.h:128
FFCodec
Definition: codec_internal.h:127
AVERROR_UNKNOWN
#define AVERROR_UNKNOWN
Unknown error, typically from an external library.
Definition: error.h:73
close
static av_cold void close(AVCodecParserContext *s)
Definition: apv_parser.c:135
FFCodec::p
AVCodec p
The public AVCodec.
Definition: codec_internal.h:131
OFFSET
#define OFFSET(x)
Definition: mfenc.c:1389
mf_receive_packet
static int mf_receive_packet(AVCodecContext *avctx, AVPacket *avpkt)
Definition: mfenc.c:620
ff_eAVEncCommonRateControlMode_GlobalVBR
@ ff_eAVEncCommonRateControlMode_GlobalVBR
Definition: mf_utils.h:133
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:210
ff_eAVScenarioInfo_LiveStreaming
@ ff_eAVScenarioInfo_LiveStreaming
Definition: mf_utils.h:142
context
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your context
Definition: writing_filters.txt:91
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
AVClass
Describe the class of an AVClass context structure.
Definition: log.h:76
NULL
#define NULL
Definition: coverity.c:32
ff_eAVEncCommonRateControlMode_PeakConstrainedVBR
@ ff_eAVEncCommonRateControlMode_PeakConstrainedVBR
Definition: mf_utils.h:129
FF_CODEC_RECEIVE_PACKET_CB
#define FF_CODEC_RECEIVE_PACKET_CB(func)
Definition: codec_internal.h:361
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:240
AV_CODEC_CAP_VARIABLE_FRAME_SIZE
#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE
Audio encoder supports receiving a different number of samples in each call.
Definition: codec.h:113
ID
#define ID(_0)
Definition: mov_chan.c:240
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:368
ff_eAVScenarioInfo_Archive
@ ff_eAVScenarioInfo_Archive
Definition: mf_utils.h:141
ff_eAVScenarioInfo_DisplayRemoting
@ ff_eAVScenarioInfo_DisplayRemoting
Definition: mf_utils.h:139
ff_eAVEncCommonRateControlMode_UnconstrainedVBR
@ ff_eAVEncCommonRateControlMode_UnconstrainedVBR
Definition: mf_utils.h:130
ff_eAVScenarioInfo_DisplayRemotingWithFeatureMap
@ ff_eAVScenarioInfo_DisplayRemotingWithFeatureMap
Definition: mf_utils.h:144
VE
#define VE
Definition: mfenc.c:1424
MFContext
Definition: mfenc.c:38
AVClass::class_name
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
Definition: log.h:81
mf_init
static av_cold int mf_init(AVCodecContext *avctx)
Definition: mfenc.c:1378
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition: opt.h:259
mf_close
static int mf_close(AVCodecContext *avctx)
Definition: mfenc.c:1349
AV_CODEC_CAP_DELAY
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: codec.h:76
ff_eAVScenarioInfo_CameraRecord
@ ff_eAVScenarioInfo_CameraRecord
Definition: mf_utils.h:143
ff_eAVScenarioInfo_VideoConference
@ ff_eAVScenarioInfo_VideoConference
Definition: mf_utils.h:140
AV_CODEC_CAP_HYBRID
#define AV_CODEC_CAP_HYBRID
Codec is potentially backed by a hardware implementation, but not necessarily.
Definition: codec.h:137
AV_OPT_TYPE_BOOL
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition: opt.h:327
ff_eAVEncCommonRateControlMode_GlobalLowDelayVBR
@ ff_eAVEncCommonRateControlMode_GlobalLowDelayVBR
Definition: mf_utils.h:134
AV_OPT_TYPE_CONST
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
Definition: opt.h:299
ff_eAVEncCommonRateControlMode_LowDelayVBR
@ ff_eAVEncCommonRateControlMode_LowDelayVBR
Definition: mf_utils.h:132