1 /* 2 * Copyright (c) 2022, Intel Corporation 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * The above copyright notice and this permission notice shall be included 11 * in all copies or substantial portions of the Software. 12 * 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 16 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 17 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 18 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 19 * OTHER DEALINGS IN THE SOFTWARE. 20 */ 21 //! 22 //! \file capstable_data_avc_encode_xe2_lpm_r0_specific.h 23 //! \brief This file register all caps data 24 //! 25 26 #ifndef __CAPSTABLE_DATA_AVC_ENCODE_XE2_LPM_R0_SPECIFIC_H__ 27 #define __CAPSTABLE_DATA_AVC_ENCODE_XE2_LPM_R0_SPECIFIC_H__ 28 29 #include "capstable_data_xe2_lpm_r0_specific.h" 30 #include "codec_def_encode_avc.h" 31 //! 32 //! \brief Definition for bitset value 33 //! 34 static const VAConfigAttribValEncROI VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0 35 { 36 {ENCODE_VDENC_AVC_MAX_ROI_NUMBER_ADV,0,1,0} 37 }; 38 39 static const VAConfigAttribValMaxFrameSize VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0 40 { 41 {1,1,0} 42 }; 43 44 //! \brief Definition for ConfigDataList 45 static const ConfigDataList configDataList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 = 46 { 47 {VA_RC_CQP, 0}, 48 {VA_RC_CBR, 0}, 49 {VA_RC_VBR, 0}, 50 {VA_RC_ICQ, 0}, 51 {VA_RC_QVBR, 0}, 52 #if VA_CHECK_VERSION(1, 10, 0) 53 {VA_RC_TCBRC, 0}, 54 #endif 55 {VA_RC_CBR | VA_RC_MB, 0}, 56 {VA_RC_VBR | VA_RC_MB, 0}, 57 }; 58 59 static const ConfigDataList configDataList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 = 60 { 61 {VA_RC_CQP, 0}, 62 {VA_RC_CBR, 0}, 63 {VA_RC_VBR, 0}, 64 {VA_RC_ICQ, 0}, 65 {VA_RC_QVBR, 0}, 66 #if VA_CHECK_VERSION(1, 10, 0) 67 {VA_RC_TCBRC, 0}, 68 #endif 69 {VA_RC_CBR | VA_RC_MB, 0}, 70 {VA_RC_VBR | VA_RC_MB, 0}, 71 }; 72 73 static const ConfigDataList configDataList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 = 74 { 75 {VA_RC_CQP, 0}, 76 {VA_RC_CBR, 0}, 77 {VA_RC_VBR, 0}, 78 {VA_RC_ICQ, 0}, 79 {VA_RC_QVBR, 0}, 80 #if VA_CHECK_VERSION(1, 10, 0) 81 {VA_RC_TCBRC, 0}, 82 #endif 83 {VA_RC_CBR | VA_RC_MB, 0}, 84 {VA_RC_VBR | VA_RC_MB, 0}, 85 86 }; 87 88 //! 89 //! \brief Definition for AttribList 90 //! 91 static const AttribList AttribList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 92 { 93 {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_RGB32}, 94 {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, 95 {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, 96 {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_ICQ 97 #if VA_CHECK_VERSION(1, 10, 0) 98 | VA_RC_TCBRC 99 #endif 100 }, 101 {VAConfigAttribEncParallelRateControl, 0}, 102 {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, 103 {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES | (DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_RAB_AVC << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, 104 {VAConfigAttribEncMaxSlices, ENCODE_AVC_MAX_SLICES_SUPPORTED}, 105 {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, 106 {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED}, 107 {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, 108 {VAConfigAttribEncSkipFrame, 1}, 109 {VAConfigAttribEncROI, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, 110 {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, 111 {VAConfigAttribEncDirtyRect, 4}, 112 {VAConfigAttribMaxFrameSize, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0.value}, 113 {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, 114 {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, 115 {VAConfigAttribCustomRoundingControl, 1}, 116 {VAConfigAttribFEIMVPredictors, DDI_CODEC_FEI_MAX_NUM_MVPREDICTOR}, 117 }; 118 119 static const AttribList AttribList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 120 { 121 {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_RGB32}, 122 {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, 123 {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, 124 {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_ICQ 125 #if VA_CHECK_VERSION(1, 10, 0) 126 | VA_RC_TCBRC 127 #endif 128 }, 129 {VAConfigAttribEncParallelRateControl, 0}, 130 {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, 131 {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES | (DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_RAB_AVC << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, 132 {VAConfigAttribEncMaxSlices, ENCODE_AVC_MAX_SLICES_SUPPORTED}, 133 {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, 134 {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED}, 135 {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, 136 {VAConfigAttribEncSkipFrame, 1}, 137 {VAConfigAttribEncROI, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, 138 {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, 139 {VAConfigAttribEncDirtyRect, 4}, 140 {VAConfigAttribMaxFrameSize, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0.value}, 141 {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, 142 {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, 143 {VAConfigAttribCustomRoundingControl, 1}, 144 {VAConfigAttribFEIMVPredictors, DDI_CODEC_FEI_MAX_NUM_MVPREDICTOR}, 145 }; 146 147 static const AttribList AttribList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 148 { 149 {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_RGB32}, 150 {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, 151 {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, 152 {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_ICQ 153 #if VA_CHECK_VERSION(1, 10, 0) 154 | VA_RC_TCBRC 155 #endif 156 }, 157 {VAConfigAttribEncParallelRateControl, 0}, 158 {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, 159 {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES | (DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_RAB_AVC << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, 160 {VAConfigAttribEncMaxSlices, ENCODE_AVC_MAX_SLICES_SUPPORTED}, 161 {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, 162 {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED}, 163 {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, 164 {VAConfigAttribEncSkipFrame, 1}, 165 {VAConfigAttribEncROI, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, 166 {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, 167 {VAConfigAttribEncDirtyRect, 4}, 168 {VAConfigAttribMaxFrameSize, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0.value}, 169 {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, 170 {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, 171 {VAConfigAttribCustomRoundingControl, 1}, 172 {VAConfigAttribFEIMVPredictors, DDI_CODEC_FEI_MAX_NUM_MVPREDICTOR}, 173 }; 174 175 //! 176 static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 = 177 { 178 {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, 179 {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, 180 {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, 181 {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, 182 {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, 183 {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} 184 }; 185 186 //! 187 static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 = 188 { 189 {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, 190 {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, 191 {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, 192 {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, 193 {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, 194 {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} 195 }; 196 197 //! 198 static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 = 199 { 200 {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, 201 {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, 202 {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, 203 {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, 204 {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, 205 {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} 206 }; 207 208 //! 209 //! \brief Definition for EmtrypointMap 210 //! 211 static const EntrypointData entrypointMap_VAProfileH264Main_Data_Xe2_Lpm_r0 212 { 213 &AttribList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0, 214 &configDataList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0, 215 &surfaceAttribInfo_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 216 }; 217 218 static const EntrypointData entrypointMap_VAProfileH264High_Data_Xe2_Lpm_r0 219 { 220 &AttribList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0, 221 &configDataList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0, 222 &surfaceAttribInfo_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 223 }; 224 225 static const EntrypointData entrypointMap_VAProfileH264ConstrainedBaseline_Data_Xe2_Lpm_r0 226 { 227 &AttribList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0, 228 &configDataList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0, 229 &surfaceAttribInfo_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 230 }; 231 232 #endif 233