[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