Enums

mfxStatus

enum mfxStatus

Itemizes status codes returned by SDK functions.

Values:

enumerator MFX_ERR_NONE = 0

No error.

enumerator MFX_ERR_UNKNOWN = -1

Unknown error.

enumerator MFX_ERR_NULL_PTR = -2

Null pointer.

enumerator MFX_ERR_UNSUPPORTED = -3

Unsupported feature.

enumerator MFX_ERR_MEMORY_ALLOC = -4

Failed to allocate memory.

enumerator MFX_ERR_NOT_ENOUGH_BUFFER = -5

Insufficient buffer at input/output.

enumerator MFX_ERR_INVALID_HANDLE = -6

Invalid handle.

enumerator MFX_ERR_LOCK_MEMORY = -7

Failed to lock the memory block.

enumerator MFX_ERR_NOT_INITIALIZED = -8

Member function called before initialization.

enumerator MFX_ERR_NOT_FOUND = -9

The specified object is not found.

enumerator MFX_ERR_MORE_DATA = -10

Expect more data at input.

enumerator MFX_ERR_MORE_SURFACE = -11

Expect more surface at output.

enumerator MFX_ERR_ABORTED = -12

Operation aborted.

enumerator MFX_ERR_DEVICE_LOST = -13

Lose the hardware acceleration device.

enumerator MFX_ERR_INCOMPATIBLE_VIDEO_PARAM = -14

Incompatible video parameters.

enumerator MFX_ERR_INVALID_VIDEO_PARAM = -15

Invalid video parameters.

enumerator MFX_ERR_UNDEFINED_BEHAVIOR = -16

Undefined behavior.

enumerator MFX_ERR_DEVICE_FAILED = -17

Device operation failure.

enumerator MFX_ERR_MORE_BITSTREAM = -18

Expect more bitstream buffers at output.

enumerator MFX_ERR_GPU_HANG = -21

Device operation failure caused by GPU hang.

enumerator MFX_ERR_REALLOC_SURFACE = -22

Bigger output surface required.

enumerator MFX_ERR_RESOURCE_MAPPED = -23

Write access is already acquired and user requested another write access, or read access with MFX_MEMORY_NO_WAIT flag.

enumerator MFX_ERR_NOT_IMPLEMENTED = -24

Feature or function not implemented.

enumerator MFX_WRN_IN_EXECUTION = 1

The previous asynchronous operation is in execution.

enumerator MFX_WRN_DEVICE_BUSY = 2

The hardware acceleration device is busy.

enumerator MFX_WRN_VIDEO_PARAM_CHANGED = 3

The video parameters are changed during decoding.

enumerator MFX_WRN_PARTIAL_ACCELERATION = 4

Software acceleration is used.

enumerator MFX_WRN_INCOMPATIBLE_VIDEO_PARAM = 5

Incompatible video parameters.

enumerator MFX_WRN_VALUE_NOT_CHANGED = 6

The value is saturated based on its valid range.

enumerator MFX_WRN_OUT_OF_RANGE = 7

The value is out of valid range.

enumerator MFX_WRN_FILTER_SKIPPED = 10

One of requested filters has been skipped.

enumerator MFX_ERR_NONE_PARTIAL_OUTPUT = 12

Frame is not ready, but bitstream contains partial output.

enumerator MFX_TASK_DONE = MFX_ERR_NONE

Task has been completed.

enumerator MFX_TASK_WORKING = 8

There is some more work to do.

enumerator MFX_TASK_BUSY = 9

Task is waiting for resources.

enumerator MFX_ERR_MORE_DATA_SUBMIT_TASK = -10000

Return MFX_ERR_MORE_DATA but submit internal asynchronous task.

mfxIMPL

typedef mfxI32 mfxIMPL

This enumerator itemizes SDK implementation types. The implementation type is a bit OR’ed value of the base type and any decorative flags.

Note

This enumerator is for legacy dispatcher compatibility. New dispatcher doesn’t use it.

enumerator MFX_IMPL_AUTO = 0x0000

Auto Selection/In or Not Supported/Out.

enumerator MFX_IMPL_SOFTWARE = 0x0001

Pure software implementation.

enumerator MFX_IMPL_HARDWARE = 0x0002

Hardware accelerated implementation (default device).

enumerator MFX_IMPL_AUTO_ANY = 0x0003

Auto selection of any hardware/software implementation.

enumerator MFX_IMPL_HARDWARE_ANY = 0x0004

Auto selection of any hardware implementation.

enumerator MFX_IMPL_HARDWARE2 = 0x0005

Hardware accelerated implementation (2nd device).

enumerator MFX_IMPL_HARDWARE3 = 0x0006

Hardware accelerated implementation (3rd device).

enumerator MFX_IMPL_HARDWARE4 = 0x0007

Hardware accelerated implementation (4th device).

enumerator MFX_IMPL_RUNTIME = 0x0008

This value cannot be used for session initialization. It may be returned by MFXQueryIMPL function to show that session has been initialized in run time mode.

enumerator MFX_IMPL_VIA_ANY = 0x0100

Hardware acceleration can go through any supported OS infrastructure. This is default value, it is used by the SDK if none of MFX_IMPL_VIA_xxx flag is specified by application.

enumerator MFX_IMPL_VIA_D3D9 = 0x0200

Hardware acceleration goes through the Microsoft* Direct3D* 9 infrastructure.

enumerator MFX_IMPL_VIA_D3D11 = 0x0300

Hardware acceleration goes through the Microsoft* Direct3D* 11 infrastructure.

enumerator MFX_IMPL_VIA_VAAPI = 0x0400

Hardware acceleration goes through the Linux* VA-API infrastructure.

enumerator MFX_IMPL_UNSUPPORTED = 0x0000

One of the MFXQueryIMPL returns.

MFX_IMPL_BASETYPE(x)

The application can use the macro MFX_IMPL_BASETYPE(x) to obtain the base implementation type.

mfxImplCapsDeliveryFormat

enum mfxImplCapsDeliveryFormat

Values:

enumerator MFX_IMPLCAPS_IMPLDESCSTRUCTURE = 1

Deliver capabilities as mfxImplDescription structure.

mfxPriority

enum mfxPriority

The mfxPriority enumerator describes the session priority.

Values:

enumerator MFX_PRIORITY_LOW = 0

Low priority: the session operation halts when high priority tasks are executing and more than 75% of the CPU is being used for normal priority tasks.

enumerator MFX_PRIORITY_NORMAL = 1

Normal priority: the session operation is halted if there are high priority tasks.

enumerator MFX_PRIORITY_HIGH = 2

High priority: the session operation blocks other lower priority session operations.

GPUCopy

enumerator MFX_GPUCOPY_DEFAULT = 0

Use default mode for the current SDK implementation.

enumerator MFX_GPUCOPY_ON = 1

Enable GPU accelerated copying.

enumerator MFX_GPUCOPY_OFF = 2

Disable GPU accelerated copying.

PlatformCodeName

enumerator MFX_PLATFORM_UNKNOWN = 0

Unknown platform.

enumerator MFX_PLATFORM_SANDYBRIDGE = 1

Intel(r) microarchitecture code name Sandy Bridge.

enumerator MFX_PLATFORM_IVYBRIDGE = 2

Intel(r) microarchitecture code name Ivy Bridge.

enumerator MFX_PLATFORM_HASWELL = 3

Code name Haswell.

enumerator MFX_PLATFORM_BAYTRAIL = 4

Code name Bay Trail.

enumerator MFX_PLATFORM_BROADWELL = 5

Intel(r) microarchitecture code name Broadwell.

enumerator MFX_PLATFORM_CHERRYTRAIL = 6

Code name Cherry Trail.

enumerator MFX_PLATFORM_SKYLAKE = 7

Intel(r) microarchitecture code name Skylake.

enumerator MFX_PLATFORM_APOLLOLAKE = 8

Code name Apollo Lake.

enumerator MFX_PLATFORM_KABYLAKE = 9

Code name Kaby Lake.

enumerator MFX_PLATFORM_GEMINILAKE = 10

Code name Gemini Lake.

enumerator MFX_PLATFORM_COFFEELAKE = 11

Code name Coffee Lake.

enumerator MFX_PLATFORM_CANNONLAKE = 20

Code name Cannon Lake.

enumerator MFX_PLATFORM_ICELAKE = 30

Code name Ice Lake.

enumerator MFX_PLATFORM_JASPERLAKE = 32

Code name Jasper Lake.

enumerator MFX_PLATFORM_ELKHARTLAKE = 33

Code name Elkhart Lake.

enumerator MFX_PLATFORM_TIGERLAKE = 40

Code name Tiger Lake.

mfxMediaAdapterType

enum mfxMediaAdapterType

The mfxMediaAdapterType enumerator itemizes types of graphics adapters.

Values:

enumerator MFX_MEDIA_UNKNOWN = 0xffff

Unknown type.

enumerator MFX_MEDIA_INTEGRATED = 0

Integrated graphics adapter.

enumerator MFX_MEDIA_DISCRETE = 1

Discrete graphics adapter.

mfxMemoryFlags

enum mfxMemoryFlags

The mfxMemoryFlags enumerator specifies memory access mode.

Values:

enumerator MFX_MAP_READ = 0x1

The surface is mapped for reading.

enumerator MFX_MAP_WRITE = 0x2

The surface is mapped for writing.

enumerator MFX_MAP_READ_WRITE = MFX_MAP_READ | MFX_MAP_WRITE

The surface is mapped for reading and writing.

enumerator MFX_MAP_NOWAIT = 0x10

The mapping would be done immediately without any implicit synchronizations.

Attention

This flag is optional.

mfxResourceType

enum mfxResourceType

Values:

enumerator MFX_RESOURCE_SYSTEM_SURFACE = 1

System memory.

enumerator MFX_RESOURCE_VA_SURFACE = 2

VA surface.

enumerator MFX_RESOURCE_VA_BUFFER = 3

VA buffer.

enumerator MFX_RESOURCE_DX9_SURFACE = 4

IDirect3DSurface9.

enumerator MFX_RESOURCE_DX11_TEXTURE = 5

ID3D11Texture2D.

enumerator MFX_RESOURCE_DX12_RESOURCE = 6

ID3D12Resource.

enumerator MFX_RESOURCE_DMA_RESOURCE = 7

DMA resource.

ColorFourCC

The ColorFourCC enumerator itemizes color formats.

enumerator MFX_FOURCC_NV12 = MFX_MAKEFOURCC('N', 'V', '1', '2')

NV12 color planes. Native format for 4:2:0/8b Gen hardware implementation.

enumerator MFX_FOURCC_NV21 = MFX_MAKEFOURCC('N', 'V', '2', '1')

Same as NV12 but with weaved V and U values.

enumerator MFX_FOURCC_YV12 = MFX_MAKEFOURCC('Y', 'V', '1', '2')

YV12 color planes.

enumerator MFX_FOURCC_IYUV = MFX_MAKEFOURCC('I', 'Y', 'U', 'V')

