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 int64_t mf_sample_get_duration (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 1312 of file mfenc.c.

◆ OFFSET

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

Definition at line 1405 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 1407 of file mfenc.c.

◆ AFMTS

#define AFMTS   CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),

Definition at line 1430 of file mfenc.c.

◆ ACAPS

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

Definition at line 1432 of file mfenc.c.

◆ VE

Definition at line 1440 of file mfenc.c.

◆ VFMTS

Definition at line 1472 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 1474 of file mfenc.c.

Function Documentation

◆ mf_choose_output_type()

static int mf_choose_output_type ( AVCodecContext avctx)
static

Definition at line 924 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 1128 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_duration(), 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_sample_get_duration()

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

Definition at line 151 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 160 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 200 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 223 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 253 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 309 of file mfenc.c.

Referenced by mf_avframe_to_sample().

◆ initialize_dxgi_manager()

static int initialize_dxgi_manager ( AVCodecContext avctx)
static

Definition at line 330 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 357 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 413 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 460 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 490 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 510 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 548 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 630 of file mfenc.c.

◆ mf_enca_output_score()

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

Definition at line 692 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 732 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 742 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 766 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 792 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 808 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 887 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 904 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 1013 of file mfenc.c.

Referenced by mf_negotiate_types().

◆ mf_negotiate_types()

static int mf_negotiate_types ( AVCodecContext avctx)
static

Definition at line 1101 of file mfenc.c.

Referenced by mf_init_encoder().

◆ mf_unlock_async()

static int mf_unlock_async ( AVCodecContext avctx)
static

Definition at line 1156 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 1205 of file mfenc.c.

Referenced by mf_init_encoder().

◆ mf_init_encoder()

static int mf_init_encoder ( AVCodecContext avctx)
static

Definition at line 1235 of file mfenc.c.

Referenced by mf_init().

◆ mf_load_library()

static int mf_load_library ( AVCodecContext avctx)
static

Definition at line 1335 of file mfenc.c.

Referenced by mf_init().

◆ mf_close()

static int mf_close ( AVCodecContext avctx)
static

Definition at line 1362 of file mfenc.c.

◆ mf_init()

static av_cold int mf_init ( AVCodecContext avctx)
static

Definition at line 1394 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 1441 of file mfenc.c.

◆ defaults

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

Definition at line 1467 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:1405
mf_receive_packet
static int mf_receive_packet(AVCodecContext *avctx, AVPacket *avpkt)
Definition: mfenc.c:630
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:241
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:1440
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:1394
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:1362
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