1 /* 2 * Copyright (c) 2019, 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 * 11 * The above copyright notice and this permission notice shall be included 12 * in all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 * OTHER DEALINGS IN THE SOFTWARE. 21 */ 22 23 #ifndef _MDF_FC_COMMON_H_ 24 #define _MDF_FC_COMMON_H_ 25 26 #define MDF_FC_BLOCK_WIDTH 16 27 #define MDF_FC_BLOCK_HEIGHT 16 28 #define MDF_FC_SAMPLER_UNORM_WIDTH 8 29 #define MDF_FC_SAMPLER_UNORM_HEIGHT 4 30 #define MDF_FC_MAX_INPUT_LAYER_NUM 8 31 #define MDF_FC_MAX_OUTPUT_NUM 2 32 #define MDF_FC_INPUT_BTI_PER_LAYER 3 33 #define MDF_FC_OUTPUT_BTI_PER_LAYER 3 34 #define SURFACE_FORMAT_CHANNEL_SWAP (1 << 11) 35 #define MDF_FC_UV_PLANE_BTI_OFFSET 1 36 #define MDF_FC_U_PLANE_BTI_OFFSET 1 37 #define MDF_FC_V_PLANE_BTI_OFFSET 2 38 #define MDF_FC_CSC_COEFF_WIDTH 24 39 #define MDF_FC_INPUT_BTI_CSC_COEFF_OFFSET 34 40 #define MDF_FC_GAMMA_LUT_BTI_OFFSET 32 41 #define MDF_FC_COLORE_LUT_BTI_OFFSET 32 42 #define MDF_FC_LUT_ENABLE_COLORE 0x01 43 #define MDF_FC_LUT_ENABLE_GAMMA 0x02 44 #define MDF_FC_NORMALIZE_FACTOR 65280.0f 45 #define MDF_FC_SAMPLER_BIAS 0.015625f 46 #define MDF_FC_IEF_BYPASS_SHFIT 27 47 #define MDF_FC_IEF_BYPASS_MASK (1 << MDF_FC_IEF_BYPASS_SHFIT) 48 #define MDF_FC_COMBINED_KERNEL_MASK 0x0 49 #define MDF_FC_SINGLE_KERNEL_MASK 0x01 50 51 #ifdef CMFC_ULT 52 #define MDF_FC_INPUT_BTI_START 16 53 #define MDF_FC_3D_SAMPLER_SI_Y 13 54 #define MDF_FC_3D_SAMPLER_SI_U 13 55 #define MDF_FC_3D_SAMPLER_SI_V 13 56 #define MDF_FC_COLORE_nSI_LINEAR 13 // ColorE Sampler index left shifted by 8 57 #define MDF_FC_AVS_SI_Y 1 58 #define MDF_FC_AVS_SI_U 1 59 #define MDF_FC_AVS_SI_V 1 60 #define MDF_FC_CSC_COEFF_HEIGHT 1 61 #define MDF_FC_INPUT_BTI_START_INTERLACED_F2_OFFSET 35 62 #define MDF_FC_SECURITY_COPY_INPUT_BTI MDF_FC_INPUT_BTI_START 63 #define MDF_FC_SECURITY_COPY_OUTPUT_BTI MDF_FC_INPUT_BTI_START + MDF_FC_MAX_INPUT_LAYER_NUM * MDF_FC_INPUT_BTI_PER_LAYER 64 #else 65 #define MDF_FC_INPUT_BTI_START 0 66 #define MDF_FC_3D_SAMPLER_SI_Y 1 67 #define MDF_FC_3D_SAMPLER_SI_U 2 68 #define MDF_FC_3D_SAMPLER_SI_V 3 69 #define MDF_FC_COLORE_nSI_LINEAR 0x000 // ColorE Sampler index left shifted by 8 70 #define MDF_FC_AVS_SI_Y 1 71 #define MDF_FC_AVS_SI_U 3 72 #define MDF_FC_AVS_SI_V 3 73 #define MDF_FC_CSC_COEFF_HEIGHT 8 74 #define MDF_FC_INPUT_BTI_START_INTERLACED_F2_OFFSET 48 75 #define MDF_FC_SECURITY_COPY_INPUT_BTI 0 76 #define MDF_FC_SECURITY_COPY_OUTPUT_BTI 1 77 #endif 78 79 #define MDF_FC_OUTPUT_BTI_START MDF_FC_INPUT_BTI_START + MDF_FC_MAX_INPUT_LAYER_NUM * MDF_FC_INPUT_BTI_PER_LAYER 80 #define MDF_FC_CSC_COEFF_BTI MDF_FC_INPUT_BTI_START + MDF_FC_INPUT_BTI_CSC_COEFF_OFFSET 81 #define MDF_FC_INPUT_BTI_F2 MDF_FC_INPUT_BTI_START + MDF_FC_INPUT_BTI_START_INTERLACED_F2_OFFSET 82 #define MDF_FC_GAMMA_LUT_BTI MDF_FC_INPUT_BTI_START + MDF_FC_GAMMA_LUT_BTI_OFFSET 83 #define MDF_FC_COLORE_LUT_BTI MDF_FC_INPUT_BTI_START + MDF_FC_COLORE_LUT_BTI_OFFSET 84 85 typedef enum _MDF_FC_FORMAT 86 { 87 FORMAT_R32G32B32A32_FLOAT = 0, 88 FORMAT_B32G32R32A32_FLOAT = 0 + SURFACE_FORMAT_CHANNEL_SWAP, 89 FORMAT_R32G32B32A32_UINT = 1, 90 FORMAT_B32G32R32A32_UINT = 1 + SURFACE_FORMAT_CHANNEL_SWAP, 91 FORMAT_R32G32B32A32_SINT = 2, 92 FORMAT_B32G32R32A32_SINT = 2 + SURFACE_FORMAT_CHANNEL_SWAP, 93 FORMAT_R32G32B32X32_FLOAT = 3, 94 FORMAT_B32G32R32X32_FLOAT = 3 + SURFACE_FORMAT_CHANNEL_SWAP, 95 FORMAT_R32G32B32X32_UINT = 4, 96 FORMAT_B32G32R32X32_UINT = 4 + SURFACE_FORMAT_CHANNEL_SWAP, 97 FORMAT_R32G32B32X32_SINT = 5, 98 FORMAT_B32G32R32X32_SINT = 5 + SURFACE_FORMAT_CHANNEL_SWAP, 99 FORMAT_R32G32B32_FLOAT = 6, 100 FORMAT_B32G32R32_FLOAT = 6 + SURFACE_FORMAT_CHANNEL_SWAP, 101 FORMAT_R32G32B32_UINT = 7, 102 FORMAT_B32G32R32_UINT = 7 + SURFACE_FORMAT_CHANNEL_SWAP, 103 FORMAT_R32G32B32_SINT = 8, 104 FORMAT_B32G32R32_SINT = 8 + SURFACE_FORMAT_CHANNEL_SWAP, 105 FORMAT_R32G32_FLOAT = 9, 106 FORMAT_R32G32_UINT = 10, 107 FORMAT_R32G32_SINT = 11, 108 FORMAT_L32A32_FLOAT = 12, 109 FORMAT_L32A32_UINT = 13, 110 FORMAT_L32A32_SINT = 14, 111 FORMAT_A32X32_FLOAT = 15, 112 FORMAT_A32X32_UINT = 16, 113 FORMAT_A32X32_SINT = 17, 114 FORMAT_L32X32_FLOAT = 18, 115 FORMAT_L32X32_UINT = 19, 116 FORMAT_L32X32_SINT = 20, 117 FORMAT_I32X32_FLOAT = 21, 118 FORMAT_I32X32_UINT = 22, 119 FORMAT_I32X32_SINT = 23, 120 FORMAT_R32_FLOAT = 24, 121 FORMAT_R32_UINT = 25, 122 FORMAT_R32_SINT = 26, 123 FORMAT_A32_FLOAT = 27, 124 FORMAT_A32_UINT = 28, 125 FORMAT_A32_SINT = 29, 126 FORMAT_L32_FLOAT = 30, 127 FORMAT_L32_UINT = 31, 128 FORMAT_L32_SINT = 32, 129 FORMAT_I32_FLOAT = 33, 130 FORMAT_I32_UINT = 34, 131 FORMAT_I32_SINT = 35, 132 FORMAT_R24_UNORM_X8_TYPELESS = 36, 133 FORMAT_R24_SNORM_X8_TYPELESS = 37, 134 FORMAT_I24X8_UNORM = 38, 135 FORMAT_I24X8_SNORM = 39, 136 FORMAT_L24X8_UNORM = 40, 137 FORMAT_L24X8_SNORM = 41, 138 FORMAT_A24X8_UNORM = 42, 139 FORMAT_A24X8_SNORM = 43, 140 FORMAT_R16G16B16A16_FLOAT = 44, 141 FORMAT_B16G16R16A16_FLOAT = 44 + SURFACE_FORMAT_CHANNEL_SWAP, 142 FORMAT_R16G16B16A16_UNORM = 45, 143 FORMAT_B16G16R16A16_UNORM = 45 + SURFACE_FORMAT_CHANNEL_SWAP, 144 FORMAT_R16G16B16A16_UINT = 46, 145 FORMAT_B16G16R16A16_UINT = 46 + SURFACE_FORMAT_CHANNEL_SWAP, 146 FORMAT_R16G16B16A16_SNORM = 47, 147 FORMAT_B16G16R16A16_SNORM = 47 + SURFACE_FORMAT_CHANNEL_SWAP, 148 FORMAT_R16G16B16A16_SINT = 48, 149 FORMAT_B16G16R16A16_SINT = 48 + SURFACE_FORMAT_CHANNEL_SWAP, 150 FORMAT_R16G16B16X16_FLOAT = 49, 151 FORMAT_B16G16R16X16_FLOAT = 49 + SURFACE_FORMAT_CHANNEL_SWAP, 152 FORMAT_R16G16B16X16_UNORM = 50, 153 FORMAT_B16G16R16X16_UNORM = 50 + SURFACE_FORMAT_CHANNEL_SWAP, 154 FORMAT_R16G16B16X16_UINT = 51, 155 FORMAT_B16G16R16X16_UINT = 51 + SURFACE_FORMAT_CHANNEL_SWAP, 156 FORMAT_R16G16B16X16_SNORM = 52, 157 FORMAT_B16G16R16X16_SNORM = 52 + SURFACE_FORMAT_CHANNEL_SWAP, 158 FORMAT_R16G16B16X16_SINT = 53, 159 FORMAT_B16G16R16X16_SINT = 53 + SURFACE_FORMAT_CHANNEL_SWAP, 160 FORMAT_R16G16B16_FLOAT = 54, 161 FORMAT_B16G16R16_FLOAT = 54 + SURFACE_FORMAT_CHANNEL_SWAP, 162 FORMAT_R16G16B16_UNORM = 55, 163 FORMAT_B16G16R16_UNORM = 55 + SURFACE_FORMAT_CHANNEL_SWAP, 164 FORMAT_R16G16B16_UINT = 56, 165 FORMAT_B16G16R16_UINT = 56 + SURFACE_FORMAT_CHANNEL_SWAP, 166 FORMAT_R16G16B16_SNORM = 57, 167 FORMAT_B16G16R16_SNORM = 57 + SURFACE_FORMAT_CHANNEL_SWAP, 168 FORMAT_R16G16B16_SINT = 58, 169 FORMAT_B16G16R16_SINT = 58 + SURFACE_FORMAT_CHANNEL_SWAP, 170 FORMAT_R16G16_FLOAT = 59, 171 FORMAT_R16G16_UNORM = 60, 172 FORMAT_R16G16_UINT = 61, 173 FORMAT_R16G16_SNORM = 62, 174 FORMAT_R16G16_SINT = 63, 175 FORMAT_L16A16_FLOAT = 64, 176 FORMAT_L16A16_UNORM = 65, 177 FORMAT_L16A16_UINT = 66, 178 FORMAT_L16A16_SNORM = 67, 179 FORMAT_L16A16_SINT = 68, 180 FORMAT_R16_FLOAT = 69, 181 FORMAT_R16_UNORM = 70, 182 FORMAT_R16_UINT = 71, 183 FORMAT_R16_SNORM = 72, 184 FORMAT_R16_SINT = 73, 185 FORMAT_A16_FLOAT = 74, 186 FORMAT_A16_UNORM = 75, 187 FORMAT_A16_UINT = 76, 188 FORMAT_A16_SNORM = 77, 189 FORMAT_A16_SINT = 78, 190 FORMAT_L16_FLOAT = 79, 191 FORMAT_L16_UNORM = 80, 192 FORMAT_L16_UINT = 81, 193 FORMAT_L16_SNORM = 82, 194 FORMAT_L16_SINT = 83, 195 FORMAT_I16_FLOAT = 84, 196 FORMAT_I16_UNORM = 85, 197 FORMAT_I16_UINT = 86, 198 FORMAT_I16_SNORM = 87, 199 FORMAT_I16_SINT = 88, 200 FORMAT_R10G10B10A2_UNORM = 89, 201 FORMAT_B10G10R10A2_UNORM = 89 + SURFACE_FORMAT_CHANNEL_SWAP, 202 FORMAT_R10G10B10A2_UNORM_SRGB = 90, 203 FORMAT_B10G10R10A2_UNORM_SRGB = 90 + SURFACE_FORMAT_CHANNEL_SWAP, 204 FORMAT_R10G10B10A2_UINT = 91, 205 FORMAT_B10G10R10A2_UINT = 91 + SURFACE_FORMAT_CHANNEL_SWAP, 206 FORMAT_R10G10B10_SNORM_A2_UNORM = 92, 207 FORMAT_B10G10R10_SNORM_A2_UNORM = 92 + SURFACE_FORMAT_CHANNEL_SWAP, 208 FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 93, 209 FORMAT_B10G10R10_XR_BIAS_A2_UNORM = 93 + SURFACE_FORMAT_CHANNEL_SWAP, 210 FORMAT_R10G10B10X2_UNORM = 94, 211 FORMAT_B10G10R10X2_UNORM = 94 + SURFACE_FORMAT_CHANNEL_SWAP, 212 FORMAT_R10G10B10X2_UNORM_SRGB = 95, 213 FORMAT_B10G10R10X2_UNORM_SRGB = 95 + SURFACE_FORMAT_CHANNEL_SWAP, 214 FORMAT_R10G10B10X2_UINT = 96, 215 FORMAT_B10G10R10X2_UINT = 96 + SURFACE_FORMAT_CHANNEL_SWAP, 216 FORMAT_R10G10B10X2_SNORM = 97, 217 FORMAT_B10G10R10X2_SNORM = 97 + SURFACE_FORMAT_CHANNEL_SWAP, 218 FORMAT_R10G10B10_XR_BIAS_X2_TYPELESS = 98, 219 FORMAT_B10G10R10_XR_BIAS_X2_TYPELESS = 98 + SURFACE_FORMAT_CHANNEL_SWAP, 220 FORMAT_R11G11B10_FLOAT = 99, 221 FORMAT_R9G9B9E5_SHAREDEXP = 100, 222 FORMAT_R8G8B8A8_UNORM = 101, 223 FORMAT_B8G8R8A8_UNORM = 101 + SURFACE_FORMAT_CHANNEL_SWAP, 224 FORMAT_R8G8B8A8_UNORM_SRGB = 102, 225 FORMAT_B8G8R8A8_UNORM_SRGB = 102 + SURFACE_FORMAT_CHANNEL_SWAP, 226 FORMAT_R8G8B8A8_UINT = 103, 227 FORMAT_B8G8R8A8_UINT = 103 + SURFACE_FORMAT_CHANNEL_SWAP, 228 FORMAT_R8G8B8A8_SNORM = 104, 229 FORMAT_B8G8R8A8_SNORM = 104 + SURFACE_FORMAT_CHANNEL_SWAP, 230 FORMAT_R8G8B8A8_SINT = 105, 231 FORMAT_B8G8R8A8_SINT = 105 + SURFACE_FORMAT_CHANNEL_SWAP, 232 FORMAT_R8G8B8X8_UNORM = 106, 233 FORMAT_B8G8R8X8_UNORM = 106 + SURFACE_FORMAT_CHANNEL_SWAP, 234 FORMAT_R8G8B8X8_UNORM_SRGB = 107, 235 FORMAT_B8G8R8X8_UNORM_SRGB = 107 + SURFACE_FORMAT_CHANNEL_SWAP, 236 FORMAT_R8G8B8X8_UINT = 108, 237 FORMAT_B8G8R8X8_UINT = 108 + SURFACE_FORMAT_CHANNEL_SWAP, 238 FORMAT_R8G8B8X8_SNORM = 109, 239 FORMAT_B8G8R8X8_SNORM = 109 + SURFACE_FORMAT_CHANNEL_SWAP, 240 FORMAT_R8G8B8X8_SINT = 110, 241 FORMAT_B8G8R8X8_SINT = 110 + SURFACE_FORMAT_CHANNEL_SWAP, 242 FORMAT_R8G8B8_UNORM = 111, 243 FORMAT_B8G8R8_UNORM = 111 + SURFACE_FORMAT_CHANNEL_SWAP, 244 FORMAT_R8G8B8_UNORM_SRGB = 112, 245 FORMAT_B8G8R8_UNORM_SRGB = 112 + SURFACE_FORMAT_CHANNEL_SWAP, 246 FORMAT_R8G8B8_UINT = 113, 247 FORMAT_B8G8R8_UINT = 113 + SURFACE_FORMAT_CHANNEL_SWAP, 248 FORMAT_R8G8B8_SNORM = 114, 249 FORMAT_B8G8R8_SNORM = 114 + SURFACE_FORMAT_CHANNEL_SWAP, 250 FORMAT_R8G8B8_SINT = 115, 251 FORMAT_B8G8R8_SINT = 115 + SURFACE_FORMAT_CHANNEL_SWAP, 252 FORMAT_R8G8_B8G8_UNORM = 116, 253 FORMAT_B8G8_R8G8_UNORM = 116 + SURFACE_FORMAT_CHANNEL_SWAP, 254 FORMAT_R8G8_B8G8_UNORM_SRGB = 117, 255 FORMAT_B8G8_R8G8_UNORM_SRGB = 117 + SURFACE_FORMAT_CHANNEL_SWAP, 256 FORMAT_R8G8_B8G8_UINT = 118, 257 FORMAT_B8G8_R8G8_UINT = 118 + SURFACE_FORMAT_CHANNEL_SWAP, 258 FORMAT_R8G8_B8G8_SNORM = 119, 259 FORMAT_B8G8_R8G8_SNORM = 119 + SURFACE_FORMAT_CHANNEL_SWAP, 260 FORMAT_R8G8_B8G8_SINT = 120, 261 FORMAT_B8G8_R8G8_SINT = 120 + SURFACE_FORMAT_CHANNEL_SWAP, 262 FORMAT_G8R8_G8B8_UNORM = 121, 263 FORMAT_G8B8_G8R8_UNORM = 121 + SURFACE_FORMAT_CHANNEL_SWAP, 264 FORMAT_G8R8_G8B8_UNORM_SRGB = 122, 265 FORMAT_G8B8_G8R8_UNORM_SRGB = 122 + SURFACE_FORMAT_CHANNEL_SWAP, 266 FORMAT_G8R8_G8B8_UINT = 123, 267 FORMAT_G8B8_G8R8_UINT = 123 + SURFACE_FORMAT_CHANNEL_SWAP, 268 FORMAT_G8R8_G8B8_SNORM = 124, 269 FORMAT_G8B8_G8R8_SNORM = 124 + SURFACE_FORMAT_CHANNEL_SWAP, 270 FORMAT_G8R8_G8B8_SINT = 125, 271 FORMAT_G8B8_G8R8_SINT = 125 + SURFACE_FORMAT_CHANNEL_SWAP, 272 FORMAT_R8G8_UNORM = 126, 273 FORMAT_R8G8_UINT = 127, 274 FORMAT_R8G8_SNORM = 128, 275 FORMAT_R8G8_SINT = 129, 276 FORMAT_L8A8_UNORM = 130, 277 FORMAT_L8A8_UNORM_SRGB = 131, 278 FORMAT_L8A8_UINT = 132, 279 FORMAT_L8A8_SNORM = 133, 280 FORMAT_L8A8_SINT = 134, 281 FORMAT_R8_UNORM = 135, 282 FORMAT_R8_UINT = 136, 283 FORMAT_R8_SNORM = 137, 284 FORMAT_R8_SINT = 138, 285 FORMAT_A8_UNORM = 139, 286 FORMAT_A8_UINT = 140, 287 FORMAT_A8_SNORM = 141, 288 FORMAT_A8_SINT = 142, 289 FORMAT_L8_UNORM = 143, 290 FORMAT_L8_UNORM_SRGB = 144, 291 FORMAT_L8_UINT = 145, 292 FORMAT_L8_SNORM = 146, 293 FORMAT_L8_SINT = 147, 294 FORMAT_I8_UNORM = 148, 295 FORMAT_I8_UINT = 149, 296 FORMAT_I8_SNORM = 150, 297 FORMAT_I8_SINT = 151, 298 FORMAT_R5G6B5_UNORM = 152, 299 FORMAT_B5G6R5_UNORM = 152 + SURFACE_FORMAT_CHANNEL_SWAP, 300 FORMAT_R5G6B5_UNORM_SRGB = 153, 301 FORMAT_B5G6R5_UNORM_SRGB = 153 + SURFACE_FORMAT_CHANNEL_SWAP, 302 FORMAT_R5G5B5A1_UNORM = 154, 303 FORMAT_B5G5R5A1_UNORM = 154 + SURFACE_FORMAT_CHANNEL_SWAP, 304 FORMAT_R5G5B5A1_UNORM_SRGB = 155, 305 FORMAT_B5G5R5A1_UNORM_SRGB = 155 + SURFACE_FORMAT_CHANNEL_SWAP, 306 FORMAT_A1R5G5B5_UNORM = 156, 307 FORMAT_A1B5G5R5_UNORM = 156 + SURFACE_FORMAT_CHANNEL_SWAP, 308 FORMAT_A1R5G5B5_UNORM_SRGB = 157, 309 FORMAT_A1B5G5R5_UNORM_SRGB = 157 + SURFACE_FORMAT_CHANNEL_SWAP, 310 FORMAT_R4G4B4A4_UNORM = 158, 311 FORMAT_B4G4R4A4_UNORM = 158 + SURFACE_FORMAT_CHANNEL_SWAP, 312 FORMAT_R4G4B4A4_UNORM_SRGB = 159, 313 FORMAT_B4G4R4A4_UNORM_SRGB = 159 + SURFACE_FORMAT_CHANNEL_SWAP, 314 FORMAT_A4R4G4B4_UNORM = 160, 315 FORMAT_A4B4G4R4_UNORM = 160 + SURFACE_FORMAT_CHANNEL_SWAP, 316 FORMAT_A4R4G4B4_UNORM_SRGB = 161, 317 FORMAT_A4B4G4R4_UNORM_SRGB = 161 + SURFACE_FORMAT_CHANNEL_SWAP, 318 319 FORMAT_AYUV = 200, 320 FORMAT_AYVU = 200 + SURFACE_FORMAT_CHANNEL_SWAP, 321 FORMAT_YUY2 = 201, 322 FORMAT_YVYU = 201 + SURFACE_FORMAT_CHANNEL_SWAP, 323 FORMAT_YCRCB_NORMAL = 201, 324 FORMAT_YCRCB_SWAPUV = 201 + SURFACE_FORMAT_CHANNEL_SWAP, 325 FORMAT_VYUY = 202, 326 FORMAT_UYVY = 202 + SURFACE_FORMAT_CHANNEL_SWAP, 327 FORMAT_YCRCB_SWAPUYV = 202, 328 FORMAT_YCRCB_SWAPY = 202 + SURFACE_FORMAT_CHANNEL_SWAP, 329 FORMAT_Y410 = 203, 330 FORMAT_Y416 = 204, 331 FORMAT_Y210 = 205, 332 FORMAT_Y216 = 206, 333 FORMAT_HDMI = 207, 334 FORMAT_DP = 208, 335 336 FORMAT_420_OPAQUE = 219, 337 FORMAT_NV12 = 220, 338 FORMAT_NV21 = 220 + SURFACE_FORMAT_CHANNEL_SWAP, 339 FORMAT_PLANAR_420_8 = 220, 340 FORMAT_NV11 = 221, 341 FORMAT_P010 = 222, 342 FORMAT_PLANAR_420_16 = 223, 343 FORMAT_P016 = 223, 344 FORMAT_P210 = 224, 345 FORMAT_P216 = 225, 346 FORMAT_P208 = 226, 347 348 FORMAT_I420 = 240, 349 FORMAT_YV12 = 240 + SURFACE_FORMAT_CHANNEL_SWAP, 350 FORMAT_IMC3 = 241, 351 FORMAT_IMC1 = 241 + SURFACE_FORMAT_CHANNEL_SWAP, 352 FORMAT_IMC4 = 242, 353 FORMAT_IMC2 = 242 + SURFACE_FORMAT_CHANNEL_SWAP, 354 FORMAT_RGBP = 243, 355 FORMAT_BGRP = 243 + SURFACE_FORMAT_CHANNEL_SWAP, 356 FORMAT_400P = 244, 357 FORMAT_NV12_2PLANES = 245, 358 FORMAT_YV12_3PLANES = 246, 359 FORMAT_Y210_2PLANES = 247, 360 FORMAT_P010_2PLANES = 248, 361 FORMAT_BASE_MASK = 255, 362 FORMAT_MASK = 255 + SURFACE_FORMAT_CHANNEL_SWAP, 363 FORMAT_UNKNOWN = 0x7FFFFFFF, 364 } MDF_FC_FORMAT; 365 366 //! 367 //! \brief Color Spaces enum 368 //! 369 typedef enum _MDF_FC_PLANE_TYPE 370 { 371 SINGLE_PLANE, 372 TWO_PLANES_FIRST, 373 TWO_PLANES_SECOND, 374 THREE_PLANES_FIRST, 375 THREE_PLANES_SECOND, 376 THREE_PLANES_THIRD, 377 PLANE_TYPE_NUM 378 } MDF_FC_PLANE_TYPE; 379 380 //! 381 //! \brief Color Spaces enum 382 //! 383 typedef enum _MDF_FC_COLOR_SPACE 384 { 385 CSpace_None = -5 , //!< Unidentified 386 CSpace_Source = -4 , //!< Current source Color Space 387 388 // Groups of Color Spaces 389 CSpace_RGB = -3 , //!< sRGB 390 CSpace_YUV = -2 , //!< YUV BT601 or BT709 - non xvYCC 391 CSpace_Gray = -1 , //!< Gray scale image with only Y component 392 CSpace_Any = 0 , //!< Any 393 394 // Specific Color Spaces 395 CSpace_sRGB , //!< RGB - sRGB - RGB[0,255] 396 CSpace_stRGB , //!< RGB - stRGB - RGB[16,235] 397 CSpace_BT601 , //!< YUV BT.601 Y[16,235] UV[16,240] 398 CSpace_BT601_FullRange , //!< YUV BT.601 Y[0,255] UV[-128,+127] 399 CSpace_BT709 , //!< YUV BT.709 Y[16,235] UV[16,240] 400 CSpace_BT709_FullRange , //!< YUV BT.709 Y[0,255] UV[-128,+127] 401 CSpace_xvYCC601 , //!< xvYCC 601 Y[16,235] UV[16,240] 402 CSpace_xvYCC709 , //!< xvYCC 709 Y[16,235] UV[16,240] 403 CSpace_BT601Gray , //!< BT.601 Y[16,235] 404 CSpace_BT601Gray_FullRange , //!< BT.601 Y[0,255] 405 CSpace_BT2020 , //!< BT.2020 YUV Limited Range 10bit Y[64, 940] UV[64, 960] 406 CSpace_BT2020_FullRange , //!< BT.2020 YUV Full Range 10bit [0, 1023] 407 CSpace_BT2020_RGB , //!< BT.2020 RGB Full Range 10bit [0, 1023] 408 CSpace_BT2020_stRGB , //!< BT.2020 RGB Studio Range 10bit [64, 940] 409 CSpace_Count //!< Keep this at the end 410 } MDF_FC_COLOR_SPACE; 411 412 //! 413 //! \brief Chroma siting enum 414 //! 415 typedef enum _MDF_FC_CHROMA_SITING 416 { 417 CHROMA_SUBSAMPLING_TOP_CENTER = 0, 418 CHROMA_SUBSAMPLING_CENTER_CENTER = 0x1000000, 419 CHROMA_SUBSAMPLING_BOTTOM_CENTER = 0x2000000, 420 CHROMA_SUBSAMPLING_TOP_LEFT = 0x3000000, 421 CHROMA_SUBSAMPLING_CENTER_LEFT = 0x4000000, 422 CHROMA_SUBSAMPLING_BOTTOM_LEFT = 0x5000000 423 } MDF_FC_CHROMA_SITING; 424 425 426 //! 427 //! \brief Vphal Rotation Mode enum 428 //! 429 typedef enum _MDF_FC_ROTATION 430 { 431 MDF_FC_ROTATION_IDENTITY = 0, //!< Rotation 0 degrees 432 MDF_FC_ROTATION_90, //!< Rotation 90 degrees 433 MDF_FC_ROTATION_180, //!< Rotation 180 degrees 434 MDF_FC_ROTATION_270, //!< Rotation 270 degrees 435 MDF_FC_MIRROR_HORIZONTAL, //!< Horizontal Mirror 436 MDF_FC_MIRROR_VERTICAL, //!< Vertical Mirror 437 MDF_FC_ROTATE_90_MIRROR_VERTICAL, //!< 90 + V Mirror 438 MDF_FC_ROTATE_90_MIRROR_HORIZONTAL //!< 90 + H Mirror 439 } MDF_FC_ROTATION; 440 441 #endif