Same as YV12 except that the U and V plane order is reversed.

enumerator MFX_FOURCC_I420 = MFX_FOURCC_IYUV

Alias for the IYUV color format.

enumerator MFX_FOURCC_NV16 = MFX_MAKEFOURCC('N', 'V', '1', '6')

4:2:2 color format with similar to NV12 layout.

enumerator MFX_FOURCC_YUY2 = MFX_MAKEFOURCC('Y', 'U', 'Y', '2')

YUY2 color planes.

enumerator MFX_FOURCC_RGB565 = MFX_MAKEFOURCC('R', 'G', 'B', '2')

2 bytes per pixel, uint16 in little-endian format, where 0-4 bits are blue, bits 5-10 are green and bits 11-15 are red.

enumerator MFX_FOURCC_RGBP = MFX_MAKEFOURCC('R', 'G', 'B', 'P')

RGB 24 bit planar layout (3 separate channels, 8-bits per sample each). This format should be mapped to D3DFMT_R8G8B8 or VA_FOURCC_RGBP.

enumerator MFX_FOURCC_RGB4 = MFX_MAKEFOURCC('R', 'G', 'B', '4')

RGB4 (RGB32) color planes. BGRA is the order, ‘B’ is 8 MSBs, then 8 bits for ‘G’ channel, then ‘R’ and ‘A’ channels.

enumerator MFX_FOURCC_BGRA = MFX_FOURCC_RGB4

Alias for the RGB4 color format.

enumerator MFX_FOURCC_P8 = 41

Internal SDK color format. The application should use one of the functions below to create such surface, depending on Direct3D version.

Direct3D* 9: IDirectXVideoDecoderService::CreateSurface()

Direct3D* 11: ID3D11Device::CreateBuffer()

enumerator MFX_FOURCC_P8_TEXTURE = MFX_MAKEFOURCC('P', '8', 'M', 'B')

Internal SDK color format. The application should use one of the functions below to create such surface, depending on Direct3D* version.

Direct3D 9: IDirectXVideoDecoderService::CreateSurface()

Direct3D 11: ID3D11Device::CreateTexture2D()

enumerator MFX_FOURCC_P010 = MFX_MAKEFOURCC('P', '0', '1', '0')

P010 color format. This is 10 bit per sample format with similar to NV12 layout. This format should be mapped to DXGI_FORMAT_P010.

enumerator MFX_FOURCC_I010 = MFX_MAKEFOURCC('I', '0', '1', '0')

10-bit YUV 4:2:0, each component has its own plane.

enumerator MFX_FOURCC_P016 = MFX_MAKEFOURCC('P', '0', '1', '6')

P016 color format. This is 16 bit per sample format with similar to NV12 layout. This format should be mapped to DXGI_FORMAT_P016.

enumerator MFX_FOURCC_P210 = MFX_MAKEFOURCC('P', '2', '1', '0')

10 bit per sample 4:2:2 color format with similar to NV12 layout.

enumerator MFX_FOURCC_BGR4 = MFX_MAKEFOURCC('B', 'G', 'R', '4')

RGBA color format. It is similar to MFX_FOURCC_RGB4 but with different order of channels. ‘R’ is 8 MSBs, then 8 bits for ‘G’ channel, then ‘B’ and ‘A’ channels.

enumerator MFX_FOURCC_A2RGB10 = MFX_MAKEFOURCC('R', 'G', '1', '0')

10 bits ARGB color format packed in 32 bits. ‘A’ channel is two MSBs, then ‘R’, then ‘G’ and then ‘B’ channels. This format should be mapped to DXGI_FORMAT_R10G10B10A2_UNORM or D3DFMT_A2R10G10B10.

enumerator MFX_FOURCC_ARGB16 = MFX_MAKEFOURCC('R', 'G', '1', '6')

10 bits ARGB color format packed in 64 bits. ‘A’ channel is 16 MSBs, then ‘R’, then ‘G’ and then ‘B’ channels. This format should be mapped to DXGI_FORMAT_R16G16B16A16_UINT or D3DFMT_A16B16G16R16 formats.

enumerator MFX_FOURCC_ABGR16 = MFX_MAKEFOURCC('B', 'G', '1', '6')

10 bits ABGR color format packed in 64 bits. ‘A’ channel is 16 MSBs, then ‘B’, then ‘G’ and then ‘R’ channels. This format should be mapped to DXGI_FORMAT_R16G16B16A16_UINT or D3DFMT_A16B16G16R16 formats.

enumerator MFX_FOURCC_R16 = MFX_MAKEFOURCC('R', '1', '6', 'U')

16 bits single channel color format. This format should be mapped to DXGI_FORMAT_R16_TYPELESS or D3DFMT_R16F.

enumerator MFX_FOURCC_AYUV = MFX_MAKEFOURCC('A', 'Y', 'U', 'V')

YUV 4:4:4, AYUV color format. This format should be mapped to DXGI_FORMAT_AYUV.

enumerator MFX_FOURCC_AYUV_RGB4 = MFX_MAKEFOURCC('A', 'V', 'U', 'Y')

RGB4 stored in AYUV surface. This format should be mapped to DXGI_FORMAT_AYUV.

enumerator MFX_FOURCC_UYVY = MFX_MAKEFOURCC('U', 'Y', 'V', 'Y')

UYVY color planes. Same as YUY2 except the byte order is reversed.

enumerator MFX_FOURCC_Y210 = MFX_MAKEFOURCC('Y', '2', '1', '0')

10 bit per sample 4:2:2 packed color format with similar to YUY2 layout. This format should be mapped to DXGI_FORMAT_Y210.

enumerator MFX_FOURCC_Y410 = MFX_MAKEFOURCC('Y', '4', '1', '0')

10 bit per sample 4:4:4 packed color format. This format should be mapped to DXGI_FORMAT_Y410.

enumerator MFX_FOURCC_Y216 = MFX_MAKEFOURCC('Y', '2', '1', '6')

16 bit per sample 4:2:2 packed color format with similar to YUY2 layout. This format should be mapped to DXGI_FORMAT_Y216.

enumerator MFX_FOURCC_Y416 = MFX_MAKEFOURCC('Y', '4', '1', '6')

16 bit per sample 4:4:4 packed color format. This format should be mapped to DXGI_FORMAT_Y416.

ChromaFormatIdc

The ChromaFormatIdc enumerator itemizes color-sampling formats.

enumerator MFX_CHROMAFORMAT_MONOCHROME = 0

Monochrome.

enumerator MFX_CHROMAFORMAT_YUV420 = 1

4:2:0 color.

enumerator MFX_CHROMAFORMAT_YUV422 = 2

4:2:2 color.

enumerator MFX_CHROMAFORMAT_YUV444 = 3

4:4:4 color.

enumerator MFX_CHROMAFORMAT_YUV400 = MFX_CHROMAFORMAT_MONOCHROME

Equal to monochrome.

enumerator MFX_CHROMAFORMAT_YUV411 = 4

4:1:1 color.

enumerator MFX_CHROMAFORMAT_YUV422H = MFX_CHROMAFORMAT_YUV422

4:2:2 color, horizontal sub-sampling. It is equal to 4:2:2 color.

enumerator MFX_CHROMAFORMAT_YUV422V = 5

4:2:2 color, vertical sub-sampling.

enumerator MFX_CHROMAFORMAT_RESERVED1 = 6

Reserved.

enumerator MFX_CHROMAFORMAT_JPEG_SAMPLING = 6

Color sampling specified via mfxInfoMFX::SamplingFactorH and SamplingFactorV.

PicStruct

The PicStruct enumerator itemizes picture structure. Use bit-OR’ed values to specify the desired picture type.

enumerator MFX_PICSTRUCT_UNKNOWN = 0x00

Unspecified or mixed progressive/interlaced/field pictures.

enumerator MFX_PICSTRUCT_PROGRESSIVE = 0x01

Progressive picture.

enumerator MFX_PICSTRUCT_FIELD_TFF = 0x02

Top field in first interlaced picture.

enumerator MFX_PICSTRUCT_FIELD_BFF = 0x04

Bottom field in first interlaced picture.

enumerator MFX_PICSTRUCT_FIELD_REPEATED = 0x10

First field repeated: pic_struct=5 or 6 in H.264.

enumerator MFX_PICSTRUCT_FRAME_DOUBLING = 0x20

Double the frame for display: pic_struct=7 in H.264.

enumerator MFX_PICSTRUCT_FRAME_TRIPLING = 0x40

Triple the frame for display: pic_struct=8 in H.264.

enumerator MFX_PICSTRUCT_FIELD_SINGLE = 0x100

Single field in a picture.

enumerator MFX_PICSTRUCT_FIELD_TOP = MFX_PICSTRUCT_FIELD_SINGLE | MFX_PICSTRUCT_FIELD_TFF

Top field in a picture: pic_struct = 1 in H.265.

enumerator MFX_PICSTRUCT_FIELD_BOTTOM = MFX_PICSTRUCT_FIELD_SINGLE | MFX_PICSTRUCT_FIELD_BFF

Bottom field in a picture: pic_struct = 2 in H.265.

enumerator MFX_PICSTRUCT_FIELD_PAIRED_PREV = 0x200

Paired with previous field: pic_struct = 9 or 10 in H.265.

enumerator MFX_PICSTRUCT_FIELD_PAIRED_NEXT = 0x400

Paired with next field: pic_struct = 11 or 12 in H.265

Frame Data Flags

enumerator MFX_TIMESTAMP_UNKNOWN = -1

Indicates that time stamp is unknown for this frame/bitstream portion.

enumerator MFX_FRAMEORDER_UNKNOWN = -1

Unused entry or SDK functions that generate the frame output do not use this frame.

enumerator MFX_FRAMEDATA_ORIGINAL_TIMESTAMP = 0x0001

Indicates the time stamp of this frame is not calculated and is a pass-through of the original time stamp.

Corruption

The Corruption enumerator itemizes the decoding corruption types. It is a bit-OR’ed value of the following.

enumerator MFX_CORRUPTION_MINOR = 0x0001

Minor corruption in decoding certain macro-blocks.

enumerator MFX_CORRUPTION_MAJOR = 0x0002

Major corruption in decoding the frame - incomplete data, for example.

enumerator MFX_CORRUPTION_ABSENT_TOP_FIELD = 0x0004

Top field of frame is absent in bitstream. Only bottom field has been decoded.

enumerator MFX_CORRUPTION_ABSENT_BOTTOM_FIELD = 0x0008

Bottom field of frame is absent in bitstream. Only top filed has been decoded.

enumerator MFX_CORRUPTION_REFERENCE_FRAME = 0x0010

Decoding used a corrupted reference frame. A corrupted reference frame was used for decoding this frame. For example, if the frame uses a reference frame that was decoded with minor/major corruption flag, then this frame is also marked with a reference corruption flag.

enumerator MFX_CORRUPTION_REFERENCE_LIST = 0x0020

