| /* | |
| * Copyright (C) 2016 Intel Corporation. All Rights Reserved. | |
| * | |
| * 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, sub license, 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 (including the | |
| * next paragraph) 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 NON-INFRINGEMENT. | |
| * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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 TESTVAAPI_test_data_h | |
| #define TESTVAAPI_test_data_h | |
| #include "test_defs.h" | |
| #include "test_utils.h" | |
| #include <map> | |
| #include <va/va.h> | |
| #include <va/va_drmcommon.h> | |
| namespace VAAPI | |
| { | |
| static const Profiles g_vaProfiles = { | |
| VAProfileNone, | |
| VAProfileMPEG2Simple, | |
| VAProfileMPEG2Main, | |
| VAProfileMPEG4Simple, | |
| VAProfileMPEG4AdvancedSimple, | |
| VAProfileMPEG4Main, | |
| VAProfileH264Main, | |
| VAProfileH264High, | |
| VAProfileVC1Simple, | |
| VAProfileVC1Main, | |
| VAProfileVC1Advanced, | |
| VAProfileH263Baseline, | |
| VAProfileJPEGBaseline, | |
| VAProfileH264ConstrainedBaseline, | |
| VAProfileVP8Version0_3, | |
| VAProfileH264MultiviewHigh, | |
| VAProfileH264StereoHigh, | |
| VAProfileHEVCMain, | |
| VAProfileHEVCMain10, | |
| VAProfileVP9Profile0, | |
| VAProfileVP9Profile1, | |
| VAProfileVP9Profile2, | |
| VAProfileVP9Profile3, | |
| #if VA_CHECK_VERSION(1,8,0) | |
| VAProfileAV1Profile0, | |
| VAProfileAV1Profile1, | |
| #endif | |
| #if VA_CHECK_VERSION(1,18,0) | |
| VAProfileH264High10, | |
| #endif | |
| }; | |
| static const Profiles g_vaNoneProfiles = { | |
| VAProfileNone, | |
| }; | |
| static const Profiles g_vaMPEG2Profiles = { | |
| VAProfileMPEG2Main, VAProfileMPEG2Simple, | |
| }; | |
| static const Profiles g_vaMPEG4Profiles = { | |
| VAProfileMPEG4Simple, VAProfileMPEG4Simple, VAProfileMPEG4AdvancedSimple, | |
| VAProfileMPEG4Main, | |
| }; | |
| static const Profiles g_vaH263Profiles = { | |
| VAProfileH263Baseline, | |
| }; | |
| static const Profiles g_vaH264Profiles = { | |
| VAProfileH264Main, VAProfileH264High, VAProfileH264ConstrainedBaseline, | |
| VAProfileH264MultiviewHigh, VAProfileH264StereoHigh, | |
| #if VA_CHECK_VERSION(1,18,0) | |
| VAProfileH264High10, | |
| #endif | |
| }; | |
| static const Profiles g_vaVC1Profiles = { | |
| VAProfileVC1Simple, VAProfileVC1Main, VAProfileVC1Advanced, | |
| }; | |
| static const Profiles g_vaJPEGProfiles = { | |
| VAProfileJPEGBaseline, | |
| }; | |
| static const Profiles g_vaVP8Profiles = { | |
| VAProfileVP8Version0_3, | |
| }; | |
| static const Profiles g_vaHEVCProfiles = { | |
| VAProfileHEVCMain, VAProfileHEVCMain10, | |
| }; | |
| static const Profiles g_vaVP9Profiles = { | |
| VAProfileVP9Profile0, VAProfileVP9Profile1, VAProfileVP9Profile2, | |
| VAProfileVP9Profile3, | |
| }; | |
| static const Profiles g_vaAV1Profiles = { | |
| #if VA_CHECK_VERSION(1,8,0) | |
| VAProfileAV1Profile0, VAProfileAV1Profile1, | |
| #endif | |
| }; | |
| static const Entrypoints g_vaEntrypoints = { | |
| VAEntrypointVLD, | |
| VAEntrypointIZZ, | |
| VAEntrypointIDCT, | |
| VAEntrypointMoComp, | |
| VAEntrypointDeblocking, | |
| VAEntrypointEncSlice, | |
| VAEntrypointEncPicture, | |
| VAEntrypointEncSliceLP, | |
| VAEntrypointVideoProc, | |
| VAEntrypointFEI, | |
| }; | |
| static const ConfigAttribTypes g_vaConfigAttribTypes = { | |
| VAConfigAttribRTFormat, | |
| VAConfigAttribSpatialResidual, | |
| VAConfigAttribSpatialClipping, | |
| VAConfigAttribIntraResidual, | |
| VAConfigAttribEncryption, | |
| VAConfigAttribRateControl, | |
| VAConfigAttribDecSliceMode, | |
| VAConfigAttribEncPackedHeaders, | |
| VAConfigAttribEncInterlaced, | |
| VAConfigAttribEncMaxRefFrames, | |
| VAConfigAttribEncMaxSlices, | |
| VAConfigAttribEncSliceStructure, | |
| VAConfigAttribEncMacroblockInfo, | |
| VAConfigAttribEncJPEG, | |
| VAConfigAttribEncQualityRange, | |
| VAConfigAttribEncSkipFrame, | |
| VAConfigAttribEncROI, | |
| VAConfigAttribEncRateControlExt, | |
| VAConfigAttribFEIFunctionType, | |
| VAConfigAttribFEIMVPredictors, | |
| }; | |
| static const SurfaceAttribTypes g_vaSurfaceAttribTypes = { | |
| VASurfaceAttribNone, | |
| VASurfaceAttribPixelFormat, | |
| VASurfaceAttribMinWidth, | |
| VASurfaceAttribMaxWidth, | |
| VASurfaceAttribMinHeight, | |
| VASurfaceAttribMaxHeight, | |
| VASurfaceAttribMemoryType, | |
| VASurfaceAttribExternalBufferDescriptor, | |
| VASurfaceAttribUsageHint, | |
| VASurfaceAttribCount, | |
| }; | |
| static const Resolutions g_vaResolutions = { | |
| { 16, 16 }, { 32, 32 }, { 176, 120 }, { 352, 240 }, | |
| { 352, 288 }, { 480, 320 }, { 720, 480 }, { 720, 576 }, | |
| { 768, 576 }, { 800, 480 }, { 854, 480 }, { 1280, 720 }, | |
| { 1920, 1080 }, { 2048, 1080 }, { 4096, 2160 }, { 8192, 8192 }, | |
| { 10240, 10240 } | |
| }; | |
| static const BitMasks g_vaRTFormats = { | |
| VA_RT_FORMAT_YUV420, VA_RT_FORMAT_YUV422, VA_RT_FORMAT_YUV444, | |
| VA_RT_FORMAT_YUV411, VA_RT_FORMAT_YUV400, VA_RT_FORMAT_YUV420_10BPP, | |
| VA_RT_FORMAT_YUV422_10, VA_RT_FORMAT_YUV444_10, VA_RT_FORMAT_YUV420_12, | |
| VA_RT_FORMAT_YUV422_12, VA_RT_FORMAT_YUV444_12, | |
| VA_RT_FORMAT_RGB16, VA_RT_FORMAT_RGB32, VA_RT_FORMAT_RGBP, | |
| VA_RT_FORMAT_RGB32_10BPP, VA_RT_FORMAT_PROTECTED, | |
| }; | |
| static const BufferTypes g_vaBufferTypes = { | |
| VAPictureParameterBufferType, | |
| VAIQMatrixBufferType, | |
| VABitPlaneBufferType, | |
| VASliceGroupMapBufferType, | |
| VASliceParameterBufferType, | |
| VASliceDataBufferType, | |
| VAMacroblockParameterBufferType, | |
| VAResidualDataBufferType, | |
| VADeblockingParameterBufferType, | |
| VAImageBufferType, | |
| VAProtectedSliceDataBufferType, | |
| VAQMatrixBufferType, | |
| VAHuffmanTableBufferType, | |
| VAProbabilityBufferType, | |
| VAEncCodedBufferType, | |
| VAEncSequenceParameterBufferType, | |
| VAEncPictureParameterBufferType, | |
| VAEncSliceParameterBufferType, | |
| VAEncPackedHeaderParameterBufferType, | |
| VAEncPackedHeaderDataBufferType, | |
| VAEncMiscParameterBufferType, | |
| VAEncMacroblockParameterBufferType, | |
| VAEncMacroblockMapBufferType, | |
| VAProcPipelineParameterBufferType, | |
| VAProcFilterParameterBufferType, | |
| VAEncFEIMVBufferType, | |
| VAEncFEIMBCodeBufferType, | |
| VAEncFEIDistortionBufferType, | |
| VAEncFEIMBControlBufferType, | |
| VAEncFEIMVPredictorBufferType, | |
| }; | |
| static const BitMasks g_vaRateControls = { | |
| VA_RC_NONE, VA_RC_CBR, VA_RC_VBR, VA_RC_VCM, VA_RC_CQP, | |
| VA_RC_VBR_CONSTRAINED, VA_RC_ICQ, VA_RC_MB, VA_RC_CFS, | |
| VA_RC_PARALLEL, VA_RC_QVBR, VA_RC_AVBR, | |
| #if VA_CHECK_VERSION(1, 10, 0) | |
| VA_RC_TCBRC, | |
| #endif | |
| }; | |
| static const BitMasks g_vaDecSliceModes = { | |
| VA_DEC_SLICE_MODE_NORMAL, VA_DEC_SLICE_MODE_BASE, | |
| }; | |
| static const BitMasks g_vaEncPackedHeaders = { | |
| VA_ENC_PACKED_HEADER_SEQUENCE, VA_ENC_PACKED_HEADER_PICTURE, | |
| VA_ENC_PACKED_HEADER_SLICE, VA_ENC_PACKED_HEADER_MISC, | |
| VA_ENC_PACKED_HEADER_RAW_DATA, | |
| }; | |
| static const BitMasks g_vaEncInterlaced = { | |
| VA_ENC_INTERLACED_FRAME, VA_ENC_INTERLACED_FIELD, VA_ENC_INTERLACED_MBAFF, | |
| VA_ENC_INTERLACED_PAFF, | |
| }; | |
| static const BitMasks g_vaFEIFunctionTypes = { | |
| VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK, VA_FEI_FUNCTION_ENC_PAK, | |
| }; | |
| #if VA_CHECK_VERSION(1, 11, 0) | |
| static const BitMasks g_vaEncryptionTypes = { | |
| VA_ENCRYPTION_TYPE_FULLSAMPLE_CTR, | |
| VA_ENCRYPTION_TYPE_FULLSAMPLE_CBC, | |
| VA_ENCRYPTION_TYPE_SUBSAMPLE_CTR, | |
| VA_ENCRYPTION_TYPE_SUBSAMPLE_CBC, | |
| }; | |
| #endif | |
| static const std::map<VAConfigAttribType, const BitMasks&> | |
| g_vaConfigAttribBitMasks = { | |
| {VAConfigAttribRTFormat, g_vaRTFormats}, | |
| {VAConfigAttribRateControl, g_vaRateControls}, | |
| {VAConfigAttribDecSliceMode, g_vaDecSliceModes}, | |
| {VAConfigAttribEncPackedHeaders, g_vaEncPackedHeaders}, | |
| {VAConfigAttribEncInterlaced, g_vaEncInterlaced}, | |
| {VAConfigAttribFEIFunctionType, g_vaFEIFunctionTypes}, | |
| #if VA_CHECK_VERSION(1, 11, 0) | |
| {VAConfigAttribEncryption, g_vaEncryptionTypes}, | |
| #endif | |
| }; | |
| static const BitMasks g_vaSurfaceMemTypes = { | |
| VA_SURFACE_ATTRIB_MEM_TYPE_VA, VA_SURFACE_ATTRIB_MEM_TYPE_V4L2, | |
| VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR, VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM, | |
| VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME, | |
| VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, | |
| }; | |
| static const std::map<VASurfaceAttribType, const BitMasks&> | |
| g_vaSurfaceAttribBitMasks = { | |
| {VASurfaceAttribMemoryType, g_vaSurfaceMemTypes}, | |
| }; | |
| } // namespace VAAPI | |
| #endif |