hardware/intel/libva
Revision | ea0ed78508bbc2dc000bdbd5b50f4e3665fe27a4 (tree) |
---|---|
Zeit | 2013-05-28 17:19:08 |
Autor | Gwenole Beauchesne <gwenole.beauchesne@inte...> |
Commiter | Xiang, Haihao |
API: h264 encode: add new VA config attributes (max-slices, slice-structure).
@@ -308,6 +308,30 @@ typedef enum | ||
308 | 308 | * bits). |
309 | 309 | */ |
310 | 310 | VAConfigAttribEncMaxRefFrames = 13, |
311 | + /** | |
312 | + * \brief Maximum number of slices per frame. Read-only. | |
313 | + * | |
314 | + * This attribute determines the maximum number of slices the | |
315 | + * driver can support to encode a single frame. | |
316 | + */ | |
317 | + VAConfigAttribEncMaxSlices = 14, | |
318 | + /** | |
319 | + * \brief Slice structure. Read-only. | |
320 | + * | |
321 | + * This attribute determines slice structures supported by the | |
322 | + * driver for encoding. This attribute is a hint to the user so | |
323 | + * that he can choose a suitable surface size and how to arrange | |
324 | + * the encoding process of multiple slices per frame. | |
325 | + * | |
326 | + * More specifically, for H.264 encoding, this attribute | |
327 | + * determines the range of accepted values to | |
328 | + * VAEncSliceParameterBufferH264::macroblock_address and | |
329 | + * VAEncSliceParameterBufferH264::num_macroblocks. | |
330 | + * | |
331 | + * See \c VA_ENC_SLICE_STRUCTURE_xxx for the supported slice | |
332 | + * structure types. | |
333 | + */ | |
334 | + VAConfigAttribEncSliceStructure = 15, | |
311 | 335 | /**@}*/ |
312 | 336 | } VAConfigAttribType; |
313 | 337 |
@@ -360,6 +384,16 @@ typedef struct _VAConfigAttrib { | ||
360 | 384 | #define VA_ENC_INTERLACED_PAFF 0x00000008 |
361 | 385 | /**@}*/ |
362 | 386 | |
387 | +/** @name Attribute values for VAConfigAttribEncSliceStructure */ | |
388 | +/**@{*/ | |
389 | +/** \brief Driver supports an arbitrary number of rows per slice. */ | |
390 | +#define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS 0x00000000 | |
391 | +/** \brief Driver supports a power-of-two number of rows per slice. */ | |
392 | +#define VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS 0x00000001 | |
393 | +/** \brief Driver supports an arbitrary number of rows per slice. */ | |
394 | +#define VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS 0x00000002 | |
395 | +/**@}*/ | |
396 | + | |
363 | 397 | /* |
364 | 398 | * if an attribute is not applicable for a given |
365 | 399 | * profile/entrypoint pair, then set the value to the following |