The reference list information of this frame does not match what is specified in the Reference Picture Marking Repetition SEI message. (ITU-T H.264 D.1.8 dec_ref_pic_marking_repetition)

Note

Flag MFX_CORRUPTION_ABSENT_TOP_FIELD/MFX_CORRUPTION_ABSENT_BOTTOM_FIELD is set by the AVC decoder when it detects that one of fields is not present in the bitstream. Which field is absent depends on value of bottom_field_flag (ITU-T* H.264 7.4.3).

TimeStampCalc

The TimeStampCalc enumerator itemizes time-stamp calculation methods.

enumerator MFX_TIMESTAMPCALC_UNKNOWN = 0

The time stamp calculation is to base on the input frame rate, if time stamp is not explicitly specified.

enumerator MFX_TIMESTAMPCALC_TELECINE = 1

Adjust time stamp to 29.97fps on 24fps progressively encoded sequences if telecine attributes are available in the bitstream and time stamp is not explicitly specified. The input frame rate must be specified.

IOPattern

The IOPattern enumerator itemizes memory access patterns for SDK functions. Use bit-ORed values to specify an input access pattern and an output access pattern.

enumerator MFX_IOPATTERN_IN_VIDEO_MEMORY = 0x01

Input to SDK functions is a video memory surface.

enumerator MFX_IOPATTERN_IN_SYSTEM_MEMORY = 0x02

Input to SDK functions is a linear buffer directly in system memory or in system memory through an external allocator.

enumerator MFX_IOPATTERN_OUT_VIDEO_MEMORY = 0x10

Output to SDK functions is a video memory surface.

enumerator MFX_IOPATTERN_OUT_SYSTEM_MEMORY = 0x20

Output to SDK functions is a linear buffer directly in system memory or in system memory through an external allocator.

CodecFormatFourCC

The CodecFormatFourCC enumerator itemizes codecs in the FourCC format.

enumerator MFX_CODEC_AVC = MFX_MAKEFOURCC('A', 'V', 'C', ' ')

AVC, H.264, or MPEG-4, part 10 codec.

enumerator MFX_CODEC_HEVC = MFX_MAKEFOURCC('H', 'E', 'V', 'C')

HEVC codec.

enumerator MFX_CODEC_MPEG2 = MFX_MAKEFOURCC('M', 'P', 'G', '2')

MPEG-2 codec.

enumerator MFX_CODEC_VC1 = MFX_MAKEFOURCC('V', 'C', '1', ' ')

VC-1 codec.

enumerator MFX_CODEC_VP9 = MFX_MAKEFOURCC('V', 'P', '9', ' ')

VP9 codec.

enumerator MFX_CODEC_AV1 = MFX_MAKEFOURCC('A', 'V', '1', ' ')

AV1 codec.

enumerator MFX_CODEC_JPEG = MFX_MAKEFOURCC('J', 'P', 'E', 'G')

JPEG codec

CodecProfile

The CodecProfile enumerator itemizes codec profiles for all codecs.

enumerator MFX_PROFILE_UNKNOWN = 0

Unspecified profile.

H.264 profiles:

enumerator MFX_PROFILE_AVC_BASELINE = 66
enumerator MFX_PROFILE_AVC_MAIN = 77
enumerator MFX_PROFILE_AVC_EXTENDED = 88
enumerator MFX_PROFILE_AVC_HIGH = 100
enumerator MFX_PROFILE_AVC_HIGH10 = 110
enumerator MFX_PROFILE_AVC_HIGH_422 = 122
enumerator MFX_PROFILE_AVC_CONSTRAINED_BASELINE = MFX_PROFILE_AVC_BASELINE + MFX_PROFILE_AVC_CONSTRAINT_SET1
enumerator MFX_PROFILE_AVC_CONSTRAINED_HIGH = MFX_PROFILE_AVC_HIGH + MFX_PROFILE_AVC_CONSTRAINT_SET4 + MFX_PROFILE_AVC_CONSTRAINT_SET5

Combined with H.264 profile these flags impose additional constrains. See the H.264 specification for the list of constrains.

enumerator MFX_PROFILE_AVC_CONSTRAINT_SET0 = (0x100 << 0)
enumerator MFX_PROFILE_AVC_CONSTRAINT_SET1 = (0x100 << 1)
enumerator MFX_PROFILE_AVC_CONSTRAINT_SET2 = (0x100 << 2)
enumerator MFX_PROFILE_AVC_CONSTRAINT_SET3 = (0x100 << 3)
enumerator MFX_PROFILE_AVC_CONSTRAINT_SET4 = (0x100 << 4)
enumerator MFX_PROFILE_AVC_CONSTRAINT_SET5 = (0x100 << 5)

Multi-view Video Coding Extension Profiles

enumerator MFX_PROFILE_AVC_MULTIVIEW_HIGH = 118

Multi-view high profile.

enumerator MFX_PROFILE_AVC_STEREO_HIGH = 128

Stereo high profile.

MPEG-2 Profiles

enumerator MFX_PROFILE_MPEG2_SIMPLE = 0x50
enumerator MFX_PROFILE_MPEG2_MAIN = 0x40
enumerator MFX_PROFILE_MPEG2_HIGH = 0x10

VC-1 Profiles

enumerator MFX_PROFILE_VC1_SIMPLE = (0 + 1)
enumerator MFX_PROFILE_VC1_MAIN = (4 + 1)
enumerator MFX_PROFILE_VC1_ADVANCED = (12 + 1)

HEVC Profiles

enumerator MFX_PROFILE_HEVC_MAIN = 1
enumerator MFX_PROFILE_HEVC_MAIN10 = 2
enumerator MFX_PROFILE_HEVC_MAINSP = 3
enumerator MFX_PROFILE_HEVC_REXT = 4
enumerator MFX_PROFILE_HEVC_SCC = 9

VP9 Profiles

enumerator MFX_PROFILE_VP8_0 = 0 + 1
enumerator MFX_PROFILE_VP8_1 = 1 + 1
enumerator MFX_PROFILE_VP8_2 = 2 + 1
enumerator MFX_PROFILE_VP8_3 = 3 + 1

VP9 Profiles

enumerator MFX_PROFILE_VP9_0 = 1
enumerator MFX_PROFILE_VP9_1 = 2
enumerator MFX_PROFILE_VP9_2 = 3
enumerator MFX_PROFILE_VP9_3 = 4

JPEG Profiles

enumerator MFX_PROFILE_JPEG_BASELINE = 1

Baseline JPEG profile.

CodecLevel

The CodecLevel enumerator itemizes codec levels for all codecs.

enumerator MFX_LEVEL_UNKNOWN = 0

Unspecified level.

H.264 Level 1-1.3

enumerator MFX_LEVEL_AVC_1 = 10
enumerator MFX_LEVEL_AVC_1b = 9
enumerator MFX_LEVEL_AVC_11 = 11
enumerator MFX_LEVEL_AVC_12 = 12
enumerator MFX_LEVEL_AVC_13 = 13

H.264 Level 2-2.2

enumerator MFX_LEVEL_AVC_2 = 20
enumerator MFX_LEVEL_AVC_21 = 21
enumerator MFX_LEVEL_AVC_22 = 22

H.264 Level 3-3.2

enumerator MFX_LEVEL_AVC_3 = 30
enumerator MFX_LEVEL_AVC_31 = 31
enumerator MFX_LEVEL_AVC_32 = 32

H.264 Level 4-4.2

enumerator MFX_LEVEL_AVC_4 = 40
enumerator MFX_LEVEL_AVC_41 = 41
enumerator MFX_LEVEL_AVC_42 = 42

H.264 Level 5-5.2

enumerator MFX_LEVEL_AVC_5 = 50
enumerator MFX_LEVEL_AVC_51 = 51
enumerator MFX_LEVEL_AVC_52 = 52

MPEG2 Levels

enumerator MFX_LEVEL_MPEG2_LOW = 0xA
enumerator MFX_LEVEL_MPEG2_MAIN = 0x8
enumerator MFX_LEVEL_MPEG2_HIGH = 0x4
enumerator MFX_LEVEL_MPEG2_HIGH1440 = 0x6

VC-1 Level Low (Simple and Main Profiles)

enumerator MFX_LEVEL_VC1_LOW = (0 + 1)
enumerator MFX_LEVEL_VC1_MEDIAN = (2 + 1)
enumerator MFX_LEVEL_VC1_HIGH = (4 + 1)

VC-1 Advanced Profile Levels

enumerator MFX_LEVEL_VC1_0 = (0x00 + 1)
enumerator MFX_LEVEL_VC1_1 = (0x01 + 1)
enumerator MFX_LEVEL_VC1_2 = (0x02 + 1)
enumerator MFX_LEVEL_VC1_3 = (0x03 + 1)
enumerator MFX_LEVEL_VC1_4 = (0x04 + 1)

HEVC Levels

enumerator MFX_LEVEL_HEVC_1 = 10
enumerator MFX_LEVEL_HEVC_2 = 20
enumerator MFX_LEVEL_HEVC_21 = 21
enumerator MFX_LEVEL_HEVC_3 = 30
enumerator MFX_LEVEL_HEVC_31 = 31
enumerator MFX_LEVEL_HEVC_4 = 40
enumerator MFX_LEVEL_HEVC_41 = 41
enumerator MFX_LEVEL_HEVC_5 = 50
enumerator MFX_LEVEL_HEVC_51 = 51
enumerator MFX_LEVEL_HEVC_52 = 52
enumerator MFX_LEVEL_HEVC_6 = 60
enumerator MFX_LEVEL_HEVC_61 = 61
enumerator MFX_LEVEL_HEVC_62 = 62

HEVC Tiers

enumerator MFX_TIER_HEVC_MAIN = 0
enumerator MFX_TIER_HEVC_HIGH = 0x100

GopOptFlag

The GopOptFlag enumerator itemizes special properties in the GOP (Group of Pictures) sequence.

enumerator MFX_GOP_CLOSED = 1

The encoder generates closed GOP if this flag is set. Frames in this GOP do not use frames in previous GOP as reference.

The encoder generates open GOP if this flag is not set. In this GOP frames prior to the first frame of GOP in display order may use frames from previous GOP as reference. Frames subsequent to the first frame of GOP in display order do not use frames from previous GOP as reference.

The AVC encoder ignores this flag if IdrInterval in mfxInfoMFX structure is set to 0, i.e. if every GOP starts from IDR frame. In this case, GOP is encoded as closed.

This flag does not affect long-term reference frames.

enumerator MFX_GOP_STRICT = 2

The encoder must strictly follow the given GOP structure as defined by parameter GopPicSize, GopRefDist etc in the mfxVideoParam structure. Otherwise, the encoder can adapt the GOP structure for better efficiency, whose range is constrained by parameter GopPicSize and GopRefDist etc. See also description of AdaptiveI and AdaptiveB fields in the mfxExtCodingOption2 structure.

TargetUsage

