• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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