FFmpeg
Loading...
Searching...
No Matches
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)
 
#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.

Referenced by mf_from_mf_time(), mf_get_tb(), and mf_to_mf_time().

◆ MF_INVALID_TIME

#define MF_INVALID_TIME   AV_NOPTS_VALUE

Definition at line 75 of file mfenc.c.

Referenced by mf_sample_set_pts(), and mf_to_mf_time().

◆ 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; \
}
#define AVERROR_UNKNOWN
Unknown error, typically from an external library.
Definition error.h:73
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition log.h:210

Definition at line 1323 of file mfenc.c.

Referenced by mf_load_library().

◆ OFFSET

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

Definition at line 1416 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, \
};
static av_cold void close(AVCodecParserContext *s)
Definition apv_parser.c:197
#define FF_CODEC_RECEIVE_PACKET_CB(func)
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
int(* init)(AVBSFContext *ctx)
Definition dts2pts.c:608
const char * av_default_item_name(void *ptr)
Return the context name.
Definition log.c:241
#define LIBAVUTIL_VERSION_INT
Definition version.h:85
static int mf_receive_packet(AVCodecContext *avctx, AVPacket *avpkt)
Definition mfenc.c:630
static av_cold int mf_init(AVCodecContext *avctx)
Definition mfenc.c:1405
static int mf_close(AVCodecContext *avctx)
Definition mfenc.c:1373
#define ID(_0)
Definition mov_chan.c:124
Describe the class of an AVClass context structure.
Definition log.h:76

Definition at line 1418 of file mfenc.c.

◆ AFMTS

#define AFMTS    CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16),

Definition at line 1441 of file mfenc.c.

Referenced by MF_ENCODER(), MF_ENCODER(), and MF_ENCODER().

◆ ACAPS

#define ACAPS
Value:
.p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID | \
#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE
Audio encoder supports receiving a different number of samples in each call.
Definition codec.h:116
#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:79
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition codec.h:49
#define AV_CODEC_CAP_HYBRID
Codec is potentially backed by a hardware implementation, but not necessarily.
Definition codec.h:140

Definition at line 1443 of file mfenc.c.

Referenced by MF_ENCODER(), MF_ENCODER(), and MF_ENCODER().

◆ VE

Definition at line 1451 of file mfenc.c.

◆ VFMTS

Definition at line 1483 of file mfenc.c.

Referenced by MF_ENCODER(), MF_ENCODER(), and MF_ENCODER().

◆ VCAPS

#define VCAPS
Value:

Definition at line 1485 of file mfenc.c.

Referenced by MF_ENCODER(), MF_ENCODER(), and MF_ENCODER().

Function Documentation

◆ mf_choose_output_type()

static int mf_choose_output_type ( AVCodecContext * avctx)
static

Definition at line 935 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 1139 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 1024 of file mfenc.c.

Referenced by mf_negotiate_types().

◆ mf_negotiate_types()

static int mf_negotiate_types ( AVCodecContext * avctx)
static

Definition at line 1112 of file mfenc.c.

Referenced by mf_init_encoder().

◆ mf_unlock_async()

static int mf_unlock_async ( AVCodecContext * avctx)
static

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

Referenced by mf_init_encoder().

◆ mf_init_encoder()

static int mf_init_encoder ( AVCodecContext * avctx)
static

Definition at line 1246 of file mfenc.c.

Referenced by mf_init().

◆ mf_load_library()

static int mf_load_library ( AVCodecContext * avctx)
static

Definition at line 1346 of file mfenc.c.

Referenced by mf_init().

◆ mf_close()

static int mf_close ( AVCodecContext * avctx)
static

Definition at line 1373 of file mfenc.c.

◆ mf_init()

static av_cold int mf_init ( AVCodecContext * avctx)
static

Definition at line 1405 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}
}
#define VE
Definition amfenc_av1.c:30
#define NULL
Definition coverity.c:32
#define OFFSET(x)
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
Definition opt.h:298
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition opt.h:258
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition opt.h:326
@ ff_eAVEncCommonRateControlMode_UnconstrainedVBR
Definition mf_utils.h:130
@ ff_eAVEncCommonRateControlMode_LowDelayVBR
Definition mf_utils.h:132
@ ff_eAVEncCommonRateControlMode_CBR
Definition mf_utils.h:128
@ ff_eAVEncCommonRateControlMode_PeakConstrainedVBR
Definition mf_utils.h:129
@ ff_eAVEncCommonRateControlMode_GlobalVBR
Definition mf_utils.h:133
@ ff_eAVEncCommonRateControlMode_GlobalLowDelayVBR
Definition mf_utils.h:134
@ ff_eAVEncCommonRateControlMode_Quality
Definition mf_utils.h:131
@ ff_eAVScenarioInfo_CameraRecord
Definition mf_utils.h:143
@ ff_eAVScenarioInfo_Archive
Definition mf_utils.h:141
@ ff_eAVScenarioInfo_DisplayRemoting
Definition mf_utils.h:139
@ ff_eAVScenarioInfo_VideoConference
Definition mf_utils.h:140
@ ff_eAVScenarioInfo_LiveStreaming
Definition mf_utils.h:142
@ ff_eAVScenarioInfo_DisplayRemotingWithFeatureMap
Definition mf_utils.h:144

Definition at line 1452 of file mfenc.c.

Referenced by MF_ENCODER(), MF_ENCODER(), and MF_ENCODER().

◆ defaults

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

Definition at line 1478 of file mfenc.c.