The TargetUsage enumerator itemizes a range of numbers from MFX_TARGETUSAGE_1, best quality, to MFX_TARGETUSAGE_7, best speed. It indicates trade-offs between quality and speed. The application can use any number in the range. The actual number of supported target usages depends on implementation. If specified target usage is not supported, the SDK encoder will use the closest supported value.

enumerator MFX_TARGETUSAGE_1 = 1

Best quality

enumerator MFX_TARGETUSAGE_2 = 2
enumerator MFX_TARGETUSAGE_3 = 3
enumerator MFX_TARGETUSAGE_4 = 4

Balanced quality and speed.

enumerator MFX_TARGETUSAGE_5 = 5
enumerator MFX_TARGETUSAGE_6 = 6
enumerator MFX_TARGETUSAGE_7 = 7

Best speed

enumerator MFX_TARGETUSAGE_UNKNOWN = 0

Unspecified target usage.

enumerator MFX_TARGETUSAGE_BEST_QUALITY = MFX_TARGETUSAGE_1

Best quality.

enumerator MFX_TARGETUSAGE_BALANCED = MFX_TARGETUSAGE_4

Balanced quality and speed.

enumerator MFX_TARGETUSAGE_BEST_SPEED = MFX_TARGETUSAGE_7

Best speed.

RateControlMethod

The RateControlMethod enumerator itemizes bitrate control methods.

enumerator MFX_RATECONTROL_CBR = 1

Use the constant bitrate control algorithm.

enumerator MFX_RATECONTROL_VBR = 2

Use the variable bitrate control algorithm.

enumerator MFX_RATECONTROL_CQP = 3

Use the constant quantization parameter algorithm.

enumerator MFX_RATECONTROL_AVBR = 4

Use the average variable bitrate control algorithm.

enumerator MFX_RATECONTROL_LA = 8

Use the VBR algorithm with look ahead. It is a special bitrate control mode in the SDK AVC encoder that has been designed to improve encoding quality. It works by performing extensive analysis of several dozen frames before the actual encoding and as a side effect significantly increases encoding delay and memory consumption.

The only available rate control parameter in this mode is mfxInfoMFX::TargetKbps. Two other parameters, MaxKbps and InitialDelayInKB, are ignored. To control LA depth the application can use mfxExtCodingOption2::LookAheadDepth parameter.

This method is not HRD compliant.

enumerator MFX_RATECONTROL_ICQ = 9

Use the Intelligent Constant Quality algorithm. This algorithm improves subjective video quality of encoded stream. Depending on content, it may or may not decrease objective video quality. Only one control parameter is used - quality factor, specified by mfxInfoMFX::ICQQuality.

enumerator MFX_RATECONTROL_VCM = 10

Use the Video Conferencing Mode algorithm. This algorithm is similar to the VBR and uses the same set of parameters mfxInfoMFX::InitialDelayInKB, TargetKbpsandMaxKbps. It is tuned for IPPP GOP pattern and streams with strong temporal correlation between frames. It produces better objective and subjective video quality in these conditions than other bitrate control algorithms. It does not support interlaced content, B frames and produced stream is not HRD compliant.

enumerator MFX_RATECONTROL_LA_ICQ = 11

Use Intelligent Constant Quality algorithm with look ahead. Quality factor is specified by mfxInfoMFX::ICQQuality. To control LA depth the application can use mfxExtCodingOption2::LookAheadDepth parameter.

This method is not HRD compliant.

enumerator MFX_RATECONTROL_LA_HRD = 13

MFX_RATECONTROL_LA_EXT has been removed

Use HRD compliant look ahead rate control algorithm.

enumerator MFX_RATECONTROL_QVBR = 14

Use the variable bitrate control algorithm with constant quality. This algorithm trying to achieve the target subjective quality with the minimum number of bits, while the bitrate constraint and HRD compliance are satisfied. It uses the same set of parameters as VBR and quality factor specified by mfxExtCodingOption3::QVBRQuality.

TrellisControl

The TrellisControl enumerator is used to control trellis quantization in AVC encoder. The application can turn it on or off for any combination of I, P, and B frames by combining different enumerator values. For example, MFX_TRELLIS_I | MFX_TRELLIS_B turns it on for I and B frames.

enumerator MFX_TRELLIS_UNKNOWN = 0

Default value, it is up to the SDK encoder to turn trellis quantization on or off.

enumerator MFX_TRELLIS_OFF = 0x01

Turn trellis quantization off for all frame types.

enumerator MFX_TRELLIS_I = 0x02

Turn trellis quantization on for I frames.

enumerator MFX_TRELLIS_P = 0x04

Turn trellis quantization on for P frames.

enumerator MFX_TRELLIS_B = 0x08

Turn trellis quantization on for B frames.

BRefControl

The BRefControl enumerator is used to control usage of B frames as reference in AVC encoder.

enumerator MFX_B_REF_UNKNOWN = 0

Default value, it is up to the SDK encoder to use B frames as reference.

enumerator MFX_B_REF_OFF = 1

Do not use B frames as reference.

enumerator MFX_B_REF_PYRAMID = 2

Arrange B frames in so-called “B pyramid” reference structure.

LookAheadDownSampling

The LookAheadDownSampling enumerator is used to control down sampling in look ahead bitrate control mode in AVC encoder.

enumerator MFX_LOOKAHEAD_DS_UNKNOWN = 0

Default value, it is up to the SDK encoder what down sampling value to use.

enumerator MFX_LOOKAHEAD_DS_OFF = 1

Do not use down sampling, perform estimation on original size frames. This is the slowest setting that produces the best quality.

enumerator MFX_LOOKAHEAD_DS_2x = 2

Down sample frames two times before estimation.

enumerator MFX_LOOKAHEAD_DS_4x = 3

Down sample frames four times before estimation. This option may significantly degrade quality.

BPSEIControl

The BPSEIControl enumerator is used to control insertion of buffering period SEI in the encoded bitstream.

enumerator MFX_BPSEI_DEFAULT = 0x00

encoder decides when to insert BP SEI.

enumerator MFX_BPSEI_IFRAME = 0x01

BP SEI should be inserted with every I frame

SkipFrame

The SkipFrame enumerator is used to define usage of mfxEncodeCtrl::SkipFrame parameter.

enumerator MFX_SKIPFRAME_NO_SKIP = 0

Frame skipping is disabled, mfxEncodeCtrl::SkipFrame is ignored.

enumerator MFX_SKIPFRAME_INSERT_DUMMY = 1

Skipping is allowed, when mfxEncodeCtrl::SkipFrame is set encoder inserts into bitstream frame where all macroblocks are encoded as skipped. Only non-reference P and B frames can be skipped. If GopRefDist = 1 and mfxEncodeCtrl::SkipFrame is set for reference P frame, it will be encoded as non-reference.

enumerator MFX_SKIPFRAME_INSERT_NOTHING = 2

Similar to MFX_SKIPFRAME_INSERT_DUMMY, but when mfxEncodeCtrl::SkipFrame is set encoder inserts nothing into bitstream.

enumerator MFX_SKIPFRAME_BRC_ONLY = 3

mfxEncodeCtrl::SkipFrame indicates number of missed frames before the current frame. Affects only BRC, current frame will be encoded as usual.

IntraRefreshTypes

The IntraRefreshTypes enumerator itemizes types of intra refresh.

enumerator MFX_REFRESH_NO = 0

Encode without refresh.

enumerator MFX_REFRESH_VERTICAL = 1

Vertical refresh, by column of MBs.

enumerator MFX_REFRESH_HORIZONTAL = 2

Horizontal refresh, by rows of MBs.

enumerator MFX_REFRESH_SLICE = 3

Horizontal refresh by slices without overlapping.

WeightedPred

The WeightedPred enumerator itemizes weighted prediction modes.

enumerator MFX_WEIGHTED_PRED_UNKNOWN = 0

Allow encoder to decide.

enumerator MFX_WEIGHTED_PRED_DEFAULT = 1

Use default weighted prediction.

enumerator MFX_WEIGHTED_PRED_EXPLICIT = 2

Use explicit weighted prediction.

enumerator MFX_WEIGHTED_PRED_IMPLICIT = 3

Use implicit weighted prediction (for B-frames only).

PRefType

The PRefType enumerator itemizes models of reference list construction and DPB management when GopRefDist=1.

enumerator MFX_P_REF_DEFAULT = 0

Allow encoder to decide.

enumerator MFX_P_REF_SIMPLE = 1

Regular sliding window used for DPB removal process.

enumerator MFX_P_REF_PYRAMID = 2

Let N be the max reference list’s size. Encoder treat each N’s frame as ‘strong’ reference and the others as “weak” references. Encoder uses ‘weak’ reference only for prediction of the next frame and removes it from DPB right after. ‘Strong’ references removed from DPB by sliding window.

ScenarioInfo

The ScenarioInfo enumerator itemizes scenarios for the encoding session.

enumerator MFX_SCENARIO_UNKNOWN = 0
enumerator MFX_SCENARIO_DISPLAY_REMOTING = 1
enumerator MFX_SCENARIO_VIDEO_CONFERENCE = 2
enumerator MFX_SCENARIO_ARCHIVE = 3
enumerator MFX_SCENARIO_LIVE_STREAMING = 4
enumerator MFX_SCENARIO_CAMERA_CAPTURE = 5
enumerator MFX_SCENARIO_VIDEO_SURVEILLANCE = 6
enumerator MFX_SCENARIO_GAME_STREAMING = 7
enumerator MFX_SCENARIO_REMOTE_GAMING = 8

ContentInfo

The ContentInfo enumerator itemizes content types for the encoding session.

enumerator MFX_CONTENT_UNKNOWN = 0
enumerator MFX_CONTENT_FULL_SCREEN_VIDEO = 1
enumerator MFX_CONTENT_NON_VIDEO_SCREEN = 2

IntraPredBlockSize/InterPredBlockSize

IntraPredBlockSize/InterPredBlockSize specifies minimum block size of inter-prediction.

enumerator MFX_BLOCKSIZE_UNKNOWN = 0

Unspecified.

enumerator MFX_BLOCKSIZE_MIN_16X16 = 1

16x16

enumerator MFX_BLOCKSIZE_MIN_8X8 = 2

16x16, 8x8

enumerator MFX_BLOCKSIZE_MIN_4X4 = 3

16x16, 8x8, 4x4

MVPrecision

The MVPrecision enumerator specifies the motion estimation precision

enumerator MFX_MVPRECISION_UNKNOWN = 0
enumerator MFX_MVPRECISION_INTEGER = (1 << 0)
enumerator MFX_MVPRECISION_HALFPEL = (1 << 1)
enumerator MFX_MVPRECISION_QUARTERPEL = (1 << 2)

CodingOptionValue

The CodingOptionValue enumerator defines a three-state coding option setting.

enumerator MFX_CODINGOPTION_UNKNOWN = 0

Unspecified.

enumerator MFX_CODINGOPTION_ON = 0x10

