_MFT_ENUM_FLAG enumeration (mfapi.h)

Contains flags for registering and enumeration Media Foundation transforms (MFTs).

These flags are used in the following functions:

  • MFTEnumEx: These flags control which Media Foundation transforms (MFTs) are enumerated, as well as the enumeration order.
  • MFTRegister: A subset of these flags are used when registering an MFT.

Syntax

typedef enum _MFT_ENUM_FLAG {
  MFT_ENUM_FLAG_SYNCMFT = 0x00000001,
  MFT_ENUM_FLAG_ASYNCMFT = 0x00000002,
  MFT_ENUM_FLAG_HARDWARE = 0x00000004,
  MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008,
  MFT_ENUM_FLAG_LOCALMFT = 0x00000010,
  MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020,
  MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040,
  MFT_ENUM_FLAG_SORTANDFILTER_APPROVED_ONLY = 0x000000C0,
  MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY = 0x00000140,
  MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY_EDGEMODE = 0x00000240,
  MFT_ENUM_FLAG_UNTRUSTED_STOREMFT = 0x00000400,
  MFT_ENUM_FLAG_ALL = 0x0000003F
} ;

Constants

 
MFT_ENUM_FLAG_SYNCMFT
Value: 0x00000001
The MFT performs synchronous data processing in software.

This flag does not apply to hardware transforms.
MFT_ENUM_FLAG_ASYNCMFT
Value: 0x00000002
The MFT performs asynchronous data processing in software. See Asynchronous MFTs.

This flag does not apply to hardware transforms.
MFT_ENUM_FLAG_HARDWARE
Value: 0x00000004
The MFT performs hardware-based data processing, using either the AVStream driver or a GPU-based proxy MFT. MFTs in this category always process data asynchronously. See Hardware MFTs.

Note  This flag applies to video codecs and video processors that perform their work entirely in hardware. It does not apply to software decoders that use DirectX Video Acceleration to assist decoding.

 
MFT_ENUM_FLAG_FIELDOFUSE
Value: 0x00000008
The MFT that must be unlocked by the application before use. Unlocking is performed using the IMFFieldOfUseMFTUnlock interface. For more information, see Field of Use Restrictions.

This flag does not apply to hardware transforms.
MFT_ENUM_FLAG_LOCALMFT
Value: 0x00000010
For enumeration, include MFTs that were registered in the caller's process. To register an MFT in the caller's process, call the either the MFTRegisterLocal or MFTRegisterLocalByCLSID function.

This flag does not apply to hardware transforms.

Do not set this flag in the MFTRegister function.
MFT_ENUM_FLAG_TRANSCODE_ONLY
Value: 0x00000020
The MFT is optimized for transcoding rather than playback.
MFT_ENUM_FLAG_SORTANDFILTER
Value: 0x00000040
For enumeration, sort and filter the results. For more information, see the Remarks section of MFTEnumEx.

Do not set this flag in the MFTRegister function.
MFT_ENUM_FLAG_SORTANDFILTER_APPROVED_ONLY
Value: 0x000000C0
MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY
Value: 0x00000140
MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY_EDGEMODE
Value: 0x00000240
MFT_ENUM_FLAG_UNTRUSTED_STOREMFT
Value: 0x00000400
MFT_ENUM_FLAG_ALL
Value: 0x0000003F
Bitwise OR of all the flags, excluding MFT_ENUM_FLAG_SORTANDFILTER.

Do not set this flag in the MFTRegister function.

Remarks

For registration, these flags describe the MFT that is being registered. Some flags do not apply in that context. For enumeration, these flags control which MFTs are selected in the enumeration. For more details about the precise meaning of these flags, see the reference topics for MFTRegister and MFTEnumEx

For registration, the MFT_ENUM_FLAG_SYNCMFT, MFT_ENUM_FLAG_ASYNCMFT, and MFT_ENUM_FLAG_HARDWARE flags are mutually exclusive. For enumeration, these three flags can be combined.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Header mfapi.h

See also

Field of Use Restrictions

MFTEnumEx

MFTRegister

Media Foundation Enumerations