[Libva] [PATCH 13/42] API: h264 encode: add new VA config attributes (max-slices, slice-structure).
Xiang, Haihao
haihao.xiang at intel.com
Mon May 13 00:51:37 PDT 2013
From: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
---
va/va.h | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/va/va.h b/va/va.h
index 88cfda9..07289ef 100644
--- a/va/va.h
+++ b/va/va.h
@@ -338,6 +338,30 @@ typedef enum
* bits).
*/
VAConfigAttribEncMaxRefFrames = 13,
+ /**
+ * \brief Maximum number of slices per frame. Read-only.
+ *
+ * This attribute determines the maximum number of slices the
+ * driver can support to encode a single frame.
+ */
+ VAConfigAttribEncMaxSlices = 14,
+ /**
+ * \brief Slice structure. Read-only.
+ *
+ * This attribute determines slice structures supported by the
+ * driver for encoding. This attribute is a hint to the user so
+ * that he can choose a suitable surface size and how to arrange
+ * the encoding process of multiple slices per frame.
+ *
+ * More specifically, for H.264 encoding, this attribute
+ * determines the range of accepted values to
+ * VAEncSliceParameterBufferH264::macroblock_address and
+ * VAEncSliceParameterBufferH264::num_macroblocks.
+ *
+ * See \c VA_ENC_SLICE_STRUCTURE_xxx for the supported slice
+ * structure types.
+ */
+ VAConfigAttribEncSliceStructure = 15,
/**@}*/
} VAConfigAttribType;
@@ -390,6 +414,16 @@ typedef struct _VAConfigAttrib {
#define VA_ENC_INTERLACED_PAFF 0x00000008
/**@}*/
+/** @name Attribute values for VAConfigAttribEncSliceStructure */
+/**@{*/
+/** \brief Driver supports an arbitrary number of rows per slice. */
+#define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS 0x00000000
+/** \brief Driver supports a power-of-two number of rows per slice. */
+#define VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS 0x00000001
+/** \brief Driver supports an arbitrary number of rows per slice. */
+#define VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS 0x00000002
+/**@}*/
+
/*
* if an attribute is not applicable for a given
* profile/entrypoint pair, then set the value to the following
--
1.7.4.1
More information about the Libva
mailing list