Coding option set.

enumerator MFX_CODINGOPTION_OFF = 0x20

Coding option not set.

enumerator MFX_CODINGOPTION_ADAPTIVE = 0x30

Reserved

BitstreamDataFlag

The BitstreamDataFlag enumerator uses bit-ORed values to itemize additional information about the bitstream buffer.

enumerator MFX_BITSTREAM_COMPLETE_FRAME = 0x0001

The bitstream buffer contains a complete frame or complementary field pair of data for the bitstream. For decoding, this means that the decoder can proceed with this buffer without waiting for the start of the next frame, which effectively reduces decoding latency. If this flag is set, but the bitstream buffer contains incomplete frame or pair of field, then decoder will produce corrupted output.

enumerator MFX_BITSTREAM_EOS = 0x0002

The bitstream buffer contains the end of the stream. For decoding, this means that the application does not have any additional bitstream data to send to decoder.

ExtendedBufferID

The ExtendedBufferID enumerator itemizes and defines identifiers (BufferId) for extended buffers or video processing algorithm identifiers.

enumerator MFX_EXTBUFF_THREADS_PARAM = MFX_MAKEFOURCC('T', 'H', 'D', 'P')

mfxExtThreadsParam buffer ID

enumerator MFX_EXTBUFF_CODING_OPTION = MFX_MAKEFOURCC('C', 'D', 'O', 'P')

This extended buffer defines additional encoding controls. See the mfxExtCodingOption structure for details. The application can attach this buffer to the structure for encoding initialization.

enumerator MFX_EXTBUFF_CODING_OPTION_SPSPPS = MFX_MAKEFOURCC('C', 'O', 'S', 'P')

This extended buffer defines sequence header and picture header for encoders and decoders. See the mfxExtCodingOptionSPSPPS structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization, and for obtaining raw headers from the decoders and encoders.

enumerator MFX_EXTBUFF_VPP_DONOTUSE = MFX_MAKEFOURCC('N', 'U', 'S', 'E')

This extended buffer defines a list of VPP algorithms that applications should not use. See the mfxExtVPPDoNotUse structure for details. The application can attach this buffer to the mfxVideoParam structure for video processing initialization.

enumerator MFX_EXTBUFF_VPP_AUXDATA = MFX_MAKEFOURCC('A', 'U', 'X', 'D')

This extended buffer defines auxiliary information at the VPP output. See the mfxExtVppAuxData structure for details. The application can attach this buffer to the mfxEncodeCtrl structure for per-frame encoding control.

enumerator MFX_EXTBUFF_VPP_DENOISE = MFX_MAKEFOURCC('D', 'N', 'I', 'S')

The extended buffer defines control parameters for the VPP denoise filter algorithm. See the mfxExtVPPDenoise structure for details. The application can attach this buffer to the mfxVideoParam structure for video processing initialization.

enumerator MFX_EXTBUFF_VPP_SCENE_ANALYSIS = MFX_MAKEFOURCC('S', 'C', 'L', 'Y')
enumerator MFX_EXTBUFF_VPP_PROCAMP = MFX_MAKEFOURCC('P', 'A', 'M', 'P')

The extended buffer defines control parameters for the VPP ProcAmp filter algorithm. See the mfxExtVPPProcAmp structure for details. The application can attach this buffer to the mfxVideoParam structure for video processing initialization or to the mfxFrameData structure in the mfxFrameSurface1 structure of output surface for per-frame processing configuration.

enumerator MFX_EXTBUFF_VPP_DETAIL = MFX_MAKEFOURCC('D', 'E', 'T', ' ')

The extended buffer defines control parameters for the VPP detail filter algorithm. See the mfxExtVPPDetail structure for details. The application can attach this buffer to the structure for video processing initialization.

enumerator MFX_EXTBUFF_VIDEO_SIGNAL_INFO = MFX_MAKEFOURCC('V', 'S', 'I', 'N')

This extended buffer defines video signal type. See the mfxExtVideoSignalInfo structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization, and for retrieving such information from the decoders.

enumerator MFX_EXTBUFF_VPP_DOUSE = MFX_MAKEFOURCC('D', 'U', 'S', 'E')

This extended buffer defines a list of VPP algorithms that applications should use. See the mfxExtVPPDoUse structure for details. The application can attach this buffer to the structure for video processing initialization.

enumerator MFX_EXTBUFF_AVC_REFLIST_CTRL = MFX_MAKEFOURCC('R', 'L', 'S', 'T')

This extended buffer defines additional encoding controls for reference list. See the mfxExtAVCRefListCtrl structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding & decoding initialization, or the mfxEncodeCtrl structure for per-frame encoding configuration.

enumerator MFX_EXTBUFF_VPP_FRAME_RATE_CONVERSION = MFX_MAKEFOURCC('F', 'R', 'C', ' ')

This extended buffer defines control parameters for the VPP frame rate conversion algorithm. See the mfxExtVPPFrameRateConversion structure for details. The application can attach this buffer to the mfxVideoParam structure for video processing initialization.

enumerator MFX_EXTBUFF_PICTURE_TIMING_SEI = MFX_MAKEFOURCC('P', 'T', 'S', 'E')

This extended buffer configures the H.264 picture timing SEI message. See the mfxExtPictureTimingSEI structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization, or the mfxEncodeCtrl structure for per-frame encoding configuration.

enumerator MFX_EXTBUFF_AVC_TEMPORAL_LAYERS = MFX_MAKEFOURCC('A', 'T', 'M', 'L')

This extended buffer configures the structure of temporal layers inside the encoded H.264 bitstream. See the mfxExtAvcTemporalLayers structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization.

enumerator MFX_EXTBUFF_CODING_OPTION2 = MFX_MAKEFOURCC('C', 'D', 'O', '2')

This extended buffer defines additional encoding controls. See the mfxExtCodingOption2 structure for details. The application can attach this buffer to the structure for encoding initialization.

enumerator MFX_EXTBUFF_VPP_IMAGE_STABILIZATION = MFX_MAKEFOURCC('I', 'S', 'T', 'B')

This extended buffer defines control parameters for the VPP image stabilization filter algorithm. See the mfxExtVPPImageStab structure for details. The application can attach this buffer to the mfxVideoParam structure for video processing initialization.

enumerator MFX_EXTBUFF_ENCODER_CAPABILITY = MFX_MAKEFOURCC('E', 'N', 'C', 'P')

This extended buffer is used to retrieve SDK encoder capability. See the mfxExtEncoderCapability structure for details. The application can attach this buffer to the mfxVideoParam structure before calling MFXVideoENCODE_Query function.

enumerator MFX_EXTBUFF_ENCODER_RESET_OPTION = MFX_MAKEFOURCC('E', 'N', 'R', 'O')

This extended buffer is used to control encoder reset behavior and also to query possible encoder reset outcome. See the mfxExtEncoderResetOption structure for details. The application can attach this buffer to the mfxVideoParam structure before calling MFXVideoENCODE_Query or MFXVideoENCODE_Reset functions.

enumerator MFX_EXTBUFF_ENCODED_FRAME_INFO = MFX_MAKEFOURCC('E', 'N', 'F', 'I')

This extended buffer is used by the SDK encoder to report additional information about encoded picture. See the mfxExtAVCEncodedFrameInfo structure for details. The application can attach this buffer to the mfxBitstream structure before calling MFXVideoENCODE_EncodeFrameAsync function.

enumerator MFX_EXTBUFF_VPP_COMPOSITE = MFX_MAKEFOURCC('V', 'C', 'M', 'P')

This extended buffer is used to control composition of several input surfaces in the one output. In this mode, the VPP skips any other filters. The VPP returns error if any mandatory filter is specified and filter skipped warning for optional filter. The only supported filters are deinterlacing and interlaced scaling.

enumerator MFX_EXTBUFF_VPP_VIDEO_SIGNAL_INFO = MFX_MAKEFOURCC('V', 'V', 'S', 'I')

This extended buffer is used to control transfer matrix and nominal range of YUV frames. The application should provide it during initialization.

enumerator MFX_EXTBUFF_ENCODER_ROI = MFX_MAKEFOURCC('E', 'R', 'O', 'I')

This extended buffer is used by the application to specify different Region Of Interests during encoding. The application should provide it at initialization or at runtime.

enumerator MFX_EXTBUFF_VPP_DEINTERLACING = MFX_MAKEFOURCC('V', 'P', 'D', 'I')

This extended buffer is used by the application to specify different deinterlacing algorithms.

enumerator MFX_EXTBUFF_AVC_REFLISTS = MFX_MAKEFOURCC('R', 'L', 'T', 'S')

This extended buffer specifies reference lists for the SDK encoder.

enumerator MFX_EXTBUFF_DEC_VIDEO_PROCESSING = MFX_MAKEFOURCC('D', 'E', 'C', 'V')

See the mfxExtDecVideoProcessing structure for details.

enumerator MFX_EXTBUFF_VPP_FIELD_PROCESSING = MFX_MAKEFOURCC('F', 'P', 'R', 'O')

The extended buffer defines control parameters for the VPP field-processing algorithm. See the mfxExtVPPFieldProcessing structure for details. The application can attach this buffer to the mfxVideoParam structure for video processing initialization or to the mfxFrameData structure during runtime.

enumerator MFX_EXTBUFF_CODING_OPTION3 = MFX_MAKEFOURCC('C', 'D', 'O', '3')

This extended buffer defines additional encoding controls. See the mfxExtCodingOption3 structure for details. The application can attach this buffer to the structure for encoding initialization.

enumerator MFX_EXTBUFF_CHROMA_LOC_INFO = MFX_MAKEFOURCC('C', 'L', 'I', 'N')

This extended buffer defines chroma samples location information. See the mfxExtChromaLocInfo structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization.

enumerator MFX_EXTBUFF_MBQP = MFX_MAKEFOURCC('M', 'B', 'Q', 'P')

This extended buffer defines per-macroblock QP. See the mfxExtMBQP structure for details. The application can attach this buffer to the mfxEncodeCtrl structure for per-frame encoding configuration.

enumerator MFX_EXTBUFF_MB_FORCE_INTRA = MFX_MAKEFOURCC('M', 'B', 'F', 'I')

This extended buffer defines per-macroblock force intra flag. See the mfxExtMBForceIntra structure for details. The application can attach this buffer to the mfxEncodeCtrl structure for per-frame encoding configuration.

enumerator MFX_EXTBUFF_HEVC_TILES = MFX_MAKEFOURCC('2', '6', '5', 'T')

This extended buffer defines additional encoding controls for HEVC tiles. See the mfxExtHEVCTiles structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization.

enumerator MFX_EXTBUFF_MB_DISABLE_SKIP_MAP = MFX_MAKEFOURCC('M', 'D', 'S', 'M')

This extended buffer defines macroblock map for current frame which forces specified macroblocks to be non skip. See the mfxExtMBDisableSkipMap structure for details. The application can attach this buffer to the mfxEncodeCtrl structure for per-frame encoding configuration.

