add mfx again
This commit is contained in:
290
.github/actions/libmfx/include/mfx/mfxfeihevc.h
vendored
Normal file
290
.github/actions/libmfx/include/mfx/mfxfeihevc.h
vendored
Normal file
@ -0,0 +1,290 @@
|
||||
// Copyright (c) 2018-2019 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.
|
||||
#ifndef __MFXFEIHEVC_H__
|
||||
#define __MFXFEIHEVC_H__
|
||||
#include "mfxcommon.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#if (MFX_VERSION >= 1027)
|
||||
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
|
||||
mfxU16 SearchPath;
|
||||
mfxU16 LenSP;
|
||||
mfxU16 RefWidth;
|
||||
mfxU16 RefHeight;
|
||||
mfxU16 SearchWindow;
|
||||
|
||||
mfxU16 NumMvPredictors[2]; /* 0 for L0 and 1 for L1 */
|
||||
mfxU16 MultiPred[2]; /* 0 for L0 and 1 for L1 */
|
||||
|
||||
mfxU16 SubPelMode;
|
||||
mfxU16 AdaptiveSearch;
|
||||
mfxU16 MVPredictor;
|
||||
|
||||
mfxU16 PerCuQp;
|
||||
mfxU16 PerCtuInput;
|
||||
mfxU16 ForceCtuSplit;
|
||||
mfxU16 NumFramePartitions;
|
||||
mfxU16 FastIntraMode;
|
||||
|
||||
mfxU16 reserved0[107];
|
||||
} mfxExtFeiHevcEncFrameCtrl;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
struct {
|
||||
mfxU8 RefL0 : 4;
|
||||
mfxU8 RefL1 : 4;
|
||||
} RefIdx[4]; /* index is predictor number */
|
||||
|
||||
mfxU32 BlockSize : 2;
|
||||
mfxU32 reserved0 : 30;
|
||||
|
||||
mfxI16Pair MV[4][2]; /* first index is predictor number, second is 0 for L0 and 1 for L1 */
|
||||
} mfxFeiHevcEncMVPredictors;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_STRUCT_W_PTR()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 VaBufferID;
|
||||
mfxU32 Pitch;
|
||||
mfxU32 Height;
|
||||
mfxU16 reserved0[54];
|
||||
|
||||
mfxFeiHevcEncMVPredictors *Data;
|
||||
} mfxExtFeiHevcEncMVPredictors;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_STRUCT_W_PTR()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 VaBufferID;
|
||||
mfxU32 Pitch;
|
||||
mfxU32 Height;
|
||||
mfxU16 reserved[6];
|
||||
|
||||
mfxU8 *Data;
|
||||
} mfxExtFeiHevcEncQP;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
mfxU32 ForceToIntra : 1;
|
||||
mfxU32 ForceToInter : 1;
|
||||
mfxU32 reserved0 : 30;
|
||||
|
||||
mfxU32 reserved1[3];
|
||||
} mfxFeiHevcEncCtuCtrl;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_STRUCT_W_PTR()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 VaBufferID;
|
||||
mfxU32 Pitch;
|
||||
mfxU32 Height;
|
||||
mfxU16 reserved0[54];
|
||||
|
||||
mfxFeiHevcEncCtuCtrl *Data;
|
||||
} mfxExtFeiHevcEncCtuCtrl;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 MaxFrameSize; /* in bytes */
|
||||
mfxU32 NumPasses; /* up to 8 */
|
||||
mfxU16 reserved[8];
|
||||
mfxU8 DeltaQP[8]; /* list of delta QPs, only positive values */
|
||||
} mfxExtFeiHevcRepackCtrl;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 NumPasses;
|
||||
mfxU16 reserved[58];
|
||||
} mfxExtFeiHevcRepackStat;
|
||||
MFX_PACK_END()
|
||||
|
||||
#if MFX_VERSION >= MFX_VERSION_NEXT
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
/* DWORD 0 */
|
||||
mfxU32 reserved0;
|
||||
|
||||
/* DWORD 1 */
|
||||
mfxU32 SplitLevel2Part0 : 4;
|
||||
mfxU32 SplitLevel2Part1 : 4;
|
||||
mfxU32 SplitLevel2Part2 : 4;
|
||||
mfxU32 SplitLevel2Part3 : 4;
|
||||
mfxU32 SplitLevel1 : 4;
|
||||
mfxU32 SplitLevel0 : 1;
|
||||
mfxU32 reserved10 : 3;
|
||||
mfxU32 CuCountMinus1 : 6;
|
||||
mfxU32 LastCtuOfTileFlag : 1;
|
||||
mfxU32 LastCtuOfSliceFlag : 1;
|
||||
|
||||
|
||||
/* DWORD 2 */
|
||||
mfxU32 CtuAddrX : 16;
|
||||
mfxU32 CtuAddrY : 16;
|
||||
|
||||
/* DWORD 3 */
|
||||
mfxU32 reserved3;
|
||||
} mfxFeiHevcPakCtuRecordV0;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_STRUCT_W_PTR()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 VaBufferID;
|
||||
mfxU32 Pitch;
|
||||
mfxU32 Height;
|
||||
mfxU16 reserved0[54];
|
||||
|
||||
mfxFeiHevcPakCtuRecordV0 *Data;
|
||||
} mfxExtFeiHevcPakCtuRecordV0;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
/* DWORD 0 */
|
||||
mfxU32 CuSize : 2;
|
||||
mfxU32 PredMode : 1;
|
||||
mfxU32 TransquantBypass : 1;
|
||||
mfxU32 PartMode : 3;
|
||||
mfxU32 IpcmEnable : 1;
|
||||
mfxU32 IntraChromaMode : 3;
|
||||
mfxU32 ZeroOutCoeffs : 1;
|
||||
mfxU32 reserved00 : 4;
|
||||
mfxU32 Qp : 7;
|
||||
mfxU32 QpSign : 1;
|
||||
mfxU32 InterpredIdc : 8;
|
||||
|
||||
|
||||
/* DWORD 1 */
|
||||
mfxU32 IntraMode0 : 6;
|
||||
mfxU32 reserved10 : 2;
|
||||
mfxU32 IntraMode1 : 6;
|
||||
mfxU32 reserved11 : 2;
|
||||
mfxU32 IntraMode2 : 6;
|
||||
mfxU32 reserved12 : 2;
|
||||
mfxU32 IntraMode3 : 6;
|
||||
mfxU32 reserved13 : 2;
|
||||
|
||||
|
||||
/* DWORD 2-9 */
|
||||
struct {
|
||||
mfxI16 x[4];
|
||||
mfxI16 y[4];
|
||||
} MVs[2]; /* 0-L0, 1-L1 */
|
||||
|
||||
|
||||
/* DWORD 10 */
|
||||
struct{
|
||||
mfxU16 Ref0 : 4;
|
||||
mfxU16 Ref1 : 4;
|
||||
mfxU16 Ref2 : 4;
|
||||
mfxU16 Ref3 : 4;
|
||||
} RefIdx[2]; /* 0-L0, 1-L1 */
|
||||
|
||||
|
||||
/* DWORD 11 */
|
||||
mfxU32 TuSize;
|
||||
|
||||
|
||||
/* DWORD 12 */
|
||||
mfxU32 TransformSkipY : 16;
|
||||
mfxU32 reserved120 : 12;
|
||||
mfxU32 TuCountM1 : 4;
|
||||
|
||||
|
||||
/* DWORD 13 */
|
||||
mfxU32 TransformSkipU : 16;
|
||||
mfxU32 TransformSkipV : 16;
|
||||
} mfxFeiHevcPakCuRecordV0;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_STRUCT_W_PTR()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 VaBufferID;
|
||||
mfxU32 Pitch;
|
||||
mfxU32 Height;
|
||||
mfxU16 reserved0[54];
|
||||
|
||||
mfxFeiHevcPakCuRecordV0 *Data;
|
||||
} mfxExtFeiHevcPakCuRecordV0;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_USUAL_STRUCT()
|
||||
typedef struct {
|
||||
mfxU32 BestDistortion;
|
||||
mfxU32 ColocatedCtuDistortion;
|
||||
} mfxFeiHevcDistortionCtu;
|
||||
MFX_PACK_END()
|
||||
|
||||
MFX_PACK_BEGIN_STRUCT_W_PTR()
|
||||
typedef struct {
|
||||
mfxExtBuffer Header;
|
||||
mfxU32 VaBufferID;
|
||||
mfxU32 Pitch;
|
||||
mfxU32 Height;
|
||||
mfxU16 reserved[6];
|
||||
|
||||
mfxFeiHevcDistortionCtu *Data;
|
||||
} mfxExtFeiHevcDistortion;
|
||||
MFX_PACK_END()
|
||||
#endif
|
||||
|
||||
|
||||
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'),
|
||||
|
||||
#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')
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // MFX_VERSION
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
||||
#endif // __MFXFEIHEVC_H__
|
Reference in New Issue
Block a user