diff --git a/Makefile.am b/Makefile.am index e9cb100..40be4b1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -87,6 +87,9 @@ pkginclude_HEADERS = \ mfx/mfxvstructures.h \ mfx/mfxbrc.h \ mfx/mfxfei.h \ - mfx/mfxfeihevc.h + mfx/mfxfeihevc.h \ + mfx/ts_ext_buffers_decl.h \ + mfx/ts_struct_decl.h \ + mfx/ts_typedef.h pkgincludedir = $(includedir)/mfx diff --git a/mfx/mfxaudio.h b/mfx/mfxaudio.h index fd5872f..032fb01 100644 --- a/mfx/mfxaudio.h +++ b/mfx/mfxaudio.h @@ -32,26 +32,26 @@ extern "C" #endif /* AudioCORE */ -mfxStatus MFX_CDECL MFXAudioCORE_SyncOperation(mfxSession session, mfxSyncPoint syncp, mfxU32 wait); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioCORE_SyncOperation(mfxSession session, mfxSyncPoint syncp, mfxU32 wait); /* AudioENCODE */ -mfxStatus MFX_CDECL MFXAudioENCODE_Query(mfxSession session, mfxAudioParam *in, mfxAudioParam *out); -mfxStatus MFX_CDECL MFXAudioENCODE_QueryIOSize(mfxSession session, mfxAudioParam *par, mfxAudioAllocRequest *request); -mfxStatus MFX_CDECL MFXAudioENCODE_Init(mfxSession session, mfxAudioParam *par); -mfxStatus MFX_CDECL MFXAudioENCODE_Reset(mfxSession session, mfxAudioParam *par); -mfxStatus MFX_CDECL MFXAudioENCODE_Close(mfxSession session); -mfxStatus MFX_CDECL MFXAudioENCODE_GetAudioParam(mfxSession session, mfxAudioParam *par); -mfxStatus MFX_CDECL MFXAudioENCODE_EncodeFrameAsync(mfxSession session, mfxAudioFrame *frame, mfxBitstream *bs, mfxSyncPoint *syncp); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioENCODE_Query(mfxSession session, mfxAudioParam *in, mfxAudioParam *out); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioENCODE_QueryIOSize(mfxSession session, mfxAudioParam *par, mfxAudioAllocRequest *request); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioENCODE_Init(mfxSession session, mfxAudioParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioENCODE_Reset(mfxSession session, mfxAudioParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioENCODE_Close(mfxSession session); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioENCODE_GetAudioParam(mfxSession session, mfxAudioParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioENCODE_EncodeFrameAsync(mfxSession session, mfxAudioFrame *frame, mfxBitstream *bs, mfxSyncPoint *syncp); /* AudioDECODE */ -mfxStatus MFX_CDECL MFXAudioDECODE_Query(mfxSession session, mfxAudioParam *in, mfxAudioParam *out); -mfxStatus MFX_CDECL MFXAudioDECODE_DecodeHeader(mfxSession session, mfxBitstream *bs, mfxAudioParam* par); -mfxStatus MFX_CDECL MFXAudioDECODE_Init(mfxSession session, mfxAudioParam *par); -mfxStatus MFX_CDECL MFXAudioDECODE_Reset(mfxSession session, mfxAudioParam *par); -mfxStatus MFX_CDECL MFXAudioDECODE_Close(mfxSession session); -mfxStatus MFX_CDECL MFXAudioDECODE_QueryIOSize(mfxSession session, mfxAudioParam *par, mfxAudioAllocRequest *request); -mfxStatus MFX_CDECL MFXAudioDECODE_GetAudioParam(mfxSession session, mfxAudioParam *par); -mfxStatus MFX_CDECL MFXAudioDECODE_DecodeFrameAsync(mfxSession session, mfxBitstream *bs, mfxAudioFrame *frame, mfxSyncPoint *syncp); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_Query(mfxSession session, mfxAudioParam *in, mfxAudioParam *out); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_DecodeHeader(mfxSession session, mfxBitstream *bs, mfxAudioParam* par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_Init(mfxSession session, mfxAudioParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_Reset(mfxSession session, mfxAudioParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_Close(mfxSession session); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_QueryIOSize(mfxSession session, mfxAudioParam *par, mfxAudioAllocRequest *request); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_GetAudioParam(mfxSession session, mfxAudioParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioDECODE_DecodeFrameAsync(mfxSession session, mfxBitstream *bs, mfxAudioFrame *frame, mfxSyncPoint *syncp); #ifdef __cplusplus } // extern "C" diff --git a/mfx/mfxcommon.h b/mfx/mfxcommon.h index 875b47f..0171d6d 100644 --- a/mfx/mfxcommon.h +++ b/mfx/mfxcommon.h @@ -179,6 +179,8 @@ enum { MFX_PLATFORM_JASPERLAKE = 32, MFX_PLATFORM_ELKHARTLAKE = 33, MFX_PLATFORM_TIGERLAKE = 40, + MFX_PLATFORM_ROCKETLAKE = 42, + MFX_PLATFORM_ALDERLAKE_S = 43, MFX_PLATFORM_KEEMBAY = 50, }; diff --git a/mfx/mfxdefs.h b/mfx/mfxdefs.h index 07acf55..2c288c7 100644 --- a/mfx/mfxdefs.h +++ b/mfx/mfxdefs.h @@ -21,7 +21,7 @@ #define __MFXDEFS_H__ #define MFX_VERSION_MAJOR 1 -#define MFX_VERSION_MINOR 34 +#define MFX_VERSION_MINOR 35 // MFX_VERSION_NEXT is always +1 from last public release // may be enforced by MFX_VERSION_USE_LATEST define @@ -103,6 +103,52 @@ extern "C" #define MFX_INFINITE 0xFFFFFFFF +#if !defined(MFX_DEPRECATED_OFF) && (MFX_VERSION >= 1034) +#define MFX_DEPRECATED_OFF +#endif + +#ifndef MFX_DEPRECATED_OFF + #if defined(__cplusplus) && __cplusplus >= 201402L + #define MFX_DEPRECATED [[deprecated]] + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg [[deprecated]] + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) + #elif defined(__clang__) + #define MFX_DEPRECATED __attribute__((deprecated)) + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg __attribute__((deprecated)) + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) + #elif defined(__INTEL_COMPILER) + #if (defined(_WIN32) || defined(_WIN64)) + #define MFX_DEPRECATED __declspec(deprecated) + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) __pragma(deprecated(arg)) + #elif defined(__linux__) + #define MFX_DEPRECATED __attribute__((deprecated)) + #if defined(__cplusplus) + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg __attribute__((deprecated)) + #else + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg + #endif + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) + #endif + #elif defined(_MSC_VER) && _MSC_VER > 1200 // VS 6 doesn't support deprecation + #define MFX_DEPRECATED __declspec(deprecated) + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) __pragma(deprecated(arg)) + #elif defined(__GNUC__) + #define MFX_DEPRECATED __attribute__((deprecated)) + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg __attribute__((deprecated)) + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) + #else + #define MFX_DEPRECATED + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) + #endif +#else + #define MFX_DEPRECATED + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) +#endif + typedef unsigned char mfxU8; typedef char mfxI8; typedef short mfxI16; diff --git a/mfx/mfxenc.h b/mfx/mfxenc.h index 4a3296b..2ad3072 100644 --- a/mfx/mfxenc.h +++ b/mfx/mfxenc.h @@ -28,7 +28,7 @@ extern "C" #endif /* __cplusplus */ MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct _mfxENCInput{ +MFX_DEPRECATED typedef struct _mfxENCInput{ mfxU32 reserved[32]; mfxFrameSurface1 *InSurface; @@ -44,7 +44,7 @@ typedef struct _mfxENCInput{ MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct _mfxENCOutput{ +MFX_DEPRECATED typedef struct _mfxENCOutput{ mfxU32 reserved[32]; mfxFrameSurface1 *OutSurface; @@ -55,15 +55,15 @@ typedef struct _mfxENCOutput{ MFX_PACK_END() -mfxStatus MFX_CDECL MFXVideoENC_Query(mfxSession session, mfxVideoParam *in, mfxVideoParam *out); -mfxStatus MFX_CDECL MFXVideoENC_QueryIOSurf(mfxSession session, mfxVideoParam *par, mfxFrameAllocRequest *request); -mfxStatus MFX_CDECL MFXVideoENC_Init(mfxSession session, mfxVideoParam *par); -mfxStatus MFX_CDECL MFXVideoENC_Reset(mfxSession session, mfxVideoParam *par); -mfxStatus MFX_CDECL MFXVideoENC_Close(mfxSession session); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoENC_Query(mfxSession session, mfxVideoParam *in, mfxVideoParam *out); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoENC_QueryIOSurf(mfxSession session, mfxVideoParam *par, mfxFrameAllocRequest *request); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoENC_Init(mfxSession session, mfxVideoParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoENC_Reset(mfxSession session, mfxVideoParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoENC_Close(mfxSession session); -mfxStatus MFX_CDECL MFXVideoENC_ProcessFrameAsync(mfxSession session, mfxENCInput *in, mfxENCOutput *out, mfxSyncPoint *syncp); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoENC_ProcessFrameAsync(mfxSession session, mfxENCInput *in, mfxENCOutput *out, mfxSyncPoint *syncp); -mfxStatus MFX_CDECL MFXVideoENC_GetVideoParam(mfxSession session, mfxVideoParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoENC_GetVideoParam(mfxSession session, mfxVideoParam *par); #ifdef __cplusplus } // extern "C" diff --git a/mfx/mfxfei.h b/mfx/mfxfei.h index 55e61ca..5eb0500 100644 --- a/mfx/mfxfei.h +++ b/mfx/mfxfei.h @@ -29,7 +29,7 @@ extern "C" #endif /* __cplusplus */ MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 Qp; @@ -61,7 +61,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; /* size of allocated memory in number of macroblocks */ @@ -74,7 +74,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -87,7 +87,7 @@ MFX_PACK_END() /* PreENC output */ /* Layout is exactly the same as mfxExtFeiEncMVs, this buffer may be removed in future */ MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -100,7 +100,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -131,7 +131,7 @@ MFX_PACK_END() /* 1 ENC_PAK input */ MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 SearchPath; @@ -160,7 +160,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -178,7 +178,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -222,7 +222,7 @@ For example, MV for right top 4x4 sub block is stored in 5-th element of the arr ======================== */ MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -235,7 +235,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -253,11 +253,13 @@ typedef struct { MFX_PACK_END() enum { - MFX_PAK_OBJECT_HEADER = 0x7149000A + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PAK_OBJECT_HEADER) = 0x7149000A }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PAK_OBJECT_HEADER); + MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { /* dword 0-2 */ mfxU32 Header; /* MFX_PAK_OBJECT_HEADER */ mfxU32 MVDataLength; @@ -330,7 +332,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -341,7 +343,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 MaxFrameSize; /* in bytes */ mfxU32 NumPasses; /* up to 8 */ @@ -353,7 +355,7 @@ MFX_PACK_END() #if (MFX_VERSION >= 1025) /* FEI repack status */ MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 NumPasses; mfxU16 reserved[58]; @@ -363,7 +365,7 @@ MFX_PACK_END() /* 1 decode stream out */ MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { /* dword 0 */ mfxU32 InterMbMode : 2; mfxU32 MBSkipFlag : 1; @@ -433,7 +435,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[3]; mfxU32 NumMBAlloc; @@ -447,7 +449,7 @@ MFX_PACK_END() /* SPS, PPS, Slice Header */ MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 SPSId; @@ -459,7 +461,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 SPSId; @@ -486,7 +488,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 NumSlice; /* actual number of slices in the picture */ @@ -521,7 +523,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 DisableHME; /* 0 - enable, any other value means disable */ @@ -534,40 +536,69 @@ MFX_PACK_END() /* 1 functions */ typedef enum { - MFX_FEI_FUNCTION_PREENC =1, - MFX_FEI_FUNCTION_ENCODE =2, - MFX_FEI_FUNCTION_ENC =3, - MFX_FEI_FUNCTION_PAK =4, - MFX_FEI_FUNCTION_DEC =5, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_FEI_FUNCTION_PREENC) =1, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_FEI_FUNCTION_ENCODE) =2, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_FEI_FUNCTION_ENC) =3, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_FEI_FUNCTION_PAK) =4, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_FEI_FUNCTION_DEC) =5, } mfxFeiFunction; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_FEI_FUNCTION_PREENC); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_FEI_FUNCTION_ENCODE); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_FEI_FUNCTION_ENC); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_FEI_FUNCTION_PAK); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_FEI_FUNCTION_DEC); + enum { - MFX_EXTBUFF_FEI_PARAM = MFX_MAKEFOURCC('F','E','P','R'), - MFX_EXTBUFF_FEI_PREENC_CTRL = MFX_MAKEFOURCC('F','P','C','T'), - MFX_EXTBUFF_FEI_PREENC_MV_PRED = MFX_MAKEFOURCC('F','P','M','P'), - MFX_EXTBUFF_FEI_PREENC_MV = MFX_MAKEFOURCC('F','P','M','V'), - MFX_EXTBUFF_FEI_PREENC_MB = MFX_MAKEFOURCC('F','P','M','B'), - MFX_EXTBUFF_FEI_ENC_CTRL = MFX_MAKEFOURCC('F','E','C','T'), - MFX_EXTBUFF_FEI_ENC_MV_PRED = MFX_MAKEFOURCC('F','E','M','P'), - MFX_EXTBUFF_FEI_ENC_QP = MFX_MAKEFOURCC('F','E','Q','P'), - MFX_EXTBUFF_FEI_ENC_MV = MFX_MAKEFOURCC('F','E','M','V'), - MFX_EXTBUFF_FEI_ENC_MB = MFX_MAKEFOURCC('F','E','M','B'), - MFX_EXTBUFF_FEI_ENC_MB_STAT = MFX_MAKEFOURCC('F','E','S','T'), - MFX_EXTBUFF_FEI_PAK_CTRL = MFX_MAKEFOURCC('F','K','C','T'), - MFX_EXTBUFF_FEI_SPS = MFX_MAKEFOURCC('F','S','P','S'), - MFX_EXTBUFF_FEI_PPS = MFX_MAKEFOURCC('F','P','P','S'), - MFX_EXTBUFF_FEI_SLICE = MFX_MAKEFOURCC('F','S','L','C'), - MFX_EXTBUFF_FEI_CODING_OPTION = MFX_MAKEFOURCC('F','C','D','O'), - MFX_EXTBUFF_FEI_DEC_STREAM_OUT = MFX_MAKEFOURCC('F','D','S','O'), - MFX_EXTBUFF_FEI_REPACK_CTRL = MFX_MAKEFOURCC('F','E','R','P'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_PARAM) = MFX_MAKEFOURCC('F','E','P','R'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_PREENC_CTRL) = MFX_MAKEFOURCC('F','P','C','T'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_PREENC_MV_PRED) = MFX_MAKEFOURCC('F','P','M','P'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_PREENC_MV) = MFX_MAKEFOURCC('F','P','M','V'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_PREENC_MB) = MFX_MAKEFOURCC('F','P','M','B'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_ENC_CTRL) = MFX_MAKEFOURCC('F','E','C','T'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_ENC_MV_PRED) = MFX_MAKEFOURCC('F','E','M','P'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_ENC_QP) = MFX_MAKEFOURCC('F','E','Q','P'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_ENC_MV) = MFX_MAKEFOURCC('F','E','M','V'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_ENC_MB) = MFX_MAKEFOURCC('F','E','M','B'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_ENC_MB_STAT) = MFX_MAKEFOURCC('F','E','S','T'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_PAK_CTRL) = MFX_MAKEFOURCC('F','K','C','T'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_SPS) = MFX_MAKEFOURCC('F','S','P','S'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_PPS) = MFX_MAKEFOURCC('F','P','P','S'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_SLICE) = MFX_MAKEFOURCC('F','S','L','C'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_CODING_OPTION) = MFX_MAKEFOURCC('F','C','D','O'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_DEC_STREAM_OUT) = MFX_MAKEFOURCC('F','D','S','O'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_REPACK_CTRL) = MFX_MAKEFOURCC('F','E','R','P'), #if (MFX_VERSION >= 1025) - MFX_EXTBUFF_FEI_REPACK_STAT = MFX_MAKEFOURCC('F','E','R','S') + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_FEI_REPACK_STAT) = MFX_MAKEFOURCC('F','E','R','S') #endif }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_PARAM); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_PREENC_CTRL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_PREENC_MV_PRED); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_PREENC_MV); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_PREENC_MB); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_ENC_CTRL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_ENC_MV_PRED); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_ENC_QP); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_ENC_MV); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_ENC_MB); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_ENC_MB_STAT); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_PAK_CTRL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_SPS); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_PPS); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_SLICE); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_CODING_OPTION); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_DEC_STREAM_OUT); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_REPACK_CTRL); + +#if (MFX_VERSION >= 1025) + MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_FEI_REPACK_STAT); +#endif + /* should be attached to mfxVideoParam during initialization to indicate FEI function */ MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxFeiFunction Func; mfxU16 SingleFieldProcessing; diff --git a/mfx/mfxfeihevc.h b/mfx/mfxfeihevc.h index 8827892..d80e2ba 100644 --- a/mfx/mfxfeihevc.h +++ b/mfx/mfxfeihevc.h @@ -29,7 +29,7 @@ extern "C" #if (MFX_VERSION >= 1027) MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 SearchPath; @@ -56,7 +56,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { struct { mfxU8 RefL0 : 4; mfxU8 RefL1 : 4; @@ -70,7 +70,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 VaBufferID; mfxU32 Pitch; @@ -82,7 +82,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 VaBufferID; mfxU32 Pitch; @@ -94,7 +94,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxU32 ForceToIntra : 1; mfxU32 ForceToInter : 1; mfxU32 reserved0 : 30; @@ -104,7 +104,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 VaBufferID; mfxU32 Pitch; @@ -116,7 +116,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 MaxFrameSize; /* in bytes */ mfxU32 NumPasses; /* up to 8 */ @@ -126,7 +126,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 NumPasses; mfxU16 reserved[58]; @@ -135,7 +135,7 @@ MFX_PACK_END() #if MFX_VERSION >= MFX_VERSION_NEXT MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { /* DWORD 0 */ mfxU32 reserved0; @@ -162,7 +162,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 VaBufferID; mfxU32 Pitch; @@ -174,7 +174,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { /* DWORD 0 */ mfxU32 CuSize : 2; mfxU32 PredMode : 1; @@ -233,7 +233,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 VaBufferID; mfxU32 Pitch; @@ -245,14 +245,14 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxU32 BestDistortion; mfxU32 ColocatedCtuDistortion; } mfxFeiHevcDistortionCtu; MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 VaBufferID; mfxU32 Pitch; @@ -266,20 +266,33 @@ MFX_PACK_END() enum { - MFX_EXTBUFF_HEVCFEI_ENC_CTRL = MFX_MAKEFOURCC('F','H','C','T'), - MFX_EXTBUFF_HEVCFEI_ENC_MV_PRED = MFX_MAKEFOURCC('F','H','P','D'), - MFX_EXTBUFF_HEVCFEI_ENC_QP = MFX_MAKEFOURCC('F','H','Q','P'), - MFX_EXTBUFF_HEVCFEI_ENC_CTU_CTRL = MFX_MAKEFOURCC('F','H','E','C'), - MFX_EXTBUFF_HEVCFEI_REPACK_CTRL = MFX_MAKEFOURCC('F','H','R','P'), - MFX_EXTBUFF_HEVCFEI_REPACK_STAT = MFX_MAKEFOURCC('F','H','R','S'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_ENC_CTRL) = MFX_MAKEFOURCC('F','H','C','T'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_ENC_MV_PRED) = MFX_MAKEFOURCC('F','H','P','D'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_ENC_QP) = MFX_MAKEFOURCC('F','H','Q','P'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_ENC_CTU_CTRL) = MFX_MAKEFOURCC('F','H','E','C'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_REPACK_CTRL) = MFX_MAKEFOURCC('F','H','R','P'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_REPACK_STAT) = MFX_MAKEFOURCC('F','H','R','S'), #if MFX_VERSION >= MFX_VERSION_NEXT - MFX_EXTBUFF_HEVCFEI_PAK_CTU_REC = MFX_MAKEFOURCC('F','H','T','B'), - MFX_EXTBUFF_HEVCFEI_PAK_CU_REC = MFX_MAKEFOURCC('F','H','C','U'), - MFX_EXTBUFF_HEVCFEI_ENC_DIST = MFX_MAKEFOURCC('F','H','D','S') + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_PAK_CTU_REC) = MFX_MAKEFOURCC('F','H','T','B'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_PAK_CU_REC) = MFX_MAKEFOURCC('F','H','C','U'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_HEVCFEI_ENC_DIST) = MFX_MAKEFOURCC('F','H','D','S') #endif }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_ENC_CTRL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_ENC_MV_PRED); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_ENC_QP); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_ENC_CTU_CTRL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_REPACK_CTRL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_REPACK_STAT); + +#if MFX_VERSION >= MFX_VERSION_NEXT + MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_PAK_CTU_REC); + MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_PAK_CU_REC); + MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_HEVCFEI_ENC_DIST); +#endif + #endif // MFX_VERSION #ifdef __cplusplus diff --git a/mfx/mfxla.h b/mfx/mfxla.h index d90f460..79cb968 100644 --- a/mfx/mfxla.h +++ b/mfx/mfxla.h @@ -30,12 +30,15 @@ extern "C" enum { - MFX_EXTBUFF_LOOKAHEAD_CTRL = MFX_MAKEFOURCC('L','A','C','T'), - MFX_EXTBUFF_LOOKAHEAD_STAT = MFX_MAKEFOURCC('L','A','S','T'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_LOOKAHEAD_CTRL) = MFX_MAKEFOURCC('L','A','C','T'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_LOOKAHEAD_STAT) = MFX_MAKEFOURCC('L','A','S','T'), }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_LOOKAHEAD_CTRL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_LOOKAHEAD_STAT); + MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 LookAheadDepth; @@ -55,7 +58,7 @@ typedef struct MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_L_TYPE() -typedef struct +MFX_DEPRECATED typedef struct { mfxU16 Width; mfxU16 Height; @@ -75,7 +78,7 @@ typedef struct MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 reserved[20]; diff --git a/mfx/mfxpak.h b/mfx/mfxpak.h index b0d7db5..d2bdf58 100644 --- a/mfx/mfxpak.h +++ b/mfx/mfxpak.h @@ -28,7 +28,7 @@ extern "C" #endif /* __cplusplus */ MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxU16 reserved[32]; mfxFrameSurface1 *InSurface; @@ -47,7 +47,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxU16 reserved[32]; mfxBitstream *Bs; @@ -60,15 +60,15 @@ typedef struct { MFX_PACK_END() typedef struct _mfxSession *mfxSession; -mfxStatus MFX_CDECL MFXVideoPAK_Query(mfxSession session, mfxVideoParam *in, mfxVideoParam *out); -mfxStatus MFX_CDECL MFXVideoPAK_QueryIOSurf(mfxSession session, mfxVideoParam *par, mfxFrameAllocRequest request[2]); -mfxStatus MFX_CDECL MFXVideoPAK_Init(mfxSession session, mfxVideoParam *par); -mfxStatus MFX_CDECL MFXVideoPAK_Reset(mfxSession session, mfxVideoParam *par); -mfxStatus MFX_CDECL MFXVideoPAK_Close(mfxSession session); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoPAK_Query(mfxSession session, mfxVideoParam *in, mfxVideoParam *out); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoPAK_QueryIOSurf(mfxSession session, mfxVideoParam *par, mfxFrameAllocRequest request[2]); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoPAK_Init(mfxSession session, mfxVideoParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoPAK_Reset(mfxSession session, mfxVideoParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoPAK_Close(mfxSession session); -mfxStatus MFX_CDECL MFXVideoPAK_ProcessFrameAsync(mfxSession session, mfxPAKInput *in, mfxPAKOutput *out, mfxSyncPoint *syncp); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoPAK_ProcessFrameAsync(mfxSession session, mfxPAKInput *in, mfxPAKOutput *out, mfxSyncPoint *syncp); -mfxStatus MFX_CDECL MFXVideoPAK_GetVideoParam(mfxSession session, mfxVideoParam *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoPAK_GetVideoParam(mfxSession session, mfxVideoParam *par); #ifdef __cplusplus } // extern "C" diff --git a/mfx/mfxplugin.h b/mfx/mfxplugin.h index 58ddd6f..01b3d5c 100644 --- a/mfx/mfxplugin.h +++ b/mfx/mfxplugin.h @@ -33,45 +33,56 @@ typedef struct { } mfxPluginUID; MFX_PACK_END() -static const mfxPluginUID MFX_PLUGINID_HEVCD_SW = {{0x15, 0xdd, 0x93, 0x68, 0x25, 0xad, 0x47, 0x5e, 0xa3, 0x4e, 0x35, 0xf3, 0xf5, 0x42, 0x17, 0xa6}}; -static const mfxPluginUID MFX_PLUGINID_HEVCD_HW = {{0x33, 0xa6, 0x1c, 0x0b, 0x4c, 0x27, 0x45, 0x4c, 0xa8, 0xd8, 0x5d, 0xde, 0x75, 0x7c, 0x6f, 0x8e}}; -static const mfxPluginUID MFX_PLUGINID_HEVCE_SW = {{0x2f, 0xca, 0x99, 0x74, 0x9f, 0xdb, 0x49, 0xae, 0xb1, 0x21, 0xa5, 0xb6, 0x3e, 0xf5, 0x68, 0xf7}}; -static const mfxPluginUID MFX_PLUGINID_HEVCE_GACC = {{0xe5, 0x40, 0x0a, 0x06, 0xc7, 0x4d, 0x41, 0xf5, 0xb1, 0x2d, 0x43, 0x0b, 0xba, 0xa2, 0x3d, 0x0b}}; -static const mfxPluginUID MFX_PLUGINID_HEVCE_DP_GACC = {{0x2b, 0xad, 0x6f, 0x9d, 0x77, 0x54, 0x41, 0x2d, 0xbf, 0x63, 0x03, 0xed, 0x4b, 0xb5, 0x09, 0x68}}; -static const mfxPluginUID MFX_PLUGINID_HEVCE_HW = {{0x6f, 0xad, 0xc7, 0x91, 0xa0, 0xc2, 0xeb, 0x47, 0x9a, 0xb6, 0xdc, 0xd5, 0xea, 0x9d, 0xa3, 0x47}}; -static const mfxPluginUID MFX_PLUGINID_VP8D_HW = {{0xf6, 0x22, 0x39, 0x4d, 0x8d, 0x87, 0x45, 0x2f, 0x87, 0x8c, 0x51, 0xf2, 0xfc, 0x9b, 0x41, 0x31}}; -static const mfxPluginUID MFX_PLUGINID_VP8E_HW = {{0xbf, 0xfc, 0x51, 0x8c, 0xde, 0x13, 0x4d, 0xf9, 0x8a, 0x96, 0xf4, 0xcf, 0x81, 0x6c, 0x0f, 0xac}}; -static const mfxPluginUID MFX_PLUGINID_VP9E_HW = {{0xce, 0x44, 0xef, 0x6f, 0x1a, 0x6d, 0x22, 0x46, 0xb4, 0x12, 0xbb, 0x38, 0xd6, 0xe4, 0x51, 0x82}}; -static const mfxPluginUID MFX_PLUGINID_VP9D_HW = {{0xa9, 0x22, 0x39, 0x4d, 0x8d, 0x87, 0x45, 0x2f, 0x87, 0x8c, 0x51, 0xf2, 0xfc, 0x9b, 0x41, 0x31}}; -static const mfxPluginUID MFX_PLUGINID_CAMERA_HW = {{0x54, 0x54, 0x26, 0x16, 0x24, 0x33, 0x41, 0xe6, 0x93, 0xae, 0x89, 0x99, 0x42, 0xce, 0x73, 0x55}}; -static const mfxPluginUID MFX_PLUGINID_CAPTURE_HW = {{0x22, 0xd6, 0x2c, 0x07, 0xe6, 0x72, 0x40, 0x8f, 0xbb, 0x4c, 0xc2, 0x0e, 0xd7, 0xa0, 0x53, 0xe4}}; -static const mfxPluginUID MFX_PLUGINID_ITELECINE_HW = {{0xe7, 0x44, 0x75, 0x3a, 0xcd, 0x74, 0x40, 0x2e, 0x89, 0xa2, 0xee, 0x06, 0x35, 0x49, 0x61, 0x79}}; -static const mfxPluginUID MFX_PLUGINID_H264LA_HW = {{0x58, 0x8f, 0x11, 0x85, 0xd4, 0x7b, 0x42, 0x96, 0x8d, 0xea, 0x37, 0x7b, 0xb5, 0xd0, 0xdc, 0xb4}}; -static const mfxPluginUID MFX_PLUGINID_AACD = {{0xe9, 0x34, 0x67, 0x25, 0xac, 0x2f, 0x4c, 0x93, 0xaa, 0x58, 0x5c, 0x11, 0xc7, 0x08, 0x7c, 0xf4}}; -static const mfxPluginUID MFX_PLUGINID_AACE = {{0xb2, 0xa2, 0xa0, 0x5a, 0x4e, 0xac, 0x46, 0xbf, 0xa9, 0xde, 0x7e, 0x80, 0xc9, 0x8d, 0x2e, 0x18}}; -static const mfxPluginUID MFX_PLUGINID_HEVCE_FEI_HW = {{0x87, 0xe0, 0xe8, 0x02, 0x07, 0x37, 0x52, 0x40, 0x85, 0x25, 0x15, 0xcf, 0x4a, 0x5e, 0xdd, 0xe6}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVCD_SW = {{0x15, 0xdd, 0x93, 0x68, 0x25, 0xad, 0x47, 0x5e, 0xa3, 0x4e, 0x35, 0xf3, 0xf5, 0x42, 0x17, 0xa6}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVCD_HW = {{0x33, 0xa6, 0x1c, 0x0b, 0x4c, 0x27, 0x45, 0x4c, 0xa8, 0xd8, 0x5d, 0xde, 0x75, 0x7c, 0x6f, 0x8e}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVCE_SW = {{0x2f, 0xca, 0x99, 0x74, 0x9f, 0xdb, 0x49, 0xae, 0xb1, 0x21, 0xa5, 0xb6, 0x3e, 0xf5, 0x68, 0xf7}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVCE_GACC = {{0xe5, 0x40, 0x0a, 0x06, 0xc7, 0x4d, 0x41, 0xf5, 0xb1, 0x2d, 0x43, 0x0b, 0xba, 0xa2, 0x3d, 0x0b}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVCE_DP_GACC = {{0x2b, 0xad, 0x6f, 0x9d, 0x77, 0x54, 0x41, 0x2d, 0xbf, 0x63, 0x03, 0xed, 0x4b, 0xb5, 0x09, 0x68}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVCE_HW = {{0x6f, 0xad, 0xc7, 0x91, 0xa0, 0xc2, 0xeb, 0x47, 0x9a, 0xb6, 0xdc, 0xd5, 0xea, 0x9d, 0xa3, 0x47}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_VP8D_HW = {{0xf6, 0x22, 0x39, 0x4d, 0x8d, 0x87, 0x45, 0x2f, 0x87, 0x8c, 0x51, 0xf2, 0xfc, 0x9b, 0x41, 0x31}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_VP8E_HW = {{0xbf, 0xfc, 0x51, 0x8c, 0xde, 0x13, 0x4d, 0xf9, 0x8a, 0x96, 0xf4, 0xcf, 0x81, 0x6c, 0x0f, 0xac}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_VP9E_HW = {{0xce, 0x44, 0xef, 0x6f, 0x1a, 0x6d, 0x22, 0x46, 0xb4, 0x12, 0xbb, 0x38, 0xd6, 0xe4, 0x51, 0x82}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_VP9D_HW = {{0xa9, 0x22, 0x39, 0x4d, 0x8d, 0x87, 0x45, 0x2f, 0x87, 0x8c, 0x51, 0xf2, 0xfc, 0x9b, 0x41, 0x31}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_CAMERA_HW = {{0x54, 0x54, 0x26, 0x16, 0x24, 0x33, 0x41, 0xe6, 0x93, 0xae, 0x89, 0x99, 0x42, 0xce, 0x73, 0x55}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_CAPTURE_HW = {{0x22, 0xd6, 0x2c, 0x07, 0xe6, 0x72, 0x40, 0x8f, 0xbb, 0x4c, 0xc2, 0x0e, 0xd7, 0xa0, 0x53, 0xe4}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_ITELECINE_HW = {{0xe7, 0x44, 0x75, 0x3a, 0xcd, 0x74, 0x40, 0x2e, 0x89, 0xa2, 0xee, 0x06, 0x35, 0x49, 0x61, 0x79}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_H264LA_HW = {{0x58, 0x8f, 0x11, 0x85, 0xd4, 0x7b, 0x42, 0x96, 0x8d, 0xea, 0x37, 0x7b, 0xb5, 0xd0, 0xdc, 0xb4}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_AACD = {{0xe9, 0x34, 0x67, 0x25, 0xac, 0x2f, 0x4c, 0x93, 0xaa, 0x58, 0x5c, 0x11, 0xc7, 0x08, 0x7c, 0xf4}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_AACE = {{0xb2, 0xa2, 0xa0, 0x5a, 0x4e, 0xac, 0x46, 0xbf, 0xa9, 0xde, 0x7e, 0x80, 0xc9, 0x8d, 0x2e, 0x18}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVCE_FEI_HW = {{0x87, 0xe0, 0xe8, 0x02, 0x07, 0x37, 0x52, 0x40, 0x85, 0x25, 0x15, 0xcf, 0x4a, 0x5e, 0xdd, 0xe6}}; #if (MFX_VERSION >= 1027) -static const mfxPluginUID MFX_PLUGINID_HEVC_FEI_ENCODE = {{0x54, 0x18, 0xa7, 0x06, 0x66, 0xf9, 0x4d, 0x5c, 0xb4, 0xf7, 0xb1, 0xca, 0xee, 0x86, 0x33, 0x9b}}; +MFX_DEPRECATED static const mfxPluginUID MFX_PLUGINID_HEVC_FEI_ENCODE = {{0x54, 0x18, 0xa7, 0x06, 0x66, 0xf9, 0x4d, 0x5c, 0xb4, 0xf7, 0xb1, 0xca, 0xee, 0x86, 0x33, 0x9b}}; #endif typedef enum { - MFX_PLUGINTYPE_VIDEO_GENERAL = 0, - MFX_PLUGINTYPE_VIDEO_DECODE = 1, - MFX_PLUGINTYPE_VIDEO_ENCODE = 2, - MFX_PLUGINTYPE_VIDEO_VPP = 3, - MFX_PLUGINTYPE_VIDEO_ENC = 4, - MFX_PLUGINTYPE_AUDIO_DECODE = 5, - MFX_PLUGINTYPE_AUDIO_ENCODE = 6 + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PLUGINTYPE_VIDEO_GENERAL) = 0, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PLUGINTYPE_VIDEO_DECODE) = 1, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PLUGINTYPE_VIDEO_ENCODE) = 2, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PLUGINTYPE_VIDEO_VPP) = 3, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PLUGINTYPE_VIDEO_ENC) = 4, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PLUGINTYPE_AUDIO_DECODE) = 5, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_PLUGINTYPE_AUDIO_ENCODE) = 6 } mfxPluginType; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PLUGINTYPE_VIDEO_GENERAL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PLUGINTYPE_VIDEO_DECODE); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PLUGINTYPE_VIDEO_ENCODE); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PLUGINTYPE_VIDEO_VPP); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PLUGINTYPE_VIDEO_ENC); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PLUGINTYPE_AUDIO_DECODE); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_PLUGINTYPE_AUDIO_ENCODE); + typedef enum { - MFX_THREADPOLICY_SERIAL = 0, - MFX_THREADPOLICY_PARALLEL = 1 + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_THREADPOLICY_SERIAL) = 0, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_THREADPOLICY_PARALLEL) = 1 } mfxThreadPolicy; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_THREADPOLICY_SERIAL); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_THREADPOLICY_PARALLEL); + MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct mfxPluginParam { +MFX_DEPRECATED typedef struct mfxPluginParam { mfxU32 reserved[6]; mfxU16 reserved1; mfxU16 PluginVersion; @@ -85,7 +96,7 @@ typedef struct mfxPluginParam { MFX_PACK_END() MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct mfxCoreParam{ +MFX_DEPRECATED typedef struct mfxCoreParam{ mfxU32 reserved[13]; mfxIMPL Impl; mfxVersion Version; @@ -94,7 +105,7 @@ typedef struct mfxCoreParam{ MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct mfxCoreInterface { +MFX_DEPRECATED typedef struct mfxCoreInterface { mfxHDL pthis; mfxHDL reserved1[2]; @@ -124,9 +135,9 @@ MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() /* video codec plugin extension */ -typedef struct _mfxENCInput mfxENCInput; -typedef struct _mfxENCOutput mfxENCOutput; -typedef struct mfxVideoCodecPlugin{ +MFX_DEPRECATED typedef struct _mfxENCInput mfxENCInput; +MFX_DEPRECATED typedef struct _mfxENCOutput mfxENCOutput; +MFX_DEPRECATED typedef struct mfxVideoCodecPlugin{ mfxStatus (MFX_CDECL *Query)(mfxHDL pthis, mfxVideoParam *in, mfxVideoParam *out); mfxStatus (MFX_CDECL *QueryIOSurf)(mfxHDL pthis, mfxVideoParam *par, mfxFrameAllocRequest *in, mfxFrameAllocRequest *out); mfxStatus (MFX_CDECL *Init)(mfxHDL pthis, mfxVideoParam *par); @@ -151,7 +162,7 @@ typedef struct mfxVideoCodecPlugin{ MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct mfxAudioCodecPlugin{ +MFX_DEPRECATED typedef struct mfxAudioCodecPlugin{ mfxStatus (MFX_CDECL *Query)(mfxHDL pthis, mfxAudioParam *in, mfxAudioParam *out); mfxStatus (MFX_CDECL *QueryIOSize)(mfxHDL pthis, mfxAudioParam *par, mfxAudioAllocRequest *request); mfxStatus (MFX_CDECL *Init)(mfxHDL pthis, mfxAudioParam *par); @@ -171,7 +182,7 @@ typedef struct mfxAudioCodecPlugin{ MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct mfxPlugin{ +MFX_DEPRECATED typedef struct mfxPlugin{ mfxHDL pthis; mfxStatus (MFX_CDECL *PluginInit) (mfxHDL pthis, mfxCoreInterface *core); @@ -193,21 +204,21 @@ typedef struct mfxPlugin{ MFX_PACK_END() -mfxStatus MFX_CDECL MFXVideoUSER_Register(mfxSession session, mfxU32 type, const mfxPlugin *par); -mfxStatus MFX_CDECL MFXVideoUSER_Unregister(mfxSession session, mfxU32 type); -mfxStatus MFX_CDECL MFXVideoUSER_GetPlugin(mfxSession session, mfxU32 type, mfxPlugin *par); -mfxStatus MFX_CDECL MFXVideoUSER_ProcessFrameAsync(mfxSession session, const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxSyncPoint *syncp); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoUSER_Register(mfxSession session, mfxU32 type, const mfxPlugin *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoUSER_Unregister(mfxSession session, mfxU32 type); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoUSER_GetPlugin(mfxSession session, mfxU32 type, mfxPlugin *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoUSER_ProcessFrameAsync(mfxSession session, const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxSyncPoint *syncp); -mfxStatus MFX_CDECL MFXVideoUSER_Load(mfxSession session, const mfxPluginUID *uid, mfxU32 version); -mfxStatus MFX_CDECL MFXVideoUSER_LoadByPath(mfxSession session, const mfxPluginUID *uid, mfxU32 version, const mfxChar *path, mfxU32 len); -mfxStatus MFX_CDECL MFXVideoUSER_UnLoad(mfxSession session, const mfxPluginUID *uid); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoUSER_Load(mfxSession session, const mfxPluginUID *uid, mfxU32 version); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoUSER_LoadByPath(mfxSession session, const mfxPluginUID *uid, mfxU32 version, const mfxChar *path, mfxU32 len); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoUSER_UnLoad(mfxSession session, const mfxPluginUID *uid); -mfxStatus MFX_CDECL MFXAudioUSER_Register(mfxSession session, mfxU32 type, const mfxPlugin *par); -mfxStatus MFX_CDECL MFXAudioUSER_Unregister(mfxSession session, mfxU32 type); -mfxStatus MFX_CDECL MFXAudioUSER_ProcessFrameAsync(mfxSession session, const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxSyncPoint *syncp); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioUSER_Register(mfxSession session, mfxU32 type, const mfxPlugin *par); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioUSER_Unregister(mfxSession session, mfxU32 type); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioUSER_ProcessFrameAsync(mfxSession session, const mfxHDL *in, mfxU32 in_num, const mfxHDL *out, mfxU32 out_num, mfxSyncPoint *syncp); -mfxStatus MFX_CDECL MFXAudioUSER_Load(mfxSession session, const mfxPluginUID *uid, mfxU32 version); -mfxStatus MFX_CDECL MFXAudioUSER_UnLoad(mfxSession session, const mfxPluginUID *uid); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioUSER_Load(mfxSession session, const mfxPluginUID *uid, mfxU32 version); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXAudioUSER_UnLoad(mfxSession session, const mfxPluginUID *uid); #ifdef __cplusplus } // extern "C" diff --git a/mfx/mfxsession.h b/mfx/mfxsession.h index 60cc6d6..2d73304 100644 --- a/mfx/mfxsession.h +++ b/mfx/mfxsession.h @@ -40,7 +40,7 @@ mfxStatus MFX_CDECL MFXDisjoinSession(mfxSession session); mfxStatus MFX_CDECL MFXCloneSession(mfxSession session, mfxSession *clone); mfxStatus MFX_CDECL MFXSetPriority(mfxSession session, mfxPriority priority); mfxStatus MFX_CDECL MFXGetPriority(mfxSession session, mfxPriority *priority); -mfxStatus MFX_CDECL MFXDoWork(mfxSession session); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXDoWork(mfxSession session); #ifdef __cplusplus } diff --git a/mfx/mfxstructures.h b/mfx/mfxstructures.h index 65e7de9..d4b8b96 100644 --- a/mfx/mfxstructures.h +++ b/mfx/mfxstructures.h @@ -389,12 +389,15 @@ MFX_PACK_END() enum { MFX_IOPATTERN_IN_VIDEO_MEMORY = 0x01, MFX_IOPATTERN_IN_SYSTEM_MEMORY = 0x02, - MFX_IOPATTERN_IN_OPAQUE_MEMORY = 0x04, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_IOPATTERN_IN_OPAQUE_MEMORY) = 0x04, MFX_IOPATTERN_OUT_VIDEO_MEMORY = 0x10, MFX_IOPATTERN_OUT_SYSTEM_MEMORY = 0x20, - MFX_IOPATTERN_OUT_OPAQUE_MEMORY = 0x40 + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_IOPATTERN_OUT_OPAQUE_MEMORY) = 0x40 }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_IOPATTERN_IN_OPAQUE_MEMORY); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_IOPATTERN_OUT_OPAQUE_MEMORY); + /* CodecId */ enum { MFX_CODEC_AVC =MFX_MAKEFOURCC('A','V','C',' '), @@ -447,7 +450,7 @@ enum { MFX_LEVEL_AVC_5 =50, MFX_LEVEL_AVC_51 =51, MFX_LEVEL_AVC_52 =52, -#if (MFX_VERSION >= MFX_VERSION_NEXT) +#if (MFX_VERSION >= 1035) MFX_LEVEL_AVC_6 =60, MFX_LEVEL_AVC_61 =61, MFX_LEVEL_AVC_62 =62, @@ -635,12 +638,17 @@ enum { }; enum { - MFX_LOOKAHEAD_DS_UNKNOWN = 0, - MFX_LOOKAHEAD_DS_OFF = 1, - MFX_LOOKAHEAD_DS_2x = 2, - MFX_LOOKAHEAD_DS_4x = 3 + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_LOOKAHEAD_DS_UNKNOWN) = 0, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_LOOKAHEAD_DS_OFF) = 1, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_LOOKAHEAD_DS_2x) = 2, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_LOOKAHEAD_DS_4x) = 3 }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_LOOKAHEAD_DS_UNKNOWN); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_LOOKAHEAD_DS_OFF); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_LOOKAHEAD_DS_2x); +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_LOOKAHEAD_DS_4x); + enum { MFX_BPSEI_DEFAULT = 0x00, MFX_BPSEI_IFRAME = 0x01 @@ -906,7 +914,7 @@ enum { MFX_EXTBUFF_VPP_DETAIL = MFX_MAKEFOURCC('D','E','T',' '), MFX_EXTBUFF_VIDEO_SIGNAL_INFO = MFX_MAKEFOURCC('V','S','I','N'), MFX_EXTBUFF_VPP_DOUSE = MFX_MAKEFOURCC('D','U','S','E'), - MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION = MFX_MAKEFOURCC('O','P','Q','S'), + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION) = MFX_MAKEFOURCC('O','P','Q','S'), MFX_EXTBUFF_AVC_REFLIST_CTRL = MFX_MAKEFOURCC('R','L','S','T'), MFX_EXTBUFF_VPP_FRAME_RATE_CONVERSION = MFX_MAKEFOURCC('F','R','C',' '), MFX_EXTBUFF_PICTURE_TIMING_SEI = MFX_MAKEFOURCC('P','T','S','E'), @@ -987,6 +995,8 @@ enum { #endif }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION); + /* VPP Conf: Do not use certain algorithms */ MFX_PACK_BEGIN_STRUCT_W_PTR() typedef struct { @@ -1133,7 +1143,7 @@ enum { MFX_MEMTYPE_INTERNAL_FRAME = 0x0001, MFX_MEMTYPE_EXTERNAL_FRAME = 0x0002, - MFX_MEMTYPE_OPAQUE_FRAME = 0x0004, + MFX_DEPRECATED_ENUM_FIELD_INSIDE(MFX_MEMTYPE_OPAQUE_FRAME) = 0x0004, MFX_MEMTYPE_EXPORT_FRAME = 0x0008, MFX_MEMTYPE_SHARED_RESOURCE = MFX_MEMTYPE_EXPORT_FRAME, #if (MFX_VERSION >= 1025) @@ -1143,6 +1153,8 @@ enum { #endif }; +MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(MFX_MEMTYPE_OPAQUE_FRAME); + MFX_PACK_BEGIN_USUAL_STRUCT() typedef struct { union { @@ -1278,7 +1290,7 @@ typedef struct { MFX_PACK_END() MFX_PACK_BEGIN_STRUCT_W_PTR() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 reserved1[2]; struct { @@ -2302,7 +2314,7 @@ enum { /* Multi-Frame Initialization parameters */ MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU16 MFMode; @@ -2314,7 +2326,7 @@ MFX_PACK_END() /* Multi-Frame Run-time controls */ MFX_PACK_BEGIN_USUAL_STRUCT() -typedef struct { +MFX_DEPRECATED typedef struct { mfxExtBuffer Header; mfxU32 Timeout; /* timeout in millisecond */ diff --git a/mfx/mfxvideo++.h b/mfx/mfxvideo++.h index 9256c95..41c18e9 100644 --- a/mfx/mfxvideo++.h +++ b/mfx/mfxvideo++.h @@ -49,7 +49,7 @@ class MFXVideoSession virtual mfxStatus SetPriority( mfxPriority priority) { return MFXSetPriority(m_session, priority);} virtual mfxStatus GetPriority( mfxPriority *priority) { return MFXGetPriority(m_session, priority);} - virtual mfxStatus SetBufferAllocator(mfxBufferAllocator *allocator) { return MFXVideoCORE_SetBufferAllocator(m_session, allocator); } + MFX_DEPRECATED virtual mfxStatus SetBufferAllocator(mfxBufferAllocator *allocator) { return MFXVideoCORE_SetBufferAllocator(m_session, allocator); } virtual mfxStatus SetFrameAllocator(mfxFrameAllocator *allocator) { return MFXVideoCORE_SetFrameAllocator(m_session, allocator); } virtual mfxStatus SetHandle(mfxHandleType type, mfxHDL hdl) { return MFXVideoCORE_SetHandle(m_session, type, hdl); } virtual mfxStatus GetHandle(mfxHandleType type, mfxHDL *hdl) { return MFXVideoCORE_GetHandle(m_session, type, hdl); } diff --git a/mfx/mfxvideo.h b/mfx/mfxvideo.h index 88f388d..aee387a 100644 --- a/mfx/mfxvideo.h +++ b/mfx/mfxvideo.h @@ -53,7 +53,7 @@ typedef struct { MFX_PACK_END() /* VideoCORE */ -mfxStatus MFX_CDECL MFXVideoCORE_SetBufferAllocator(mfxSession session, mfxBufferAllocator *allocator); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoCORE_SetBufferAllocator(mfxSession session, mfxBufferAllocator *allocator); mfxStatus MFX_CDECL MFXVideoCORE_SetFrameAllocator(mfxSession session, mfxFrameAllocator *allocator); mfxStatus MFX_CDECL MFXVideoCORE_SetHandle(mfxSession session, mfxHandleType type, mfxHDL hdl); mfxStatus MFX_CDECL MFXVideoCORE_GetHandle(mfxSession session, mfxHandleType type, mfxHDL *hdl); @@ -95,7 +95,7 @@ mfxStatus MFX_CDECL MFXVideoVPP_Close(mfxSession session); mfxStatus MFX_CDECL MFXVideoVPP_GetVideoParam(mfxSession session, mfxVideoParam *par); mfxStatus MFX_CDECL MFXVideoVPP_GetVPPStat(mfxSession session, mfxVPPStat *stat); mfxStatus MFX_CDECL MFXVideoVPP_RunFrameVPPAsync(mfxSession session, mfxFrameSurface1 *in, mfxFrameSurface1 *out, mfxExtVppAuxData *aux, mfxSyncPoint *syncp); -mfxStatus MFX_CDECL MFXVideoVPP_RunFrameVPPAsyncEx(mfxSession session, mfxFrameSurface1 *in, mfxFrameSurface1 *surface_work, mfxFrameSurface1 **surface_out, mfxSyncPoint *syncp); +MFX_DEPRECATED mfxStatus MFX_CDECL MFXVideoVPP_RunFrameVPPAsyncEx(mfxSession session, mfxFrameSurface1 *in, mfxFrameSurface1 *surface_work, mfxFrameSurface1 **surface_out, mfxSyncPoint *syncp); #ifdef __cplusplus } // extern "C" diff --git a/mfx/ts_ext_buffers_decl.h b/mfx/ts_ext_buffers_decl.h new file mode 100644 index 0000000..9d82db5 --- /dev/null +++ b/mfx/ts_ext_buffers_decl.h @@ -0,0 +1,158 @@ +// Copyright (c) 2018-2020 Intel Corporation +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#if defined(__MFXSTRUCTURES_H__) +EXTBUF(mfxExtCodingOption , MFX_EXTBUFF_CODING_OPTION ) +EXTBUF(mfxExtCodingOptionSPSPPS , MFX_EXTBUFF_CODING_OPTION_SPSPPS ) +EXTBUF(mfxExtCodingOptionVPS , MFX_EXTBUFF_CODING_OPTION_VPS ) +EXTBUF(mfxExtVPPDoNotUse , MFX_EXTBUFF_VPP_DONOTUSE ) +EXTBUF(mfxExtVppAuxData , MFX_EXTBUFF_VPP_AUXDATA ) +EXTBUF(mfxExtVPPDenoise , MFX_EXTBUFF_VPP_DENOISE ) +EXTBUF(mfxExtVPPProcAmp , MFX_EXTBUFF_VPP_PROCAMP ) +EXTBUF(mfxExtVPPDetail , MFX_EXTBUFF_VPP_DETAIL ) +EXTBUF(mfxExtVideoSignalInfo , MFX_EXTBUFF_VIDEO_SIGNAL_INFO ) +EXTBUF(mfxExtVPPDoUse , MFX_EXTBUFF_VPP_DOUSE ) +EXTBUF(mfxExtOpaqueSurfaceAlloc , MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION ) +EXTBUF(mfxExtAVCRefListCtrl , MFX_EXTBUFF_AVC_REFLIST_CTRL ) +EXTBUF(mfxExtVPPFrameRateConversion , MFX_EXTBUFF_VPP_FRAME_RATE_CONVERSION ) +EXTBUF(mfxExtPictureTimingSEI , MFX_EXTBUFF_PICTURE_TIMING_SEI ) +EXTBUF(mfxExtAvcTemporalLayers , MFX_EXTBUFF_AVC_TEMPORAL_LAYERS ) +EXTBUF(mfxExtCodingOption2 , MFX_EXTBUFF_CODING_OPTION2 ) +EXTBUF(mfxExtVPPImageStab , MFX_EXTBUFF_VPP_IMAGE_STABILIZATION ) +EXTBUF(mfxExtEncoderCapability , MFX_EXTBUFF_ENCODER_CAPABILITY ) +EXTBUF(mfxExtEncoderResetOption , MFX_EXTBUFF_ENCODER_RESET_OPTION ) +EXTBUF(mfxExtAVCEncodedFrameInfo , MFX_EXTBUFF_ENCODED_FRAME_INFO ) +EXTBUF(mfxExtVPPComposite , MFX_EXTBUFF_VPP_COMPOSITE ) +EXTBUF(mfxExtVPPVideoSignalInfo , MFX_EXTBUFF_VPP_VIDEO_SIGNAL_INFO ) +EXTBUF(mfxExtEncoderROI , MFX_EXTBUFF_ENCODER_ROI ) +EXTBUF(mfxExtVPPDeinterlacing , MFX_EXTBUFF_VPP_DEINTERLACING ) +EXTBUF(mfxExtVP8CodingOption , MFX_EXTBUFF_VP8_CODING_OPTION ) +EXTBUF(mfxExtVPPFieldProcessing , MFX_EXTBUFF_VPP_FIELD_PROCESSING ) +EXTBUF(mfxExtContentLightLevelInfo , MFX_EXTBUFF_CONTENT_LIGHT_LEVEL_INFO ) +EXTBUF(mfxExtMasteringDisplayColourVolume, MFX_EXTBUFF_MASTERING_DISPLAY_COLOUR_VOLUME ) +EXTBUF(mfxExtMultiFrameParam , MFX_EXTBUFF_MULTI_FRAME_PARAM ) +EXTBUF(mfxExtMultiFrameControl , MFX_EXTBUFF_MULTI_FRAME_CONTROL ) +EXTBUF(mfxExtColorConversion , MFX_EXTBUFF_VPP_COLOR_CONVERSION ) +EXTBUF(mfxExtAVCRefLists , MFX_EXTBUFF_AVC_REFLISTS ) +EXTBUF(mfxExtCodingOption3 , MFX_EXTBUFF_CODING_OPTION3 ) +EXTBUF(mfxExtMBQP , MFX_EXTBUFF_MBQP ) +EXTBUF(mfxExtMBForceIntra , MFX_EXTBUFF_MB_FORCE_INTRA ) +EXTBUF(mfxExtChromaLocInfo , MFX_EXTBUFF_CHROMA_LOC_INFO ) +EXTBUF(mfxExtDecodedFrameInfo , MFX_EXTBUFF_DECODED_FRAME_INFO ) +EXTBUF(mfxExtDecodeErrorReport , MFX_EXTBUFF_DECODE_ERROR_REPORT ) +EXTBUF(mfxExtVPPRotation , MFX_EXTBUFF_VPP_ROTATION ) +EXTBUF(mfxExtVPPMirroring , MFX_EXTBUFF_VPP_MIRRORING ) +EXTBUF(mfxExtMVCSeqDesc , MFX_EXTBUFF_MVC_SEQ_DESC ) +EXTBUF(mfxExtMBDisableSkipMap , MFX_EXTBUFF_MB_DISABLE_SKIP_MAP ) +EXTBUF(mfxExtDirtyRect , MFX_EXTBUFF_DIRTY_RECTANGLES ) +EXTBUF(mfxExtMoveRect , MFX_EXTBUFF_MOVING_RECTANGLES ) +EXTBUF(mfxExtHEVCParam , MFX_EXTBUFF_HEVC_PARAM ) +EXTBUF(mfxExtHEVCTiles , MFX_EXTBUFF_HEVC_TILES ) +EXTBUF(mfxExtPredWeightTable , MFX_EXTBUFF_PRED_WEIGHT_TABLE ) +EXTBUF(mfxExtEncodedUnitsInfo , MFX_EXTBUFF_ENCODED_UNITS_INFO ) +#if (MFX_VERSION >= 1026) +EXTBUF(mfxExtVppMctf , MFX_EXTBUFF_VPP_MCTF ) +EXTBUF(mfxExtVP9Segmentation , MFX_EXTBUFF_VP9_SEGMENTATION ) +EXTBUF(mfxExtVP9TemporalLayers , MFX_EXTBUFF_VP9_TEMPORAL_LAYERS ) +EXTBUF(mfxExtVP9Param , MFX_EXTBUFF_VP9_PARAM ) +#endif +EXTBUF(mfxExtEncoderIPCMArea , MFX_EXTBUFF_ENCODER_IPCM_AREA ) +EXTBUF(mfxExtInsertHeaders , MFX_EXTBUFF_INSERT_HEADERS ) + +#if (MFX_VERSION >= MFX_VERSION_NEXT) +EXTBUF(mfxExtAVCScalingMatrix , MFX_EXTBUFF_AVC_SCALING_MATRIX ) +EXTBUF(mfxExtDPB , MFX_EXTBUFF_DPB ) +#endif +#endif //defined(__MFXSTRUCTURES_H__) + +#if defined(__MFXFEI_H__) +EXTBUF(mfxExtFeiParam , MFX_EXTBUFF_FEI_PARAM ) +EXTBUF(mfxExtFeiSPS , MFX_EXTBUFF_FEI_SPS ) +EXTBUF(mfxExtFeiPPS , MFX_EXTBUFF_FEI_PPS ) +EXTBUF(mfxExtFeiEncFrameCtrl , MFX_EXTBUFF_FEI_ENC_CTRL ) +EXTBUF(mfxExtFeiEncMVPredictors , MFX_EXTBUFF_FEI_ENC_MV_PRED ) +EXTBUF(mfxExtFeiEncMBCtrl , MFX_EXTBUFF_FEI_ENC_MB ) +EXTBUF(mfxExtFeiEncMV , MFX_EXTBUFF_FEI_ENC_MV ) +EXTBUF(mfxExtFeiEncMBStat , MFX_EXTBUFF_FEI_ENC_MB_STAT ) +EXTBUF(mfxExtFeiEncQP , MFX_EXTBUFF_FEI_ENC_QP ) +EXTBUF(mfxExtFeiPreEncCtrl , MFX_EXTBUFF_FEI_PREENC_CTRL ) +EXTBUF(mfxExtFeiPreEncMVPredictors , MFX_EXTBUFF_FEI_PREENC_MV_PRED ) +EXTBUF(mfxExtFeiPreEncMV , MFX_EXTBUFF_FEI_PREENC_MV ) +EXTBUF(mfxExtFeiPreEncMBStat , MFX_EXTBUFF_FEI_PREENC_MB ) +EXTBUF(mfxExtFeiPakMBCtrl , MFX_EXTBUFF_FEI_PAK_CTRL ) +EXTBUF(mfxExtFeiSliceHeader , MFX_EXTBUFF_FEI_SLICE ) +EXTBUF(mfxExtFeiRepackCtrl , MFX_EXTBUFF_FEI_REPACK_CTRL ) +EXTBUF(mfxExtFeiDecStreamOut , MFX_EXTBUFF_FEI_DEC_STREAM_OUT ) +#if (MFX_VERSION >= 1027) +EXTBUF(mfxExtFeiHevcEncFrameCtrl , MFX_EXTBUFF_HEVCFEI_ENC_CTRL ) +EXTBUF(mfxExtFeiHevcEncMVPredictors , MFX_EXTBUFF_HEVCFEI_ENC_MV_PRED ) +EXTBUF(mfxExtFeiHevcEncQP , MFX_EXTBUFF_HEVCFEI_ENC_QP ) +EXTBUF(mfxExtFeiHevcEncCtuCtrl , MFX_EXTBUFF_HEVCFEI_ENC_CTU_CTRL ) +#endif +#endif //defined(__MFXFEI_H__) + +#if defined(__MFXCAMERA_H__) +EXTBUF(mfxExtCamTotalColorControl , MFX_EXTBUF_CAM_TOTAL_COLOR_CONTROL ) +EXTBUF(mfxExtCamCscYuvRgb , MFX_EXTBUF_CAM_CSC_YUV_RGB ) +EXTBUF(mfxExtCamGammaCorrection , MFX_EXTBUF_CAM_GAMMA_CORRECTION ) +EXTBUF(mfxExtCamWhiteBalance , MFX_EXTBUF_CAM_WHITE_BALANCE ) +EXTBUF(mfxExtCamHotPixelRemoval , MFX_EXTBUF_CAM_HOT_PIXEL_REMOVAL ) +EXTBUF(mfxExtCamBlackLevelCorrection, MFX_EXTBUF_CAM_BLACK_LEVEL_CORRECTION ) +EXTBUF(mfxExtCamVignetteCorrection , MFX_EXTBUF_CAM_VIGNETTE_CORRECTION ) +EXTBUF(mfxExtCamBayerDenoise , MFX_EXTBUF_CAM_BAYER_DENOISE ) +EXTBUF(mfxExtCamColorCorrection3x3 , MFX_EXTBUF_CAM_COLOR_CORRECTION_3X3 ) +EXTBUF(mfxExtCamPadding , MFX_EXTBUF_CAM_PADDING ) +EXTBUF(mfxExtCamPipeControl , MFX_EXTBUF_CAM_PIPECONTROL ) +#endif //defined(__MFXCAMERA_H__) + +#if defined(__MFXCOMMON_H__) +// Threading API +EXTBUF(mfxExtThreadsParam , MFX_EXTBUFF_THREADS_PARAM) +#endif //defined(__MFXCOMMON_H__) + +#if defined(__MFXSC_H__) +//Screen capture +EXTBUF(mfxExtScreenCaptureParam , MFX_EXTBUFF_SCREEN_CAPTURE_PARAM ) +#endif //defined(__MFXSC_H__) + +#if defined(__MFXVP9_H__) +#if (MFX_VERSION >= MFX_VERSION_NEXT) +EXTBUF(mfxExtVP9DecodedFrameInfo , MFX_EXTBUFF_VP9_DECODED_FRAME_INFO ) +#endif +#endif //defined(__MFXVP9_H__) + +#if defined(__MFXBRC_H__) +EXTBUF(mfxExtBRC, MFX_EXTBUFF_BRC) +#endif // defined(__MFXBRC_H__) + +#if defined(__MFXPCP_H__) +#if (MFX_VERSION >= 1030) +EXTBUF(mfxExtCencParam , MFX_EXTBUFF_CENC_PARAM ) +#endif +#endif // defined(__MFXPCP_H__) + +#if defined(__MFXSCD_H__) +EXTBUF(mfxExtSCD, MFX_EXTBUFF_SCD) +#endif // defined(__MFXSCD_H__) + +#ifdef __MFXLA_H__ +EXTBUF(mfxExtLAControl , MFX_EXTBUFF_LOOKAHEAD_CTRL ) +EXTBUF(mfxExtLAFrameStatistics , MFX_EXTBUFF_LOOKAHEAD_STAT ) +#endif //__MFXLA_H__ diff --git a/mfx/ts_struct_decl.h b/mfx/ts_struct_decl.h new file mode 100644 index 0000000..0a32fc1 --- /dev/null +++ b/mfx/ts_struct_decl.h @@ -0,0 +1,1443 @@ +// Copyright (c) 2018-2020 Intel Corporation +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +STRUCT(mfxI16Pair, + FIELD_T(mfxI16, x) + FIELD_T(mfxI16, y) +) + +STRUCT(mfxHDLPair, + FIELD_T(mfxHDL, first ) + FIELD_T(mfxHDL, second) +) + +STRUCT(mfxExtBuffer, + FIELD_T(mfx4CC, BufferId) + FIELD_T(mfxU32, BufferSz) +) + +STRUCT(mfxVersion, + FIELD_T(mfxU16, Minor ) + FIELD_T(mfxU16, Major ) + FIELD_T(mfxU32, Version) +) + +STRUCT(mfxBitstream, + FIELD_T(mfxEncryptedData*, EncryptedData ) + FIELD_T(mfxExtBuffer ** , ExtParam ) + FIELD_T(mfxU16 , NumExtParam ) + FIELD_T(mfxI64 , DecodeTimeStamp) + FIELD_T(mfxU64 , TimeStamp ) + FIELD_T(mfxU8* , Data ) + FIELD_T(mfxU32 , DataOffset ) + FIELD_T(mfxU32 , DataLength ) + FIELD_T(mfxU32 , MaxLength ) + FIELD_T(mfxU16 , PicStruct ) + FIELD_T(mfxU16 , FrameType ) + FIELD_T(mfxU16 , DataFlag ) +) + +STRUCT(mfxFrameId, + FIELD_T(mfxU16, TemporalId ) + FIELD_T(mfxU16, PriorityId ) + FIELD_T(mfxU16, DependencyId) + FIELD_T(mfxU16, QualityId ) + FIELD_T(mfxU16, ViewId ) +) + +STRUCT(mfxFrameInfo, + FIELD_S(mfxFrameId, FrameId) + FIELD_T(mfxU16, BitDepthLuma ) + FIELD_T(mfxU16, BitDepthChroma) + FIELD_T(mfxU16, Shift ) + FIELD_T(mfx4CC, FourCC ) + FIELD_T(mfxU16, Width ) + FIELD_T(mfxU16, Height ) + FIELD_T(mfxU16, CropX ) + FIELD_T(mfxU16, CropY ) + FIELD_T(mfxU16, CropW ) + FIELD_T(mfxU16, CropH ) + FIELD_T(mfxU32, FrameRateExtN ) + FIELD_T(mfxU32, FrameRateExtD ) + FIELD_T(mfxU16, AspectRatioW ) + FIELD_T(mfxU16, AspectRatioH ) + FIELD_T(mfxU16, PicStruct ) + FIELD_T(mfxU16, ChromaFormat ) +) + +STRUCT(mfxFrameData, + FIELD_T(mfxExtBuffer**, ExtParam ) + FIELD_T(mfxU16 , NumExtParam ) + FIELD_T(mfxU16 , PitchHigh ) + FIELD_T(mfxU64 , TimeStamp ) + FIELD_T(mfxU32 , FrameOrder ) + FIELD_T(mfxU16 , Locked ) + FIELD_T(mfxU16 , Pitch ) + FIELD_T(mfxU16 , PitchLow ) + FIELD_T(mfxU8 * , Y ) + FIELD_T(mfxU16* , Y16 ) + FIELD_T(mfxU8 * , R ) + FIELD_T(mfxU8 * , UV ) + FIELD_T(mfxU8 * , VU ) + FIELD_T(mfxU8 * , CbCr ) + FIELD_T(mfxU8 * , CrCb ) + FIELD_T(mfxU8 * , Cb ) + FIELD_T(mfxU8 * , U ) + FIELD_T(mfxU16* , U16 ) + FIELD_T(mfxU8 * , G ) + FIELD_T(mfxU8 * , Cr ) + FIELD_T(mfxU8 * , V ) + FIELD_T(mfxU16* , V16 ) + FIELD_T(mfxU8 * , B ) + FIELD_T(mfxU8 * , A ) + FIELD_T(mfxMemId, MemId ) + FIELD_T(mfxU16 , Corrupted ) + FIELD_T(mfxU16 , DataFlag ) +) + +STRUCT(mfxFrameSurface1, + FIELD_S(mfxFrameInfo, Info) + FIELD_S(mfxFrameData, Data) +) + +STRUCT(mfxInfoMFX, + FIELD_T(mfxU16, LowPower ) + FIELD_T(mfxU16, BRCParamMultiplier) + FIELD_S(mfxFrameInfo, FrameInfo ) + FIELD_T(mfx4CC, CodecId ) + FIELD_T(mfxU16, CodecProfile ) + FIELD_T(mfxU16, CodecLevel ) + FIELD_T(mfxU16, NumThread ) + FIELD_T(mfxU16, TargetUsage ) + FIELD_T(mfxU16, GopPicSize ) + FIELD_T(mfxU16, GopRefDist ) + FIELD_T(mfxU16, GopOptFlag ) + FIELD_T(mfxU16, IdrInterval ) + FIELD_T(mfxU16, RateControlMethod ) + FIELD_T(mfxU16, InitialDelayInKB ) + FIELD_T(mfxU16, QPI ) + FIELD_T(mfxU16, Accuracy ) + FIELD_T(mfxU16, BufferSizeInKB ) + FIELD_T(mfxU16, TargetKbps ) + FIELD_T(mfxU16, QPP ) + FIELD_T(mfxU16, ICQQuality ) + FIELD_T(mfxU16, MaxKbps ) + FIELD_T(mfxU16, QPB ) + FIELD_T(mfxU16, Convergence ) + FIELD_T(mfxU16, NumSlice ) + FIELD_T(mfxU16, NumRefFrame ) + FIELD_T(mfxU16, EncodedOrder ) + FIELD_T(mfxU16, DecodedOrder ) + FIELD_T(mfxU16, MaxDecFrameBuffering ) + FIELD_T(mfxU16, ExtendedPicStruct ) + FIELD_T(mfxU16, TimeStampCalc ) + FIELD_T(mfxU16, SliceGroupsPresent) + FIELD_T(mfxU16, JPEGChromaFormat ) + FIELD_T(mfxU16, Rotation ) + FIELD_T(mfxU16, JPEGColorFormat ) + FIELD_T(mfxU16, InterleavedDec ) + FIELD_T(mfxU16, Interleaved ) + FIELD_T(mfxU16, Quality ) + FIELD_T(mfxU16, RestartInterval ) +) + +STRUCT(mfxInfoVPP, + FIELD_S(mfxFrameInfo, In) + FIELD_S(mfxFrameInfo, Out) +) + +STRUCT(mfxVideoParam, + FIELD_S(mfxInfoMFX, mfx) + FIELD_S(mfxInfoVPP, vpp) + FIELD_T(mfxU16 , AsyncDepth ) + FIELD_T(mfxU16 , Protected ) + FIELD_T(mfxU16 , IOPattern ) + FIELD_T(mfxExtBuffer**, ExtParam ) + FIELD_T(mfxU16 , NumExtParam ) +) + +STRUCT(mfxExtCodingOption, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16 , reserved1 ) + FIELD_T(mfxU16 , RateDistortionOpt ) + FIELD_T(mfxU16 , MECostType ) + FIELD_T(mfxU16 , MESearchType ) + FIELD_S(mfxI16Pair , MVSearchWindow ) + FIELD_T(mfxU16 , EndOfSequence ) + FIELD_T(mfxU16 , FramePicture ) + FIELD_T(mfxU16 , CAVLC ) + FIELD_T(mfxU16 , RecoveryPointSEI ) + FIELD_T(mfxU16 , ViewOutput ) + FIELD_T(mfxU16 , NalHrdConformance ) + FIELD_T(mfxU16 , SingleSeiNalUnit ) + FIELD_T(mfxU16 , VuiVclHrdParameters ) + FIELD_T(mfxU16 , RefPicListReordering ) + FIELD_T(mfxU16 , ResetRefList ) + FIELD_T(mfxU16 , RefPicMarkRep ) + FIELD_T(mfxU16 , FieldOutput ) + FIELD_T(mfxU16 , IntraPredBlockSize ) + FIELD_T(mfxU16 , InterPredBlockSize ) + FIELD_T(mfxU16 , MVPrecision ) + FIELD_T(mfxU16 , MaxDecFrameBuffering ) + FIELD_T(mfxU16 , AUDelimiter ) + FIELD_T(mfxU16 , EndOfStream ) + FIELD_T(mfxU16 , PicTimingSEI ) + FIELD_T(mfxU16 , VuiNalHrdParameters ) +) + +STRUCT(mfxExtCodingOption2, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16 , IntRefType ) + FIELD_T(mfxU16 , IntRefCycleSize ) + FIELD_T(mfxI16 , IntRefQPDelta ) + FIELD_T(mfxU32 , MaxFrameSize ) + FIELD_T(mfxU32 , MaxSliceSize ) + FIELD_T(mfxU16 , BitrateLimit ) + FIELD_T(mfxU16 , MBBRC ) + FIELD_T(mfxU16 , ExtBRC ) + FIELD_T(mfxU16 , LookAheadDepth ) + FIELD_T(mfxU16 , Trellis ) + FIELD_T(mfxU16 , RepeatPPS ) + FIELD_T(mfxU16 , BRefType ) + FIELD_T(mfxU16 , AdaptiveI ) + FIELD_T(mfxU16 , AdaptiveB ) + FIELD_T(mfxU16 , LookAheadDS ) + FIELD_T(mfxU16 , NumMbPerSlice ) + FIELD_T(mfxU16 , SkipFrame ) + FIELD_T(mfxU8 , MinQPI ) + FIELD_T(mfxU8 , MaxQPI ) + FIELD_T(mfxU8 , MinQPP ) + FIELD_T(mfxU8 , MaxQPP ) + FIELD_T(mfxU8 , MinQPB ) + FIELD_T(mfxU8 , MaxQPB ) + FIELD_T(mfxU16 , FixedFrameRate ) + FIELD_T(mfxU16 , DisableDeblockingIdc ) + FIELD_T(mfxU16 , DisableVUI ) + FIELD_T(mfxU16 , BufferingPeriodSEI) + FIELD_T(mfxU16 , EnableMAD ) + FIELD_T(mfxU16 , UseRawRef ) +) + +STRUCT(mfxExtVPPDoNotUse, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32 , NumAlg) + FIELD_T(mfxU32*, AlgList) +) + +STRUCT(mfxExtVPPDenoise, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, DenoiseFactor) +) + +STRUCT(mfxExtVPPDetail, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, DetailFactor) +) + +STRUCT(mfxExtVPPProcAmp, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxF64, Brightness ) + FIELD_T(mfxF64, Contrast ) + FIELD_T(mfxF64, Hue ) + FIELD_T(mfxF64, Saturation ) +) + +STRUCT(mfxEncodeStat, + FIELD_T(mfxU32, NumFrame ) + FIELD_T(mfxU64, NumBit ) + FIELD_T(mfxU32, NumCachedFrame ) +) + +STRUCT(mfxDecodeStat, + FIELD_T(mfxU32, NumFrame ) + FIELD_T(mfxU32, NumSkippedFrame ) + FIELD_T(mfxU32, NumError ) + FIELD_T(mfxU32, NumCachedFrame ) +) + +STRUCT(mfxVPPStat, + FIELD_T(mfxU32, NumFrame ) + FIELD_T(mfxU32, NumCachedFrame ) +) + +STRUCT(mfxExtVppAuxData, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, PicStruct ) + FIELD_T(mfxU16, SceneChangeRate ) + FIELD_T(mfxU16, RepeatedFrame ) +) + +STRUCT(mfxPayload, + FIELD_T(mfxU8*, Data ) + FIELD_T(mfxU32, NumBit ) + FIELD_T(mfxU16, Type ) + FIELD_T(mfxU16, BufSize ) +) + +STRUCT(mfxEncodeCtrl, + FIELD_S(mfxExtBuffer , Header ) + FIELD_T(mfxU16 , MfxNalUnitType) + FIELD_T(mfxU16 , SkipFrame ) + FIELD_T(mfxU16 , QP ) + FIELD_T(mfxU16 , FrameType ) + FIELD_T(mfxU16 , NumExtParam) + FIELD_T(mfxU16 , NumPayload ) + FIELD_T(mfxExtBuffer**, ExtParam ) + FIELD_T(mfxPayload** , Payload ) +) + +STRUCT(mfxFrameAllocRequest, + FIELD_S(mfxFrameInfo, Info) + FIELD_T(mfxU16, Type ) + FIELD_T(mfxU16, NumFrameMin ) + FIELD_T(mfxU16, NumFrameSuggested ) + ) + +STRUCT(mfxFrameAllocResponse, + FIELD_T(mfxMemId*, mids ) + FIELD_T(mfxU16 , NumFrameActual ) +) + +STRUCT(mfxExtCodingOptionSPSPPS, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU8* , SPSBuffer ) + FIELD_T(mfxU8* , PPSBuffer ) + FIELD_T(mfxU16 , SPSBufSize) + FIELD_T(mfxU16 , PPSBufSize) + FIELD_T(mfxU16 , SPSId ) + FIELD_T(mfxU16 , PPSId ) +) + +STRUCT(mfxExtVideoSignalInfo, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16, VideoFormat ) + FIELD_T(mfxU16, VideoFullRange ) + FIELD_T(mfxU16, ColourDescriptionPresent) + FIELD_T(mfxU16, ColourPrimaries ) + FIELD_T(mfxU16, TransferCharacteristics ) + FIELD_T(mfxU16, MatrixCoefficients ) +) + +STRUCT(mfxExtVPPDoUse, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32 , NumAlg) + FIELD_T(mfxU32*, AlgList) +) + +STRUCT(mfxExtOpaqueSurfaceAlloc_InOut, + FIELD_T(mfxFrameSurface1 ** , Surfaces ) + FIELD_T(mfxU16 , Type ) + FIELD_T(mfxU16 , NumSurface) +) + +STRUCT(mfxExtOpaqueSurfaceAlloc, + FIELD_S(mfxExtBuffer, Header) + FIELD_S(mfxExtOpaqueSurfaceAlloc_InOut, In) + FIELD_S(mfxExtOpaqueSurfaceAlloc_InOut, Out) +) + +STRUCT(mfxExtAVCRefListCtrl_Entry, + FIELD_T(mfxU32, FrameOrder ) + FIELD_T(mfxU16, PicStruct ) + FIELD_T(mfxU16, ViewId ) + FIELD_T(mfxU16, LongTermIdx ) +) + +STRUCT(mfxExtAVCRefListCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, NumRefIdxL0Active) + FIELD_T(mfxU16, NumRefIdxL1Active) + FIELD_S(mfxExtAVCRefListCtrl_Entry, PreferredRefList) + FIELD_S(mfxExtAVCRefListCtrl_Entry, RejectedRefList ) + FIELD_S(mfxExtAVCRefListCtrl_Entry, LongTermRefList ) + FIELD_T(mfxU16, ApplyLongTermIdx ) +) + +STRUCT(mfxExtVPPFrameRateConversion, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, Algorithm) +) + +STRUCT(mfxExtVPPImageStab, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, Mode) +) + +STRUCT(mfxExtPictureTimingSEI_TimeStamp, + FIELD_T(mfxU16, ClockTimestampFlag) + FIELD_T(mfxU16, CtType ) + FIELD_T(mfxU16, NuitFieldBasedFlag) + FIELD_T(mfxU16, CountingType ) + FIELD_T(mfxU16, FullTimestampFlag ) + FIELD_T(mfxU16, DiscontinuityFlag ) + FIELD_T(mfxU16, CntDroppedFlag ) + FIELD_T(mfxU16, NFrames ) + FIELD_T(mfxU16, SecondsFlag ) + FIELD_T(mfxU16, MinutesFlag ) + FIELD_T(mfxU16, HoursFlag ) + FIELD_T(mfxU16, SecondsValue ) + FIELD_T(mfxU16, MinutesValue ) + FIELD_T(mfxU16, HoursValue ) + FIELD_T(mfxU32, TimeOffset ) +) + +STRUCT(mfxExtPictureTimingSEI, + FIELD_S(mfxExtBuffer, Header) + FIELD_S(mfxExtPictureTimingSEI_TimeStamp, TimeStamp) +) + +STRUCT(mfxExtAvcTemporalLayers_Layer, + FIELD_T(mfxU16, Scale) +) + +STRUCT(mfxExtAvcTemporalLayers, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, BaseLayerPID) + FIELD_S(mfxExtAvcTemporalLayers_Layer, Layer) +) + +STRUCT(mfxExtEncoderCapability, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, MBPerSec) +) + +STRUCT(mfxExtEncoderResetOption, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, StartNewSequence) +) + +STRUCT(mfxExtAVCEncodedFrameInfo_RefList, + FIELD_T(mfxU32, FrameOrder ) + FIELD_T(mfxU16, PicStruct ) + FIELD_T(mfxU16, LongTermIdx ) +) + +STRUCT(mfxExtAVCEncodedFrameInfo, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, FrameOrder ) + FIELD_T(mfxU16, PicStruct ) + FIELD_T(mfxU16, LongTermIdx ) + FIELD_T(mfxU32, MAD ) + FIELD_T(mfxU16, BRCPanicMode) + FIELD_T(mfxU16, QP ) + FIELD_T(mfxU32, SecondFieldOffset ) + FIELD_S(mfxExtAVCEncodedFrameInfo_RefList, UsedRefListL0) + FIELD_S(mfxExtAVCEncodedFrameInfo_RefList, UsedRefListL1) +) + +STRUCT(mfxVPPCompInputStream, + FIELD_T(mfxU32, DstX ) + FIELD_T(mfxU32, DstY ) + FIELD_T(mfxU32, DstW ) + FIELD_T(mfxU32, DstH ) + FIELD_T(mfxU16, LumaKeyEnable ) + FIELD_T(mfxU16, LumaKeyMin ) + FIELD_T(mfxU16, LumaKeyMax ) + FIELD_T(mfxU16, GlobalAlphaEnable) + FIELD_T(mfxU16, GlobalAlpha ) + FIELD_T(mfxU16, PixelAlphaEnable ) + FIELD_T(mfxU16, TileId ) +) + +STRUCT(mfxExtVPPComposite, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, Y) + FIELD_T(mfxU16, U) + FIELD_T(mfxU16, V) + FIELD_T(mfxU16, R) + FIELD_T(mfxU16, G) + FIELD_T(mfxU16, B) + FIELD_T(mfxU16, NumTiles) + FIELD_T(mfxU16, NumInputStream) + FIELD_T(mfxVPPCompInputStream*, InputStream) +) + +STRUCT(mfxExtColorConversion, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, ChromaSiting) +) + +STRUCT(mfxExtVPPVideoSignalInfo_InOut, + FIELD_T(mfxU16, TransferMatrix ) + FIELD_T(mfxU16, NominalRange ) +) + +STRUCT(mfxExtVPPVideoSignalInfo, + FIELD_S(mfxExtBuffer, Header) + FIELD_S(mfxExtVPPVideoSignalInfo_InOut, In ) + FIELD_S(mfxExtVPPVideoSignalInfo_InOut, Out) +) + +STRUCT(mfxExtEncoderROI_Entry, + FIELD_T(mfxU32, Left ) + FIELD_T(mfxU32, Top ) + FIELD_T(mfxU32, Right ) + FIELD_T(mfxU32, Bottom ) + FIELD_T(mfxI16, Priority) +) + +STRUCT(mfxExtEncoderROI, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxI16, NumROI) + FIELD_T(mfxU16, ROIMode) + FIELD_S(mfxExtEncoderROI_Entry, ROI) +) + +STRUCT(mfxExtVPPDeinterlacing, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, Mode) + FIELD_T(mfxU16, TelecinePattern) + FIELD_T(mfxU16, TelecineLocation) +) + +STRUCT(mfxExtVP8CodingOption, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, Version) + FIELD_T(mfxU16, EnableMultipleSegments) + FIELD_T(mfxU16, LoopFilterType) +) + +STRUCT(mfxPluginUID, + FIELD_T(mfxU8, Data) +) + +STRUCT(mfxExtFeiParam, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxFeiFunction, Func) + FIELD_T(mfxU16, SingleFieldProcessing) +) + +STRUCT(mfxExtFeiSPS, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, SPSId) + FIELD_T(mfxU16, PicOrderCntType) + FIELD_T(mfxU16, Log2MaxPicOrderCntLsb) +) + +#if MFX_VERSION >= 1023 +STRUCT(mfxExtFeiPPS_mfxExtFeiPpsDPB, + FIELD_T(mfxU16, Index) + FIELD_T(mfxU16, PicType) + FIELD_T(mfxI32, FrameNumWrap) + FIELD_T(mfxU16, LongTermFrameIdx) +) + +STRUCT(mfxExtFeiPPS, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, SPSId) + FIELD_T(mfxU16, PPSId) + FIELD_T(mfxU16, PictureType) + FIELD_T(mfxU16, FrameType) + FIELD_T(mfxU16, PicInitQP) + FIELD_T(mfxU16, NumRefIdxL0Active) + FIELD_T(mfxU16, NumRefIdxL1Active) + FIELD_T(mfxI16, ChromaQPIndexOffset) + FIELD_T(mfxI16, SecondChromaQPIndexOffset) + FIELD_T(mfxU16, Transform8x8ModeFlag) + FIELD_S(mfxExtFeiPPS_mfxExtFeiPpsDPB, DpbBefore) + FIELD_S(mfxExtFeiPPS_mfxExtFeiPpsDPB, DpbAfter) +) + +#else +STRUCT(mfxExtFeiPPS, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, SPSId) + FIELD_T(mfxU16, PPSId) + FIELD_T(mfxU16, PictureType) + FIELD_T(mfxU16, PicInitQP) + FIELD_T(mfxU16, NumRefIdxL0Active) + FIELD_T(mfxU16, NumRefIdxL1Active) + FIELD_T(mfxU16, ReferenceFrames) + FIELD_T(mfxI16, ChromaQPIndexOffset) + FIELD_T(mfxI16, SecondChromaQPIndexOffset) + FIELD_T(mfxU16, Transform8x8ModeFlag) +) +#endif //MFX_VERSION >= 1023 + +STRUCT(mfxExtFeiPreEncCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, Qp) + FIELD_T(mfxU16, LenSP) + FIELD_T(mfxU16, SearchPath) + FIELD_T(mfxU16, SubMBPartMask) + FIELD_T(mfxU16, SubPelMode) + FIELD_T(mfxU16, InterSAD) + FIELD_T(mfxU16, IntraSAD) + FIELD_T(mfxU16, AdaptiveSearch) + FIELD_T(mfxU16, MVPredictor) + FIELD_T(mfxU16, MBQp) + FIELD_T(mfxU16, FTEnable) + FIELD_T(mfxU16, IntraPartMask) + FIELD_T(mfxU16, RefWidth) + FIELD_T(mfxU16, RefHeight) + FIELD_T(mfxU16, SearchWindow) + FIELD_T(mfxU16, DisableMVOutput) + FIELD_T(mfxU16, DisableStatisticsOutput) + FIELD_T(mfxU16, Enable8x8Stat) + FIELD_T(mfxU16, PictureType) + FIELD_T(mfxU16, DownsampleInput) +) + +STRUCT(mfxExtFeiPreEncMVPredictors, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) + FIELD_T(mfxExtFeiPreEncMVPredictors_MB*, MB) +) + +STRUCT(mfxExtFeiPreEncMV, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) + FIELD_T(mfxExtFeiPreEncMV_MB*, MB) +) + +STRUCT(mfxExtFeiPreEncMBStat, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) + FIELD_T(mfxExtFeiPreEncMBStat_MB*, MB) +) + +STRUCT(mfxExtFeiEncFrameCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, SearchPath) + FIELD_T(mfxU16, LenSP) + FIELD_T(mfxU16, SubMBPartMask) + FIELD_T(mfxU16, IntraPartMask) + FIELD_T(mfxU16, MultiPredL0) + FIELD_T(mfxU16, MultiPredL1) + FIELD_T(mfxU16, SubPelMode) + FIELD_T(mfxU16, InterSAD) + FIELD_T(mfxU16, IntraSAD) + FIELD_T(mfxU16, DistortionType) + FIELD_T(mfxU16, RepartitionCheckEnable) + FIELD_T(mfxU16, AdaptiveSearch) + FIELD_T(mfxU16, MVPredictor) + FIELD_T(mfxU16, NumMVPredictors) + FIELD_T(mfxU16, PerMBQp) + FIELD_T(mfxU16, PerMBInput) + FIELD_T(mfxU16, MBSizeCtrl) + FIELD_T(mfxU16, RefWidth) + FIELD_T(mfxU16, RefHeight) + FIELD_T(mfxU16, SearchWindow) +) + +STRUCT(mfxExtFeiEncMVPredictors, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) +) + +STRUCT(mfxExtFeiEncMV_MB, + FIELD_S(mfxI16Pair, MV) +) + +STRUCT(mfxExtFeiEncMV, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) + FIELD_T(mfxExtFeiEncMV_MB*, MB) +) + +STRUCT(mfxExtFeiEncMBCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) + FIELD_T(mfxExtFeiEncMBCtrl_MB*, MB) +) +STRUCT(mfxExtFeiEncMBStat, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) +) + +STRUCT(mfxExtFeiEncQP, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) +) + +STRUCT(mfxExtFeiPakMBCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) + FIELD_T(mfxFeiPakMBCtrl*, MB) +) + + +STRUCT(mfxExtFeiSliceHeader, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, NumSlice) +) + +STRUCT(mfxExtFeiRepackCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, MaxFrameSize) + FIELD_T(mfxU32, NumPasses) +) + +STRUCT(mfxExtFeiDecStreamOut, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, NumMBAlloc) + FIELD_T(mfxU16, RemapRefIdx) + FIELD_T(mfxU16, PicStruct) + FIELD_T(mfxFeiDecStreamOutMBCtrl*, MB) +) + +#if (MFX_VERSION >= 1027) +STRUCT(mfxExtFeiHevcEncFrameCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, SearchPath) + FIELD_T(mfxU16, LenSP) + FIELD_T(mfxU16, RefWidth) + FIELD_T(mfxU16, RefHeight) + FIELD_T(mfxU16, SearchWindow) + FIELD_T(mfxU16, NumMvPredictors) + FIELD_T(mfxU16, MultiPred) + FIELD_T(mfxU16, SubPelMode) + FIELD_T(mfxU16, AdaptiveSearch) + FIELD_T(mfxU16, MVPredictor) + FIELD_T(mfxU16, PerCuQp) + FIELD_T(mfxU16, PerCtuInput) + FIELD_T(mfxU16, ForceCtuSplit) + FIELD_T(mfxU16, NumFramePartitions) + FIELD_T(mfxU16, FastIntraMode) +) + +STRUCT(mfxExtFeiHevcEncMVPredictors, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, VaBufferID) + FIELD_T(mfxU32, Pitch) + FIELD_T(mfxU32, Height) +) + +STRUCT(mfxExtFeiHevcEncCtuCtrl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, VaBufferID) + FIELD_T(mfxU32, Pitch) + FIELD_T(mfxU32, Height) +) + +STRUCT(mfxExtFeiHevcEncQP, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, VaBufferID) + FIELD_T(mfxU32, Pitch) + FIELD_T(mfxU32, Height) + FIELD_T(mfxU8*, Data) +) +#endif + +STRUCT(mfxExtCamGammaCorrection, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16, Mode ) + FIELD_T(mfxU16, reserved1 ) + FIELD_T(mfxF64, GammaValue ) + FIELD_T(mfxU16, reserved2 ) + FIELD_T(mfxU16, NumPoints ) + FIELD_T(mfxU16, GammaPoint ) + FIELD_T(mfxU16, GammaCorrected ) +) +STRUCT(mfxExtCamWhiteBalance, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU32, Mode ) + FIELD_T(mfxF64, R ) + FIELD_T(mfxF64, G0 ) + FIELD_T(mfxF64, B ) + FIELD_T(mfxF64, G1 ) + FIELD_T(mfxU32, reserved) /* Fixed size array */ +) +STRUCT(mfxExtCamHotPixelRemoval, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, PixelThresholdDifference ) + FIELD_T(mfxU16, PixelCountThreshold ) +) +STRUCT(mfxCamVignetteCorrectionElement, + FIELD_T(mfxU8, integer ) + FIELD_T(mfxU8, mantissa) +) +STRUCT(mfxExtCamBlackLevelCorrection, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16, R ) + FIELD_T(mfxU16, G0 ) + FIELD_T(mfxU16, B ) + FIELD_T(mfxU16, G1 ) + FIELD_T(mfxU32, reserved ) /* Fixed size array */ +) + STRUCT(mfxExtCamTotalColorControl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU8, R) + FIELD_T(mfxU8, G) + FIELD_T(mfxU8, B) + FIELD_T(mfxU8, C) + FIELD_T(mfxU8, M) + FIELD_T(mfxU8, Y) +) + +STRUCT(mfxExtCamCscYuvRgb, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxF32, PreOffset) + FIELD_T(mfxF32, Matrix) + FIELD_T(mfxF32, PostOffset) + FIELD_T(mfxU16, reserved) +) + +STRUCT(mfxCamVignetteCorrectionParam, + FIELD_S(mfxCamVignetteCorrectionElement, R ) + FIELD_S(mfxCamVignetteCorrectionElement, G0) + FIELD_S(mfxCamVignetteCorrectionElement, B ) + FIELD_S(mfxCamVignetteCorrectionElement, G1) +) +STRUCT(mfxExtCamVignetteCorrection, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32 , Width ) + FIELD_T(mfxU32 , Height) + FIELD_T(mfxU32 , Pitch ) +) +STRUCT(mfxExtCamBayerDenoise, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16, Threshold) +) +STRUCT(mfxExtCamColorCorrection3x3, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxF64, CCM ) +) +STRUCT(mfxExtCamPadding, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, Top ) + FIELD_T(mfxU16, Bottom) + FIELD_T(mfxU16, Left ) + FIELD_T(mfxU16, Right ) +) +STRUCT(mfxExtCamPipeControl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, RawFormat ) +) + +STRUCT(mfxExtAVCRefLists_mfxRefPic, + FIELD_T(mfxU32, FrameOrder) + FIELD_T(mfxU16, PicStruct ) +) + +STRUCT(mfxExtAVCRefLists, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16 , NumRefIdxL0Active) + FIELD_T(mfxU16 , NumRefIdxL1Active) + FIELD_S(mfxExtAVCRefLists_mfxRefPic, RefPicList0) + FIELD_S(mfxExtAVCRefLists_mfxRefPic, RefPicList1) +) + +#if (MFX_VERSION >= MFX_VERSION_NEXT) +STRUCT(mfxExtCodingOption3, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, NumSliceI) + FIELD_T(mfxU16, NumSliceP) + FIELD_T(mfxU16, NumSliceB) + FIELD_T(mfxU16, WinBRCMaxAvgKbps) + FIELD_T(mfxU16, WinBRCSize) + FIELD_T(mfxU16, QVBRQuality) + FIELD_T(mfxU16, EnableMBQP) + FIELD_T(mfxU16, IntRefCycleDist) + FIELD_T(mfxU16, DirectBiasAdjustment) + FIELD_T(mfxU16, GlobalMotionBiasAdjustment)/* tri-state option */ + FIELD_T(mfxU16, MVCostScalingFactor) + FIELD_T(mfxU16, MBDisableSkipMap)/* tri-state option */ + FIELD_T(mfxU16, WeightedPred) + FIELD_T(mfxU16, WeightedBiPred) + FIELD_T(mfxU16, AspectRatioInfoPresent) /* tri-state option */ + FIELD_T(mfxU16, OverscanInfoPresent) /* tri-state option */ + FIELD_T(mfxU16, OverscanAppropriate) /* tri-state option */ + FIELD_T(mfxU16, TimingInfoPresent) /* tri-state option */ + FIELD_T(mfxU16, BitstreamRestriction) /* tri-state option */ + FIELD_T(mfxU16, LowDelayHrd) /* tri-state option */ + FIELD_T(mfxU16, MotionVectorsOverPicBoundaries) /* tri-state option */ + FIELD_T(mfxU16, Log2MaxMvLengthHorizontal) /* 0..16 */ + FIELD_T(mfxU16, Log2MaxMvLengthVertical) /* 0..16 */ + FIELD_T(mfxU16, ScenarioInfo) + FIELD_T(mfxU16, ContentInfo) + FIELD_T(mfxU16, PRefType) + FIELD_T(mfxU16, FadeDetection) /* tri-state option */ + FIELD_T(mfxI16, DeblockingAlphaTcOffset) /* -12..12 (slice_alpha_c0_offset_div2 << 1) */ + FIELD_T(mfxI16, DeblockingBetaOffset) /* -12..12 (slice_beta_offset_div2 << 1) */ + FIELD_T(mfxU16, GPB) + FIELD_T(mfxU32, MaxFrameSizeI) + FIELD_T(mfxU32, MaxFrameSizeP) + FIELD_T(mfxU16, EnableQPOffset) + FIELD_T(mfxI16, QPOffset) + FIELD_T(mfxU16, NumRefActiveP) + FIELD_T(mfxU16, NumRefActiveBL0) + FIELD_T(mfxU16, NumRefActiveBL1) + FIELD_T(mfxU16, TransformSkip) + FIELD_T(mfxU16, TargetChromaFormatPlus1) + FIELD_T(mfxU16, TargetBitDepthLuma) + FIELD_T(mfxU16, TargetBitDepthChroma) + FIELD_T(mfxU16, BRCPanicMode) + FIELD_T(mfxU16, LowDelayBRC) + FIELD_T(mfxU16, EnableMBForceIntra) + FIELD_T(mfxU16, AdaptiveMaxFrameSize) + FIELD_T(mfxU16, RepartitionCheckEnable) /* tri-state option */ + FIELD_T(mfxU16, QuantScaleType) + FIELD_T(mfxU16, IntraVLCFormat) + FIELD_T(mfxU16, ScanType) + FIELD_T(mfxU16, EncodedUnitsInfo) + FIELD_T(mfxU16, EnableNalUnitType) + FIELD_T(mfxU16, ExtBrcAdaptiveLTR) /* tri-state option for ExtBrcAdaptiveLTR */ +) +#elif (MFX_VERSION >= 1027) +STRUCT(mfxExtCodingOption3, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, NumSliceI) + FIELD_T(mfxU16, NumSliceP) + FIELD_T(mfxU16, NumSliceB) + FIELD_T(mfxU16, WinBRCMaxAvgKbps) + FIELD_T(mfxU16, WinBRCSize) + FIELD_T(mfxU16, QVBRQuality) + FIELD_T(mfxU16, EnableMBQP) + FIELD_T(mfxU16, IntRefCycleDist) + FIELD_T(mfxU16, DirectBiasAdjustment) + FIELD_T(mfxU16, GlobalMotionBiasAdjustment)/* tri-state option */ + FIELD_T(mfxU16, MVCostScalingFactor) + FIELD_T(mfxU16, MBDisableSkipMap)/* tri-state option */ + FIELD_T(mfxU16, WeightedPred) + FIELD_T(mfxU16, WeightedBiPred) + FIELD_T(mfxU16, AspectRatioInfoPresent) /* tri-state option */ + FIELD_T(mfxU16, OverscanInfoPresent) /* tri-state option */ + FIELD_T(mfxU16, OverscanAppropriate) /* tri-state option */ + FIELD_T(mfxU16, TimingInfoPresent) /* tri-state option */ + FIELD_T(mfxU16, BitstreamRestriction) /* tri-state option */ + FIELD_T(mfxU16, LowDelayHrd) /* tri-state option */ + FIELD_T(mfxU16, MotionVectorsOverPicBoundaries) /* tri-state option */ + FIELD_T(mfxU16, ScenarioInfo) + FIELD_T(mfxU16, ContentInfo) + FIELD_T(mfxU16, PRefType) + FIELD_T(mfxU16, FadeDetection) /* tri-state option */ + FIELD_T(mfxU16, GPB) + FIELD_T(mfxU32, MaxFrameSizeI) + FIELD_T(mfxU32, MaxFrameSizeP) + FIELD_T(mfxU16, EnableQPOffset) + FIELD_T(mfxI16, QPOffset) + FIELD_T(mfxU16, NumRefActiveP) + FIELD_T(mfxU16, NumRefActiveBL0) + FIELD_T(mfxU16, NumRefActiveBL1) + FIELD_T(mfxU16, TransformSkip) + FIELD_T(mfxU16, TargetChromaFormatPlus1) + FIELD_T(mfxU16, TargetBitDepthLuma) + FIELD_T(mfxU16, TargetBitDepthChroma) + FIELD_T(mfxU16, BRCPanicMode) + FIELD_T(mfxU16, LowDelayBRC) + FIELD_T(mfxU16, EnableMBForceIntra) + FIELD_T(mfxU16, AdaptiveMaxFrameSize) + FIELD_T(mfxU16, RepartitionCheckEnable) /* tri-state option */ + FIELD_T(mfxU16, EncodedUnitsInfo) + FIELD_T(mfxU16, EnableNalUnitType) + FIELD_T(mfxU16, ExtBrcAdaptiveLTR) +) + +#elif (MFX_VERSION >= 1026) +STRUCT(mfxExtCodingOption3, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16 , NumSliceI ) + FIELD_T(mfxU16 , NumSliceP ) + FIELD_T(mfxU16 , NumSliceB ) + FIELD_T(mfxU16 , WinBRCMaxAvgKbps ) + FIELD_T(mfxU16 , WinBRCSize ) + FIELD_T(mfxU16 , QVBRQuality ) + FIELD_T(mfxU16 , EnableMBQP ) + FIELD_T(mfxU16 , IntRefCycleDist ) + FIELD_T(mfxU16 , DirectBiasAdjustment ) + FIELD_T(mfxU16 , GlobalMotionBiasAdjustment )/* tri-state option */ + FIELD_T(mfxU16 , MVCostScalingFactor ) + FIELD_T(mfxU16 , MBDisableSkipMap )/* tri-state option */ + FIELD_T(mfxU16 , WeightedPred ) + FIELD_T(mfxU16 , WeightedBiPred ) + FIELD_T(mfxU16 , AspectRatioInfoPresent ) /* tri-state option */ + FIELD_T(mfxU16 , OverscanInfoPresent ) /* tri-state option */ + FIELD_T(mfxU16 , OverscanAppropriate ) /* tri-state option */ + FIELD_T(mfxU16 , TimingInfoPresent ) /* tri-state option */ + FIELD_T(mfxU16 , BitstreamRestriction ) /* tri-state option */ + FIELD_T(mfxU16 , LowDelayHrd ) /* tri-state option */ + FIELD_T(mfxU16 , MotionVectorsOverPicBoundaries) /* tri-state option */ + FIELD_T(mfxU16 , ScenarioInfo ) + FIELD_T(mfxU16 , ContentInfo ) + FIELD_T(mfxU16 , PRefType ) + FIELD_T(mfxU16 , FadeDetection ) /* tri-state option */ + FIELD_T(mfxU16 , GPB ) + FIELD_T(mfxU32 , MaxFrameSizeI ) + FIELD_T(mfxU32 , MaxFrameSizeP ) + FIELD_T(mfxU16 , EnableQPOffset ) + FIELD_T(mfxI16 , QPOffset ) + FIELD_T(mfxU16 , NumRefActiveP ) + FIELD_T(mfxU16 , NumRefActiveBL0 ) + FIELD_T(mfxU16 , NumRefActiveBL1 ) + FIELD_T(mfxU16 , TransformSkip) + FIELD_T(mfxU16 , BRCPanicMode ) + FIELD_T(mfxU16 , LowDelayBRC ) + FIELD_T(mfxU16 , EnableMBForceIntra ) + FIELD_T(mfxU16 , AdaptiveMaxFrameSize ) + FIELD_T(mfxU16 , RepartitionCheckEnable ) /* tri-state option */ + FIELD_T(mfxU16 , EncodedUnitsInfo ) + FIELD_T(mfxU16 , EnableNalUnitType ) + FIELD_T(mfxU16 , ExtBrcAdaptiveLTR) +) +#else +STRUCT(mfxExtCodingOption3, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16 , NumSliceI ) + FIELD_T(mfxU16 , NumSliceP ) + FIELD_T(mfxU16 , NumSliceB ) + FIELD_T(mfxU16 , WinBRCMaxAvgKbps ) + FIELD_T(mfxU16 , WinBRCSize ) + FIELD_T(mfxU16 , QVBRQuality ) + FIELD_T(mfxU16 , EnableMBQP ) + FIELD_T(mfxU16 , IntRefCycleDist ) + FIELD_T(mfxU16 , DirectBiasAdjustment ) + FIELD_T(mfxU16 , GlobalMotionBiasAdjustment )/* tri-state option */ + FIELD_T(mfxU16 , MVCostScalingFactor ) + FIELD_T(mfxU16 , MBDisableSkipMap )/* tri-state option */ + FIELD_T(mfxU16 , WeightedPred ) + FIELD_T(mfxU16 , WeightedBiPred ) + FIELD_T(mfxU16 , AspectRatioInfoPresent ) /* tri-state option */ + FIELD_T(mfxU16 , OverscanInfoPresent ) /* tri-state option */ + FIELD_T(mfxU16 , OverscanAppropriate ) /* tri-state option */ + FIELD_T(mfxU16 , TimingInfoPresent ) /* tri-state option */ + FIELD_T(mfxU16 , BitstreamRestriction ) /* tri-state option */ + FIELD_T(mfxU16 , LowDelayHrd ) /* tri-state option */ + FIELD_T(mfxU16 , MotionVectorsOverPicBoundaries) /* tri-state option */ + FIELD_T(mfxU16 , ScenarioInfo ) + FIELD_T(mfxU16 , ContentInfo ) + FIELD_T(mfxU16 , PRefType ) + FIELD_T(mfxU16 , FadeDetection ) /* tri-state option */ + FIELD_T(mfxU16 , GPB ) + FIELD_T(mfxU32 , MaxFrameSizeI ) + FIELD_T(mfxU32 , MaxFrameSizeP ) + FIELD_T(mfxU16 , EnableQPOffset ) + FIELD_T(mfxI16 , QPOffset ) + FIELD_T(mfxU16 , NumRefActiveP ) + FIELD_T(mfxU16 , NumRefActiveBL0 ) + FIELD_T(mfxU16 , NumRefActiveBL1 ) + FIELD_T(mfxU16 , BRCPanicMode ) + FIELD_T(mfxU16 , LowDelayBRC ) + FIELD_T(mfxU16 , EnableMBForceIntra ) + FIELD_T(mfxU16 , AdaptiveMaxFrameSize ) + FIELD_T(mfxU16 , RepartitionCheckEnable ) /* tri-state option */ + FIELD_T(mfxU16 , EncodedUnitsInfo ) + FIELD_T(mfxU16 , EnableNalUnitType ) +) +#endif + +STRUCT(mfxExtLAControl, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16 , LookAheadDepth) + FIELD_T(mfxU16 , DependencyDepth) + FIELD_T(mfxU16 , DownScaleFactor) + FIELD_T(mfxU16 , NumOutStream) + +) + +STRUCT(mfxQPandMode, + FIELD_T(mfxU8, QP) + FIELD_T(mfxU16, Mode) +) + +STRUCT(mfxExtMBQP, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32 , NumQPAlloc) + FIELD_T(mfxU8* , QP) +) + +STRUCT(mfxExtInsertHeaders, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, SPS) + FIELD_T(mfxU16, PPS) +) + + +STRUCT(mfxExtEncoderIPCMArea_area, + FIELD_T(mfxU32, Left ) + FIELD_T(mfxU32, Top ) + FIELD_T(mfxU32, Right ) + FIELD_T(mfxU32, Bottom ) +) + +STRUCT(mfxExtEncoderIPCMArea, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , NumArea) + FIELD_T(mfxExtEncoderIPCMArea_area*, Areas) +) + +STRUCT(mfxExtChromaLocInfo, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , ChromaLocInfoPresentFlag) + FIELD_T(mfxU16 , ChromaSampleLocTypeTopField) + FIELD_T(mfxU16 , ChromaSampleLocTypeBottomField) +) + + +STRUCT(mfxExtDecodedFrameInfo, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , FrameType) +) + +STRUCT(mfxExtDecodeErrorReport, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32 , ErrorTypes) +) + + + +STRUCT(mfxInitParam, + FIELD_T(mfxIMPL, Implementation) + FIELD_S(mfxVersion, Version) + FIELD_T(mfxU16, ExternalThreads) + FIELD_T(mfxExtBuffer**, ExtParam) + FIELD_T(mfxU16, NumExtParam) + FIELD_T(mfxU16, GPUCopy) +) + + +STRUCT(mfxExtThreadsParam, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU16 , NumThread ) + FIELD_T(mfxI32 , SchedulingType) + FIELD_T(mfxI32 , Priority ) +) + +STRUCT(mfxExtVPPFieldProcessing, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , Mode) + FIELD_T(mfxU16 , InField) + FIELD_T(mfxU16 , OutField) +) + +STRUCT(mfxExtVPPRotation, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , Angle) +) + +STRUCT(mfxExtVPPMirroring, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , Type) +) + +STRUCT(mfxExtScreenCaptureParam, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU32 , DisplayIndex ) + FIELD_T(mfxU16 , EnableDirtyRect ) + FIELD_T(mfxU16 , EnableCursorCapture) +) + +STRUCT(mfxExtDirtyRect_Entry, + FIELD_T(mfxU32, Left ) + FIELD_T(mfxU32, Top ) + FIELD_T(mfxU32, Right ) + FIELD_T(mfxU32, Bottom ) +) + +STRUCT(mfxExtDirtyRect, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxI16, NumRect) + FIELD_S(mfxExtDirtyRect_Entry, Rect ) +) + +STRUCT(mfxExtMoveRect_Entry, + FIELD_T(mfxU32, DestLeft ) + FIELD_T(mfxU32, DestTop ) + FIELD_T(mfxU32, DestRight ) + FIELD_T(mfxU32, DestBottom) + + FIELD_T(mfxU32, SourceLeft) + FIELD_T(mfxU32, SourceTop ) +) + +STRUCT(mfxExtMoveRect, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxI16, NumRect) + FIELD_S(mfxExtMoveRect_Entry, Rect ) +) + +STRUCT(mfxExtMVCSeqDesc, + FIELD_S(mfxExtBuffer , Header ) + FIELD_T(mfxU32 , NumView ) + FIELD_T(mfxU32 , NumViewAlloc ) + //FIELD_S(mfxMVCViewDependency* , View ) + FIELD_T(mfxU32 , NumViewId ) + FIELD_T(mfxU32 , NumViewIdAlloc) + //FIELD_S(mfxU16* , ViewId ) + FIELD_T(mfxU32 , NumOP ) + FIELD_T(mfxU32 , NumOPAlloc ) + //FIELD_S(mfxMVCOperationPoint* , OP ) + FIELD_T(mfxU16 , NumRefsTotal ) +) + +STRUCT(mfxExtMBDisableSkipMap, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU32 , MapSize) +) + +//STRUCT(mfxExtCodingOptionVPS, +// FIELD_S(mfxExtBuffer, Header ) +// FIELD_T(mfxU8* , VPSBuffer ) +// FIELD_T(mfxU16 , VPSBufSize) +// FIELD_T(mfxU16 , VPSId) +//) + +#if (MFX_VERSION >= MFX_VERSION_NEXT) + +STRUCT(mfxExtHEVCParam, + FIELD_S(mfxExtBuffer , Header ) + FIELD_T(mfxU16 , PicWidthInLumaSamples ) + FIELD_T(mfxU16 , PicHeightInLumaSamples) + FIELD_T(mfxU64 , GeneralConstraintFlags) + FIELD_T(mfxU16 , SampleAdaptiveOffset) + FIELD_T(mfxU16 , LCUSize) +) + +#elif (MFX_VERSION >= 1026) + +STRUCT(mfxExtHEVCParam, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, PicWidthInLumaSamples) + FIELD_T(mfxU16, PicHeightInLumaSamples) + FIELD_T(mfxU64, GeneralConstraintFlags) + FIELD_T(mfxU16, SampleAdaptiveOffset) + FIELD_T(mfxU16, LCUSize) +) + +#else + +STRUCT(mfxExtHEVCParam, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, PicWidthInLumaSamples) + FIELD_T(mfxU16, PicHeightInLumaSamples) + FIELD_T(mfxU64, GeneralConstraintFlags) + +) + +#endif + +STRUCT(mfxExtHEVCRegion, + FIELD_S(mfxExtBuffer, Header ) + FIELD_T(mfxU32 , RegionId) + FIELD_T(mfxU16 , RegionType) + FIELD_T(mfxU16 , RegionEncoding) +) + +#if (MFX_VERSION >= MFX_VERSION_NEXT) +STRUCT(mfxExtVP9DecodedFrameInfo, + FIELD_S(mfxExtBuffer, Header ) + //FIELD_T(mfxU16 , DisplayWidth) + //FIELD_T(mfxU16 , DisplayHeight) +) +#endif + +#if (MFX_VERSION >= 1026) +STRUCT(mfxVP9SegmentParam, + FIELD_T(mfxU16, FeatureEnabled) + FIELD_T(mfxI16, QIndexDelta) + FIELD_T(mfxI16, LoopFilterLevelDelta) + FIELD_T(mfxU16, ReferenceFrame) +) + +STRUCT(mfxExtVP9Segmentation, + FIELD_S(mfxExtBuffer , Header) + FIELD_T(mfxU16 , NumSegments) + FIELD_S(mfxVP9SegmentParam, Segment) + FIELD_T(mfxU16 , SegmentIdBlockSize) + FIELD_T(mfxU32 , NumSegmentIdAlloc) + FIELD_T(mfxU8* , SegmentId) +) + +STRUCT(mfxVP9TemporalLayer, + FIELD_T(mfxU16, FrameRateScale) + FIELD_T(mfxU16, TargetKbps) +) + +STRUCT(mfxExtVP9TemporalLayers, + FIELD_S(mfxExtBuffer , Header) + FIELD_S(mfxVP9TemporalLayer , Layer) +) +#endif + +#if (MFX_VERSION >= MFX_VERSION_NEXT) +STRUCT(mfxExtVP9Param, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , FrameWidth) + FIELD_T(mfxU16 , FrameHeight) + FIELD_T(mfxU16 , WriteIVFHeaders) + FIELD_T(mfxI16 , LoopFilterRefDelta) + FIELD_T(mfxI16 , LoopFilterModeDelta) + FIELD_T(mfxI16 , QIndexDeltaLumaDC) + FIELD_T(mfxI16 , QIndexDeltaChromaAC) + FIELD_T(mfxI16 , QIndexDeltaChromaDC) + FIELD_T(mfxU16 , NumTileRows) + FIELD_T(mfxU16 , NumTileColumns) +) +#elif (MFX_VERSION >= 1029) +STRUCT(mfxExtVP9Param, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , FrameWidth) + FIELD_T(mfxU16 , FrameHeight) + FIELD_T(mfxU16 , WriteIVFHeaders) + FIELD_T(mfxI16 , QIndexDeltaLumaDC) + FIELD_T(mfxI16 , QIndexDeltaChromaAC) + FIELD_T(mfxI16 , QIndexDeltaChromaDC) + FIELD_T(mfxU16 , NumTileRows) + FIELD_T(mfxU16 , NumTileColumns) +) +#elif (MFX_VERSION >= 1026) +STRUCT(mfxExtVP9Param, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , FrameWidth) + FIELD_T(mfxU16 , FrameHeight) + FIELD_T(mfxU16 , WriteIVFHeaders) + FIELD_T(mfxI16 , QIndexDeltaLumaDC) + FIELD_T(mfxI16 , QIndexDeltaChromaAC) + FIELD_T(mfxI16 , QIndexDeltaChromaDC) +) +#endif + +STRUCT(mfxExtMBForceIntra, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32, MapSize) + FIELD_T(mfxU8*, Map) +) + +STRUCT(mfxExtMasteringDisplayColourVolume, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , InsertPayloadToggle) + FIELD_T(mfxU16 , DisplayPrimariesX) + FIELD_T(mfxU16 , DisplayPrimariesY) + FIELD_T(mfxU16 , WhitePointX) + FIELD_T(mfxU16 , WhitePointY) + FIELD_T(mfxU32 , MaxDisplayMasteringLuminance) + FIELD_T(mfxU32 , MinDisplayMasteringLuminance) +) + +STRUCT(mfxExtContentLightLevelInfo, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , InsertPayloadToggle) + FIELD_T(mfxU16 , MaxContentLightLevel) + FIELD_T(mfxU16 , MaxPicAverageLightLevel) +) + +STRUCT(mfxExtPredWeightTable, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, LumaLog2WeightDenom) + FIELD_T(mfxU16, ChromaLog2WeightDenom) + FIELD_T(mfxU16, LumaWeightFlag) + FIELD_T(mfxU16, ChromaWeightFlag) + FIELD_T(mfxI16, Weights) +) + +#if defined(__MFXBRC_H__) +STRUCT(mfxExtBRC, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxHDL, pthis) + FIELD_T(mfxHDL, Init) + FIELD_T(mfxHDL, Reset) + FIELD_T(mfxHDL, Close) + FIELD_T(mfxHDL, GetFrameCtrl) + FIELD_T(mfxHDL, Update) +) +#endif // defined(__MFXBRC_H__) + +STRUCT(mfxExtMultiFrameParam, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16 , MFMode) + FIELD_T(mfxU16 , MaxNumFrames) +) + +STRUCT(mfxExtMultiFrameControl, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32 , Timeout) + FIELD_T(mfxU16 , Flush) +) + +STRUCT(mfxEncodedUnitInfo, + FIELD_T(mfxU16, Type) + FIELD_T(mfxU32, Offset) + FIELD_T(mfxU32, Size) +) + +STRUCT(mfxExtEncodedUnitsInfo, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxEncodedUnitInfo*, UnitInfo) + FIELD_T(mfxU16, NumUnitsAlloc) + FIELD_T(mfxU16, NumUnitsEncoded) +) + +#if defined(__MFXPCP_H__) +#if (MFX_VERSION >= 1030) +STRUCT(mfxExtCencParam, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU32 , StatusReportIndex) +) +#endif +#endif // defined(__MFXPCP_H__) + +#if defined(__MFXSCD_H__) +STRUCT(mfxExtSCD, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, SceneType) +) +#endif // defined(__MFXSCD_H__) + +#if (MFX_VERSION >= 1026) +#if (MFX_VERSION >= MFX_VERSION_NEXT) +STRUCT(mfxExtVppMctf, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, FilterStrength) + FIELD_T(mfxU16, Overlap) + FIELD_T(mfxU32, BitsPerPixelx100k) + FIELD_T(mfxU16, Deblocking) + FIELD_T(mfxU16, TemporalMode) + FIELD_T(mfxU16, MVPrecision) +) +#else +STRUCT(mfxExtVppMctf, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, FilterStrength) +) +#endif +#endif + +#if (MFX_VERSION >= 1034) +STRUCT(mfxAV1FilmGrainPoint, + FIELD_T(mfxU8, Value) + FIELD_T(mfxU8, Scaling) +) + +STRUCT(mfxExtAV1FilmGrainParam, + FIELD_S(mfxExtBuffer, Header) + FIELD_T(mfxU16, FilmGrainFlags) + FIELD_T(mfxU16, GrainSeed) + FIELD_T(mfxU8, RefIdx) + FIELD_T(mfxI8, NumYPoints) + FIELD_T(mfxI8, NumCbPoints) + FIELD_T(mfxI8, NumCrPoints) + FIELD_S(mfxAV1FilmGrainPoint, PointY) + FIELD_S(mfxAV1FilmGrainPoint, PointCb) + FIELD_S(mfxAV1FilmGrainPoint, PointCr) + FIELD_T(mfxI8, GrainScalingMinus8) + FIELD_T(mfxU8, ArCoeffLag) + FIELD_T(mfxU8, ArCoeffsYPlus128) + FIELD_T(mfxU8, ArCoeffsCbPlus128) + FIELD_T(mfxU8, ArCoeffsCrPlus128) + FIELD_T(mfxU8, ArCoeffShiftMinus6) + FIELD_T(mfxU8, GrainScaleShift) + FIELD_T(mfxU8, CbMult) + FIELD_T(mfxU8, CbLumaMult) + FIELD_T(mfxU16, CbOffset) + FIELD_T(mfxU8, CrMult) + FIELD_T(mfxU8, CrLumaMult) + FIELD_T(mfxU16, CrOffset) +) +#endif diff --git a/mfx/ts_typedef.h b/mfx/ts_typedef.h new file mode 100644 index 0000000..42ee614 --- /dev/null +++ b/mfx/ts_typedef.h @@ -0,0 +1,50 @@ +// Copyright (c) 2017-2020 Intel Corporation +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#pragma once + +#if __cplusplus >= 201103L +#define TYPEDEF_MEMBER(base, member, name) typedef std::remove_referencemember)>::type name; +#else +#if defined(__GNUC__) +#define TYPEDEF_MEMBER(base, member, name) typedef typeof(((base*)0)->member) name; +#endif +#endif +TYPEDEF_MEMBER(mfxExtOpaqueSurfaceAlloc, In, mfxExtOpaqueSurfaceAlloc_InOut) +TYPEDEF_MEMBER(mfxExtAVCRefListCtrl, PreferredRefList[0], mfxExtAVCRefListCtrl_Entry) +TYPEDEF_MEMBER(mfxExtPictureTimingSEI, TimeStamp[0], mfxExtPictureTimingSEI_TimeStamp) +TYPEDEF_MEMBER(mfxExtAvcTemporalLayers, Layer[0], mfxExtAvcTemporalLayers_Layer) +TYPEDEF_MEMBER(mfxExtAVCEncodedFrameInfo, UsedRefListL0[0], mfxExtAVCEncodedFrameInfo_RefList) +TYPEDEF_MEMBER(mfxExtVPPVideoSignalInfo, In, mfxExtVPPVideoSignalInfo_InOut) +TYPEDEF_MEMBER(mfxExtEncoderROI, ROI[0], mfxExtEncoderROI_Entry) +TYPEDEF_MEMBER(mfxExtDirtyRect, Rect[0], mfxExtDirtyRect_Entry) +TYPEDEF_MEMBER(mfxExtMoveRect, Rect[0], mfxExtMoveRect_Entry) +typedef union { mfxU32 n; char c[4]; } mfx4CC; +typedef mfxExtAVCRefLists::mfxRefPic mfxExtAVCRefLists_mfxRefPic; +typedef mfxExtFeiEncMV::mfxExtFeiEncMVMB mfxExtFeiEncMV_MB; +typedef mfxExtFeiEncMBCtrl::mfxExtFeiEncMBCtrlMB mfxExtFeiEncMBCtrl_MB; +typedef mfxExtFeiPreEncMVPredictors::mfxExtFeiPreEncMVPredictorsMB mfxExtFeiPreEncMVPredictors_MB; +typedef mfxExtFeiPreEncMV::mfxExtFeiPreEncMVMB mfxExtFeiPreEncMV_MB; +typedef mfxExtFeiPreEncMBStat::mfxExtFeiPreEncMBStatMB mfxExtFeiPreEncMBStat_MB; +typedef mfxExtEncoderIPCMArea::area mfxExtEncoderIPCMArea_area; + +#if MFX_VERSION >= 1023 +typedef mfxExtFeiPPS::mfxExtFeiPpsDPB mfxExtFeiPPS_mfxExtFeiPpsDPB; +#endif // MFX_VERSION >= 1023 diff --git a/src/mfx_dispatcher.cpp b/src/mfx_dispatcher.cpp index ebe8143..af38dda 100644 --- a/src/mfx_dispatcher.cpp +++ b/src/mfx_dispatcher.cpp @@ -441,7 +441,7 @@ static inline bool QueryAdapterInfo(mfxU32 adapter_n, mfxU32& VendorID, mfxU32& { MFX::DXVA2Device dxvaDevice; - if (!dxvaDevice.InitD3D9(adapter_n) && !dxvaDevice.InitDXGI1(adapter_n)) + if (!dxvaDevice.InitDXGI1(adapter_n)) return false; VendorID = dxvaDevice.GetVendorID(); @@ -450,6 +450,11 @@ static inline bool QueryAdapterInfo(mfxU32 adapter_n, mfxU32& VendorID, mfxU32& return true; } +static inline mfxU32 MakeVersion(mfxU16 major, mfxU16 minor) +{ + return major * 1000 + minor; +} + mfxStatus MFXQueryAdaptersDecode(mfxBitstream* bitstream, mfxU32 codec_id, mfxAdaptersInfo* adapters) { if (!adapters || !bitstream) @@ -509,7 +514,9 @@ mfxStatus MFXQueryAdaptersDecode(mfxBitstream* bitstream, mfxU32 codec_id, mfxAd if (sts != MFX_ERR_NONE) continue; - if (apiVersion.Major >= 1 && apiVersion.Minor >= 19) + mfxU32 version = MakeVersion(apiVersion.Major, apiVersion.Minor); + + if (version >= 1019) { sts = MFXVideoCORE_QueryPlatform(dummy_session.operator mfxSession(), &info.Platform); @@ -605,7 +612,9 @@ mfxStatus MFXQueryAdapters(mfxComponentInfo* input_info, mfxAdaptersInfo* adapte if (sts != MFX_ERR_NONE) continue; - if (apiVersion.Major >= 1 && apiVersion.Minor >= 19) + mfxU32 version = MakeVersion(apiVersion.Major, apiVersion.Minor); + + if (version >= 1019) { sts = MFXVideoCORE_QueryPlatform(dummy_session.operator mfxSession(), &info.Platform); diff --git a/src/mfx_dispatcher_defs.h b/src/mfx_dispatcher_defs.h index bb61a58..6babbe0 100644 --- a/src/mfx_dispatcher_defs.h +++ b/src/mfx_dispatcher_defs.h @@ -28,8 +28,8 @@ #include #endif -#define MAX_PLUGIN_PATH 4096 -#define MAX_PLUGIN_NAME 4096 +#define MAX_PLUGIN_PATH MAX_PATH +#define MAX_PLUGIN_NAME MAX_PATH #if _MSC_VER < 1400 #define wcscpy_s(to,to_size, from) wcscpy(to, from) diff --git a/src/mfx_dxva2_device.cpp b/src/mfx_dxva2_device.cpp index ad69528..fff474a 100644 --- a/src/mfx_dxva2_device.cpp +++ b/src/mfx_dxva2_device.cpp @@ -98,7 +98,7 @@ void DXDevice::LoadDLLModule(const wchar_t *pModuleName) #if !defined(MEDIASDK_UWP_DISPATCHER) DWORD prevErrorMode = 0; // set the silent error mode -#if (_WIN32_WINNT >= 0x0600) +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) SetThreadErrorMode(SEM_FAILCRITICALERRORS, &prevErrorMode); #else prevErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); @@ -110,7 +110,7 @@ void DXDevice::LoadDLLModule(const wchar_t *pModuleName) #if !defined(MEDIASDK_UWP_DISPATCHER) // set the previous error mode -#if (_WIN32_WINNT >= 0x0600) +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) SetThreadErrorMode(prevErrorMode, NULL); #else SetErrorMode(prevErrorMode); diff --git a/src/mfx_load_dll.cpp b/src/mfx_load_dll.cpp index c472675..a22bd02 100644 --- a/src/mfx_load_dll.cpp +++ b/src/mfx_load_dll.cpp @@ -149,7 +149,7 @@ mfxModuleHandle mfx_dll_load(const wchar_t *pFileName) #if !defined(MEDIASDK_UWP_DISPATCHER) // set the silent error mode DWORD prevErrorMode = 0; -#if (_WIN32_WINNT >= 0x0600) +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) SetThreadErrorMode(SEM_FAILCRITICALERRORS, &prevErrorMode); #else prevErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); @@ -163,7 +163,7 @@ mfxModuleHandle mfx_dll_load(const wchar_t *pFileName) #if !defined(MEDIASDK_UWP_DISPATCHER) // set the previous error mode -#if (_WIN32_WINNT >= 0x0600) +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) SetThreadErrorMode(prevErrorMode, NULL); #else SetErrorMode(prevErrorMode); @@ -209,7 +209,7 @@ mfxModuleHandle mfx_get_dll_handle(const wchar_t *pFileName) // set the silent error mode DWORD prevErrorMode = 0; -#if (_WIN32_WINNT >= 0x0600) +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) SetThreadErrorMode(SEM_FAILCRITICALERRORS, &prevErrorMode); #else prevErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); @@ -217,7 +217,7 @@ mfxModuleHandle mfx_get_dll_handle(const wchar_t *pFileName) // load the library's module GetModuleHandleExW(0, pFileName, (HMODULE*) &hModule); // set the previous error mode -#if (_WIN32_WINNT >= 0x0600) +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7) SetThreadErrorMode(prevErrorMode, NULL); #else SetErrorMode(prevErrorMode);