enumerator MFX_EXTBUFF_HEVC_PARAM = MFX_MAKEFOURCC('2', '6', '5', 'P')

See the mfxExtHEVCParam structure for details.

enumerator MFX_EXTBUFF_DECODED_FRAME_INFO = MFX_MAKEFOURCC('D', 'E', 'F', 'I')

This extended buffer is used by SDK decoders to report additional information about decoded frame. See the mfxExtDecodedFrameInfo structure for more details.

enumerator MFX_EXTBUFF_TIME_CODE = MFX_MAKEFOURCC('T', 'M', 'C', 'D')

See the mfxExtTimeCode structure for more details.

enumerator MFX_EXTBUFF_HEVC_REGION = MFX_MAKEFOURCC('2', '6', '5', 'R')

This extended buffer specifies the region to encode. The application can attach this buffer to the mfxVideoParam structure during HEVC encoder initialization.

enumerator MFX_EXTBUFF_PRED_WEIGHT_TABLE = MFX_MAKEFOURCC('E', 'P', 'W', 'T')

See the mfxExtPredWeightTable structure for details.

enumerator MFX_EXTBUFF_DIRTY_RECTANGLES = MFX_MAKEFOURCC('D', 'R', 'O', 'I')

See the mfxExtDitrtyRect structure for details.

enumerator MFX_EXTBUFF_MOVING_RECTANGLES = MFX_MAKEFOURCC('M', 'R', 'O', 'I')

See the mfxExtMoveRect structure for details.

enumerator MFX_EXTBUFF_CODING_OPTION_VPS = MFX_MAKEFOURCC('C', 'O', 'V', 'P')

See the mfxExtCodingOptionVPS structure for details.

enumerator MFX_EXTBUFF_VPP_ROTATION = MFX_MAKEFOURCC('R', 'O', 'T', ' ')

See the mfxExtVPPRotation structure for details.

enumerator MFX_EXTBUFF_ENCODED_SLICES_INFO = MFX_MAKEFOURCC('E', 'N', 'S', 'I')

See the mfxExtEncodedSlicesInfo structure for details.

enumerator MFX_EXTBUFF_VPP_SCALING = MFX_MAKEFOURCC('V', 'S', 'C', 'L')

See the mfxExtVPPScaling structure for details.

enumerator MFX_EXTBUFF_HEVC_REFLIST_CTRL = MFX_EXTBUFF_AVC_REFLIST_CTRL

This extended buffer defines additional encoding controls for reference list. See the mfxExtAVCRefListCtrl structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding & decoding initialization, or the mfxEncodeCtrl structure for per-frame encoding configuration.

enumerator MFX_EXTBUFF_HEVC_REFLISTS = MFX_EXTBUFF_AVC_REFLISTS

This extended buffer specifies reference lists for the SDK encoder.

enumerator MFX_EXTBUFF_HEVC_TEMPORAL_LAYERS = MFX_EXTBUFF_AVC_TEMPORAL_LAYERS

This extended buffer configures the structure of temporal layers inside the encoded H.264 bitstream. See the mfxExtAvcTemporalLayers structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization.

enumerator MFX_EXTBUFF_VPP_MIRRORING = MFX_MAKEFOURCC('M', 'I', 'R', 'R')

See the mfxExtVPPMirroring structure for details.

enumerator MFX_EXTBUFF_MV_OVER_PIC_BOUNDARIES = MFX_MAKEFOURCC('M', 'V', 'P', 'B')

See the mfxExtMVOverPicBoundaries structure for details.

enumerator MFX_EXTBUFF_VPP_COLORFILL = MFX_MAKEFOURCC('V', 'C', 'L', 'F')

See the mfxExtVPPColorFill structure for details.

enumerator MFX_EXTBUFF_DECODE_ERROR_REPORT = MFX_MAKEFOURCC('D', 'E', 'R', 'R')

This extended buffer is used by SDK decoders to report error information before frames get decoded. See the mfxExtDecodeErrorReport structure for more details.

enumerator MFX_EXTBUFF_VPP_COLOR_CONVERSION = MFX_MAKEFOURCC('V', 'C', 'S', 'C')

See the mfxExtColorConversion structure for details.

enumerator MFX_EXTBUFF_CONTENT_LIGHT_LEVEL_INFO = MFX_MAKEFOURCC('L', 'L', 'I', 'S')

This extended buffer configures HDR SEI message. See the mfxExtContentLightLevelInfo structure for details.

enumerator MFX_EXTBUFF_MASTERING_DISPLAY_COLOUR_VOLUME = MFX_MAKEFOURCC('D', 'C', 'V', 'S')

This extended buffer configures HDR SEI message. See the mfxExtMasteringDisplayColourVolume structure for details.

enumerator MFX_EXTBUFF_MULTI_FRAME_PARAM = MFX_MAKEFOURCC('M', 'F', 'R', 'P')

This extended buffer allow to specify multi-frame submission parameters.

enumerator MFX_EXTBUFF_MULTI_FRAME_CONTROL = MFX_MAKEFOURCC('M', 'F', 'R', 'C')

This extended buffer allow to manage multi-frame submission in runtime.

enumerator MFX_EXTBUFF_ENCODED_UNITS_INFO = MFX_MAKEFOURCC('E', 'N', 'U', 'I')

See the mfxExtEncodedUnitsInfo structure for details.

enumerator MFX_EXTBUFF_VPP_MCTF = MFX_MAKEFOURCC('M', 'C', 'T', 'F')

This video processing algorithm identifier is used to enable MCTF via mfxExtVPPDoUse and together with mfxExtVppMctf

enumerator MFX_EXTBUFF_VP9_SEGMENTATION = MFX_MAKEFOURCC('9', 'S', 'E', 'G')

Extends mfxVideoParam structure with VP9 segmentation parameters. See the mfxExtVP9Segmentation structure for details.

enumerator MFX_EXTBUFF_VP9_TEMPORAL_LAYERS = MFX_MAKEFOURCC('9', 'T', 'M', 'L')

Extends mfxVideoParam structure with parameters for VP9 temporal scalability. See the mfxExtVP9TemporalLayers structure for details.

enumerator MFX_EXTBUFF_VP9_PARAM = MFX_MAKEFOURCC('9', 'P', 'A', 'R')

Extends mfxVideoParam structure with VP9-specific parameters. See the mfxExtVP9Param structure for details.

enumerator MFX_EXTBUFF_AVC_ROUNDING_OFFSET = MFX_MAKEFOURCC('R', 'N', 'D', 'O')

See the mfxExtAVCRoundingOffset structure for details.

enumerator MFX_EXTBUFF_PARTIAL_BITSTREAM_PARAM = MFX_MAKEFOURCC('P', 'B', 'O', 'P')

See the mfxExtPartialBitstreamParam structure for details.

enumerator MFX_EXTBUFF_BRC = MFX_MAKEFOURCC('E', 'B', 'R', 'C')
enumerator MFX_EXTBUFF_VP8_CODING_OPTION = MFX_MAKEFOURCC('V', 'P', '8', 'E')

This extended buffer describes VP8 encoder configuration parameters. See the mfxExtVP8CodingOption structure for details. The application can attach this buffer to the mfxVideoParam structure for encoding initialization.

enumerator MFX_EXTBUFF_JPEG_QT = MFX_MAKEFOURCC('J', 'P', 'G', 'Q')

This extended buffer defines quantization tables for JPEG encoder.

enumerator MFX_EXTBUFF_JPEG_HUFFMAN = MFX_MAKEFOURCC('J', 'P', 'G', 'H')

This extended buffer defines Huffman tables for JPEG encoder.

enumerator MFX_EXTBUFF_ENCODER_IPCM_AREA = MFX_MAKEFOURCC('P', 'C', 'M', 'R')

See the mfxExtEncoderIPCMArea structure for details.

enumerator MFX_EXTBUFF_INSERT_HEADERS = MFX_MAKEFOURCC('S', 'P', 'R', 'E')

See the mfxExtInsertHeaders structure for details.

enumerator MFX_EXTBUFF_MVC_SEQ_DESC = MFX_MAKEFOURCC('M', 'V', 'C', 'D')

This extended buffer describes the MVC stream information of view dependencies, view identifiers, and operation points. See the ITU*-T H.264 specification chapter H.7.3.2.1.4 for details.

enumerator MFX_EXTBUFF_MVC_TARGET_VIEWS = MFX_MAKEFOURCC('M', 'V', 'C', 'T')

This extended buffer defines target views at the decoder output.

enumerator MFX_EXTBUFF_CENC_PARAM = MFX_MAKEFOURCC('C', 'E', 'N', 'P')

This structure is used to pass decryption status report index for Common Encryption usage model. See the mfxExtCencParam structure for more details.

PayloadCtrlFlags

The PayloadCtrlFlags enumerator itemizes additional payload properties.

enumerator MFX_PAYLOAD_CTRL_SUFFIX = 0x00000001

Insert this payload into HEVC Suffix SEI NAL-unit.

ExtMemBufferType

enumerator MFX_MEMTYPE_PERSISTENT_MEMORY = 0x0002

Memory page for persistent use.

ExtMemFrameType

The ExtMemFrameType enumerator specifies the memory type of frame. It is a bit-ORed value of one of the following. For information on working with video memory surfaces, see the section Working with hardware acceleration.

enumerator MFX_MEMTYPE_DXVA2_DECODER_TARGET = 0x0010

Frames are in video memory and belong to video decoder render targets.

enumerator MFX_MEMTYPE_DXVA2_PROCESSOR_TARGET = 0x0020

Frames are in video memory and belong to video processor render targets.

enumerator MFX_MEMTYPE_VIDEO_MEMORY_DECODER_TARGET = MFX_MEMTYPE_DXVA2_DECODER_TARGET

Frames are in video memory and belong to video decoder render targets.

enumerator MFX_MEMTYPE_VIDEO_MEMORY_PROCESSOR_TARGET = MFX_MEMTYPE_DXVA2_PROCESSOR_TARGET

Frames are in video memory and belong to video processor render targets.

enumerator MFX_MEMTYPE_SYSTEM_MEMORY = 0x0040

The frames are in system memory.

enumerator MFX_MEMTYPE_RESERVED1 = 0x0080
enumerator MFX_MEMTYPE_FROM_ENCODE = 0x0100

Allocation request comes from an ENCODE function

enumerator MFX_MEMTYPE_FROM_DECODE = 0x0200

Allocation request comes from a DECODE function

enumerator MFX_MEMTYPE_FROM_VPPIN = 0x0400

Allocation request comes from a VPP function for input frame allocation

enumerator MFX_MEMTYPE_FROM_VPPOUT = 0x0800

Allocation request comes from a VPP function for output frame allocation

enumerator MFX_MEMTYPE_FROM_ENC = 0x2000

Allocation request comes from an ENC function

enumerator MFX_MEMTYPE_INTERNAL_FRAME = 0x0001

Allocation request for internal frames

enumerator MFX_MEMTYPE_EXTERNAL_FRAME = 0x0002

Allocation request for I/O frames

enumerator MFX_MEMTYPE_EXPORT_FRAME = 0x0008

Application requests frame handle export to some associated object. For Linux* frame handle can be considered to be exported to DRM Prime FD, DRM FLink or DRM FrameBuffer Handle. Specifics of export types and export procedure depends on external frame allocator implementation

enumerator MFX_MEMTYPE_SHARED_RESOURCE = MFX_MEMTYPE_EXPORT_FRAME

For DX11 allocation use shared resource bind flag.

enumerator MFX_MEMTYPE_VIDEO_MEMORY_ENCODER_TARGET = 0x1000

Frames are in video memory and belong to video encoder render targets.

FrameType

The FrameType enumerator itemizes frame types. Use bit-ORed values to specify all that apply.

enumerator MFX_FRAMETYPE_UNKNOWN = 0x0000

Frame type is unspecified.

enumerator MFX_FRAMETYPE_I = 0x0001

This frame or the first field is encoded as an I frame/field.

enumerator MFX_FRAMETYPE_P = 0x0002

This frame or the first field is encoded as an P frame/field.

enumerator MFX_FRAMETYPE_B = 0x0004

This frame or the first field is encoded as an B frame/field.

enumerator MFX_FRAMETYPE_S = 0x0008

This frame or the first field is either an SI- or SP-frame/field.

enumerator MFX_FRAMETYPE_REF = 0x0040

This frame or the first field is encoded as a reference.

enumerator MFX_FRAMETYPE_IDR = 0x0080

This frame or the first field is encoded as an IDR.

enumerator MFX_FRAMETYPE_xI = 0x0100

The second field is encoded as an I-field.

enumerator MFX_FRAMETYPE_xP = 0x0200

The second field is encoded as an P-field.

enumerator MFX_FRAMETYPE_xB = 0x0400

The second field is encoded as an S-field.

enumerator MFX_FRAMETYPE_xS = 0x0800

The second field is an SI- or SP-field.

enumerator MFX_FRAMETYPE_xREF = 0x4000

The second field is encoded as a reference.

enumerator MFX_FRAMETYPE_xIDR = 0x8000

The second field is encoded as an IDR.

MfxNalUnitType

The MfxNalUnitType enumerator specifies NAL unit types supported by the SDK HEVC encoder.

enumerator MFX_HEVC_NALU_TYPE_UNKNOWN = 0

The SDK encoder will decide what NAL unit type to use.

enumerator MFX_HEVC_NALU_TYPE_TRAIL_N = (0 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_TRAIL_R = (1 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_RADL_N = (6 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_RADL_R = (7 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_RASL_N = (8 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_RASL_R = (9 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_IDR_W_RADL = (19 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_IDR_N_LP = (20 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

enumerator MFX_HEVC_NALU_TYPE_CRA_NUT = (21 + 1)

See Table 7-1 of the ITU-T H.265 specification for the definition of these type.

mfxHandleType

enum mfxHandleType

The mfxHandleType enumerator itemizes system handle types that SDK implementations might use.

Values:

enumerator MFX_HANDLE_DIRECT3D_DEVICE_MANAGER9 = 1

Pointer to the IDirect3DDeviceManager9 interface. See Working with Microsoft* DirectX* Applications for more details on how to use this handle.

enumerator MFX_HANDLE_D3D9_DEVICE_MANAGER = MFX_HANDLE_DIRECT3D_DEVICE_MANAGER9

Pointer to the IDirect3DDeviceManager9 interface. See Working with Microsoft* DirectX* Applications for more details on how to use this handle.

enumerator MFX_HANDLE_RESERVED1 = 2
enumerator MFX_HANDLE_D3D11_DEVICE = 3

Pointer to the ID3D11Device interface. See Working with Microsoft* DirectX* Applications for more details on how to use this handle.

enumerator MFX_HANDLE_VA_DISPLAY = 4

Pointer to VADisplay interface. See Working with VA-API Applications for more details on how to use this handle.

enumerator MFX_HANDLE_RESERVED3 = 5
enumerator MFX_HANDLE_VA_CONFIG_ID = 6

Pointer to VAConfigID interface. It represents external VA config for Common Encryption usage model.

enumerator MFX_HANDLE_VA_CONTEXT_ID = 7

Pointer to VAContextID interface. It represents external VA context for Common Encryption usage model.

enumerator MFX_HANDLE_CM_DEVICE = 8

mfxSkipMode

enum mfxSkipMode

The mfxSkipMode enumerator describes the decoder skip-mode options.

Values:

enumerator MFX_SKIPMODE_NOSKIP = 0
enumerator MFX_SKIPMODE_MORE = 1

Do not skip any frames.

enumerator MFX_SKIPMODE_LESS = 2

Skip more frames.

FrcAlgm

The FrcAlgm enumerator itemizes frame rate conversion algorithms. See description of mfxExtVPPFrameRateConversion structure for more details.

enumerator MFX_FRCALGM_PRESERVE_TIMESTAMP = 0x0001

Frame dropping/repetition based frame rate conversion algorithm with preserved original time stamps. Any inserted frames will carry MFX_TIMESTAMP_UNKNOWN.

enumerator MFX_FRCALGM_DISTRIBUTED_TIMESTAMP = 0x0002

Frame dropping/repetition based frame rate conversion algorithm with distributed time stamps. The algorithm distributes output time stamps evenly according to the output frame rate.

enumerator MFX_FRCALGM_FRAME_INTERPOLATION = 0x0004

Frame rate conversion algorithm based on frame interpolation. This flag may be combined with MFX_FRCALGM_PRESERVE_TIMESTAMP or MFX_FRCALGM_DISTRIBUTED_TIMESTAMP flags.

ImageStabMode

The ImageStabMode enumerator itemizes image stabilization modes. See description of mfxExtVPPImageStab structure for more details.

enumerator MFX_IMAGESTAB_MODE_UPSCALE = 0x0001

Upscale mode.

enumerator MFX_IMAGESTAB_MODE_BOXING = 0x0002

Boxing mode.

InsertHDRPayload

The InsertHDRPayload enumerator itemizes HDR payloads insertion rules.

enumerator MFX_PAYLOAD_OFF = 0

Don’t insert payload.

enumerator MFX_PAYLOAD_IDR = 1

Insert payload on IDR frames.

LongTermIdx

The LongTermIdx specifies long term index of picture control

enumerator MFX_LONGTERM_IDX_NO_IDX = 0xFFFF

Long term index of picture is undefined.

TransferMatrix

The TransferMatrix enumerator itemizes color transfer matrices.

enumerator MFX_TRANSFERMATRIX_UNKNOWN = 0

Transfer matrix isn’t specified

enumerator MFX_TRANSFERMATRIX_BT709 = 1

Transfer matrix from ITU-R BT.709 standard.

enumerator MFX_TRANSFERMATRIX_BT601 = 2

Transfer matrix from ITU-R BT.601 standard.

NominalRange

The NominalRange enumerator itemizes pixel’s value nominal range.

enumerator MFX_NOMINALRANGE_UNKNOWN = 0

Range isn’t defined.

enumerator MFX_NOMINALRANGE_0_255 = 1

Range is [0,255].

enumerator MFX_NOMINALRANGE_16_235 = 2

Range is [16,235].

ROImode

The ROImode enumerator itemizes QP adjustment mode for ROIs.

enumerator MFX_ROI_MODE_PRIORITY = 0

Priority mode.

enumerator MFX_ROI_MODE_QP_DELTA = 1

QP mode

enumerator MFX_ROI_MODE_QP_VALUE = 2

Absolute QP

DeinterlacingMode

The DeinterlacingMode enumerator itemizes VPP deinterlacing modes.

enumerator MFX_DEINTERLACING_BOB = 1

BOB deinterlacing mode.

enumerator MFX_DEINTERLACING_ADVANCED = 2

Advanced deinterlacing mode.

enumerator MFX_DEINTERLACING_AUTO_DOUBLE = 3

Auto mode with deinterlacing double frame rate output.

enumerator MFX_DEINTERLACING_AUTO_SINGLE = 4

Auto mode with deinterlacing single frame rate output.

enumerator MFX_DEINTERLACING_FULL_FR_OUT = 5

Deinterlace only mode with full frame rate output.

enumerator MFX_DEINTERLACING_HALF_FR_OUT = 6

Deinterlace only Mode with half frame rate output.

enumerator MFX_DEINTERLACING_24FPS_OUT = 7

24 fps fixed output mode.

enumerator MFX_DEINTERLACING_FIXED_TELECINE_PATTERN = 8

Fixed telecine pattern removal mode.

enumerator MFX_DEINTERLACING_30FPS_OUT = 9

30 fps fixed output mode.

enumerator MFX_DEINTERLACING_DETECT_INTERLACE = 10

Only interlace detection.

enumerator MFX_DEINTERLACING_ADVANCED_NOREF = 11

Advanced deinterlacing mode without using of reference frames.

enumerator MFX_DEINTERLACING_ADVANCED_SCD = 12

Advanced deinterlacing mode with scene change detection.

enumerator MFX_DEINTERLACING_FIELD_WEAVING = 13

Field weaving.

TelecinePattern

The TelecinePattern enumerator itemizes telecine patterns.

enumerator MFX_TELECINE_PATTERN_32 = 0

3:2 telecine.

enumerator MFX_TELECINE_PATTERN_2332 = 1

2:3:3:2 telecine.

enumerator MFX_TELECINE_PATTERN_FRAME_REPEAT = 2

One frame repeat telecine.

enumerator MFX_TELECINE_PATTERN_41 = 3

4:1 telecine.

enumerator MFX_TELECINE_POSITION_PROVIDED = 4

User must provide position inside a sequence of 5 frames where the artifacts start.

VPPFieldProcessingMode

The VPPFieldProcessingMode enumerator is used to control VPP field processing algorithm.

enumerator MFX_VPP_COPY_FRAME = 0x01

Copy the whole frame.

enumerator MFX_VPP_COPY_FIELD = 0x02

Copy only one field.

enumerator MFX_VPP_SWAP_FIELDS = 0x03

Swap top and bottom fields.

PicType

The PicType enumerator itemizes picture type.

enumerator MFX_PICTYPE_UNKNOWN = 0x00

Picture type is unknown.

enumerator MFX_PICTYPE_FRAME = 0x01

Picture is a frame.

enumerator MFX_PICTYPE_TOPFIELD = 0x02

Picture is a top field.

enumerator MFX_PICTYPE_BOTTOMFIELD = 0x04

Picture is a bottom field.

MBQPMode

The MBQPMode enumerator itemizes QP update modes.

enumerator MFX_MBQP_MODE_QP_VALUE = 0

QP array contains QP values.

enumerator MFX_MBQP_MODE_QP_DELTA = 1

QP array contains deltas for QP.

enumerator MFX_MBQP_MODE_QP_ADAPTIVE = 2

QP array contains deltas for QP or absolute QP values.

GeneralConstraintFlags

The GeneralConstraintFlags enumerator uses bit-ORed values to itemize HEVC bitstream indications for specific profiles. Each value indicates for format range extensions profiles.

enumerator MFX_HEVC_CONSTR_REXT_MAX_12BIT = (1 << 0)
enumerator MFX_HEVC_CONSTR_REXT_MAX_10BIT = (1 << 1)
enumerator MFX_HEVC_CONSTR_REXT_MAX_8BIT = (1 << 2)
enumerator MFX_HEVC_CONSTR_REXT_MAX_422CHROMA = (1 << 3)
enumerator MFX_HEVC_CONSTR_REXT_MAX_420CHROMA = (1 << 4)
enumerator MFX_HEVC_CONSTR_REXT_MAX_MONOCHROME = (1 << 5)
enumerator MFX_HEVC_CONSTR_REXT_INTRA = (1 << 6)
enumerator MFX_HEVC_CONSTR_REXT_ONE_PICTURE_ONLY = (1 << 7)
enumerator MFX_HEVC_CONSTR_REXT_LOWER_BIT_RATE = (1 << 8)

SampleAdaptiveOffset

The SampleAdaptiveOffset enumerator uses bit-ORed values to itemize corresponding HEVC encoding feature.

enumerator MFX_SAO_UNKNOWN = 0x00

Use default value for platform/TargetUsage.

enumerator MFX_SAO_DISABLE = 0x01

Disable SAO. If set during Init leads to SPS sample_adaptive_offset_enabled_flag = 0. If set during Runtime, leads to to slice_sao_luma_flag = 0 and slice_sao_chroma_flag = 0 for current frame.

enumerator MFX_SAO_ENABLE_LUMA = 0x02

Enable SAO for luma (slice_sao_luma_flag = 1).

enumerator MFX_SAO_ENABLE_CHROMA = 0x04

Enable SAO for chroma (slice_sao_chroma_flag = 1).

ErrorTypes

The ErrorTypes enumerator uses bit-ORed values to itemize bitstream error types.

enumerator MFX_ERROR_PPS = (1 << 0)

Invalid/corrupted PPS.

enumerator MFX_ERROR_SPS = (1 << 1)

Invalid/corrupted SPS.

enumerator MFX_ERROR_SLICEHEADER = (1 << 2)

Invalid/corrupted slice header.

enumerator MFX_ERROR_SLICEDATA = (1 << 3)

Invalid/corrupted slice data.

enumerator MFX_ERROR_FRAME_GAP = (1 << 4)

Missed frames.

HEVCRegionType

The HEVCRegionType enumerator itemizes type of HEVC region.

enumerator MFX_HEVC_REGION_SLICE = 0

Slice type.

HEVCRegionEncoding

The HEVCRegionEncoding enumerator itemizes HEVC region’s encoding.

enumerator MFX_HEVC_REGION_ENCODING_ON = 0
enumerator MFX_HEVC_REGION_ENCODING_OFF = 1

Angle

The Angle enumerator itemizes valid rotation angles.

enumerator MFX_ANGLE_0 = 0

0 degrees.

enumerator MFX_ANGLE_90 = 90

90 degrees.

enumerator MFX_ANGLE_180 = 180

180 degrees.

enumerator MFX_ANGLE_270 = 270

270 degrees.

ScalingMode

The ScalingMode enumerator itemizes variants of scaling filter implementation.

enumerator MFX_SCALING_MODE_DEFAULT = 0

Default scaling mode. SDK selects the most appropriate scaling method.

enumerator MFX_SCALING_MODE_LOWPOWER = 1

Low power scaling mode which is applicable for platform SDK implementations. The exact scaling algorithm is defined by the SDK.

enumerator MFX_SCALING_MODE_QUALITY = 2

The best quality scaling mode

InterpolationMode

The InterpolationMode enumerator specifies type of interpolation method used by VPP scaling filter.

enumerator MFX_INTERPOLATION_DEFAULT = 0

Default interpolation mode for scaling. SDK selects the most appropriate

scaling method.

enumerator MFX_INTERPOLATION_NEAREST_NEIGHBOR = 1

Nearest neighbor interpolation method

enumerator MFX_INTERPOLATION_BILINEAR = 2

Bilinear interpolation method

enumerator MFX_INTERPOLATION_ADVANCED = 3

Advanced interpolation method is defined by each SDK and usually gives best quality

MirroringType

The MirroringType enumerator itemizes mirroring types.

enumerator MFX_MIRRORING_DISABLED = 0
enumerator MFX_MIRRORING_HORIZONTAL = 1
enumerator MFX_MIRRORING_VERTICAL = 2

ChromaSiting

The ChromaSiting enumerator defines chroma location. Use bit-OR’ed values to specify the desired location.

enumerator MFX_CHROMA_SITING_UNKNOWN = 0x0000

Unspecified.

enumerator MFX_CHROMA_SITING_VERTICAL_TOP = 0x0001

Chroma samples are co-sited vertically on the top with the luma samples.

enumerator MFX_CHROMA_SITING_VERTICAL_CENTER = 0x0002

Chroma samples are not co-sited vertically with the luma samples.

enumerator MFX_CHROMA_SITING_VERTICAL_BOTTOM = 0x0004

Chroma samples are co-sited vertically on the bottom with the luma samples.

enumerator MFX_CHROMA_SITING_HORIZONTAL_LEFT = 0x0010

Chroma samples are co-sited horizontally on the left with the luma samples.

enumerator MFX_CHROMA_SITING_HORIZONTAL_CENTER = 0x0020

Chroma samples are not co-sited horizontally with the luma samples.

VP9ReferenceFrame

The VP9ReferenceFrame enumerator itemizes reference frame type by the mfxVP9SegmentParam::ReferenceFrame parameter.

enumerator MFX_VP9_REF_INTRA = 0

Intra.

enumerator MFX_VP9_REF_LAST = 1

Last.

enumerator MFX_VP9_REF_GOLDEN = 2

Golden.

enumerator MFX_VP9_REF_ALTREF = 3

Alternative reference.

SegmentIdBlockSize

The SegmentIdBlockSize enumerator indicates the block size represented by each segment_id in segmentation map. These values are used with the mfxExtVP9Segmentation::SegmentIdBlockSize parameter.

enumerator MFX_VP9_SEGMENT_ID_BLOCK_SIZE_UNKNOWN = 0

Unspecified block size.

enumerator MFX_VP9_SEGMENT_ID_BLOCK_SIZE_8x8 = 8

8x8 block size.

enumerator MFX_VP9_SEGMENT_ID_BLOCK_SIZE_16x16 = 16

16x16 block size.

enumerator MFX_VP9_SEGMENT_ID_BLOCK_SIZE_32x32 = 32

32x32 block size.

enumerator MFX_VP9_SEGMENT_ID_BLOCK_SIZE_64x64 = 64

64x64 block size.

SegmentFeature

The SegmentFeature enumerator indicates features enabled for the segment. These values are used with the mfxVP9SegmentParam::FeatureEnabled parameter.

enumerator MFX_VP9_SEGMENT_FEATURE_QINDEX = 0x0001

Quantization index delta.

enumerator MFX_VP9_SEGMENT_FEATURE_LOOP_FILTER = 0x0002

Loop filter level delta.

enumerator MFX_VP9_SEGMENT_FEATURE_REFERENCE = 0x0004

Reference frame.

enumerator MFX_VP9_SEGMENT_FEATURE_SKIP = 0x0008

Skip.

mfxComponentType

enum mfxComponentType

The mfxComponentType enumerator describes type of workload passed to MFXQueryAdapters.

Values:

enumerator MFX_COMPONENT_ENCODE = 1

Encode workload.

enumerator MFX_COMPONENT_DECODE = 2

Decode workload.

enumerator MFX_COMPONENT_VPP = 3

VPP workload.

PartialBitstreamOutput

The PartialBitstreamOutput enumerator indicates flags of partial bitstream output type.

enumerator MFX_PARTIAL_BITSTREAM_NONE = 0

Don’t use partial output

enumerator MFX_PARTIAL_BITSTREAM_SLICE = 1

Partial bitstream output will be aligned to slice granularity

enumerator MFX_PARTIAL_BITSTREAM_BLOCK = 2

Partial bitstream output will be aligned to user-defined block size granularity

enumerator MFX_PARTIAL_BITSTREAM_ANY = 3

Partial bitstream output will be return any coded data available at the end of SyncOperation timeout

BRCStatus

The BRCStatus enumerator itemizes instructions to the SDK encoder by mfxExtBrc::Update.

enumerator MFX_BRC_OK = 0

CodedFrameSize is acceptable, no further recoding/padding/skip required, proceed to next frame.

enumerator MFX_BRC_BIG_FRAME = 1

Coded frame is too big, recoding required.

enumerator MFX_BRC_SMALL_FRAME = 2

Coded frame is too small, recoding required.

enumerator MFX_BRC_PANIC_BIG_FRAME = 3

Coded frame is too big, no further recoding possible - skip frame.

enumerator MFX_BRC_PANIC_SMALL_FRAME = 4

Coded frame is too small, no further recoding possible - required padding to mfxBRCFrameStatus::MinFrameSize.

Rotation

The Rotation enumerator itemizes the JPEG rotation options.

enumerator MFX_ROTATION_0 = 0

No rotation.

enumerator MFX_ROTATION_90 = 1

90 degree rotation.

enumerator MFX_ROTATION_180 = 2

180 degree rotation.

enumerator MFX_ROTATION_270 = 3

270 degree rotation.

JPEGColorFormat

The JPEGColorFormat enumerator itemizes the JPEG color format options.

enumerator MFX_JPEG_COLORFORMAT_UNKNOWN = 0
enumerator MFX_JPEG_COLORFORMAT_YCbCr = 1

Unknown color format. The SDK decoder tries to determine color format from available in bitstream information. If such information is not present, then MFX_JPEG_COLORFORMAT_YCbCr color format is assumed.

enumerator MFX_JPEG_COLORFORMAT_RGB = 2

Bitstream contains Y, Cb and Cr components.

JPEGScanType

The JPEGScanType enumerator itemizes the JPEG scan types.

enumerator MFX_SCANTYPE_UNKNOWN = 0

Unknown scan type.

enumerator MFX_SCANTYPE_INTERLEAVED = 1

Interleaved scan.

enumerator MFX_SCANTYPE_NONINTERLEAVED = 2

Non-interleaved scan.

Protected

The Protected enumerator describes the protection schemes.

enumerator MFX_PROTECTION_CENC_WV_CLASSIC = 0x0004

The protection scheme is based on the Widevine* DRM from Google*.

enumerator MFX_PROTECTION_CENC_WV_GOOGLE_DASH = 0x0005

The protection scheme is based on the Widevine* Modular DRM* from Google*.