summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSreerenj Balachandran <sreerenj.balachandran@intel.com>2017-07-12 15:15:51 -0700
committerXiang, Haihao <haihao.xiang@intel.com>2017-08-21 16:37:24 +0800
commit4033745a571c228133347446cdeacf80800e78ed (patch)
treedfbce946fa794bfa1df760a64091de043fc53f43
parent9ca99eb84cdb6ea638af567f6074c53fa51a416c (diff)
downloadlibva-4033745a571c228133347446cdeacf80800e78ed.tar.gz
Add support for encoding QP buffer
VAEncQPBufferH264 structure is defined to hold QP per 16x16 macroblock for H.264 encoding, we can add similar structures for other codecs in the future. VAEncQPBufferType is added to pass the corresponding QP buffer to the driver for each codec. Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Signed-off-by: Jonathan Bian <jonathan.bian@intel.com>
-rw-r--r--va/va.h9
-rw-r--r--va/va_enc_h264.h9
2 files changed, 18 insertions, 0 deletions
diff --git a/va/va.h b/va/va.h
index a0eb02f..5c679bc 100644
--- a/va/va.h
+++ b/va/va.h
@@ -1123,6 +1123,15 @@ typedef enum
VAEncMiscParameterBufferType = 27,
VAEncMacroblockParameterBufferType = 28,
VAEncMacroblockMapBufferType = 29,
+
+ /**
+ * \brief Encoding QP buffer
+ *
+ * This buffer contains QP per MB for encoding. Currently
+ * VAEncQPBufferH264 is defined for H.264 encoding, see
+ * #VAEncQPBufferH264 for details
+ */
+ VAEncQPBufferType = 30,
/* Following are video processing buffer types */
/**
* \brief Video processing pipeline parameter buffer.
diff --git a/va/va_enc_h264.h b/va/va_enc_h264.h
index 2e7eb8d..c62ec93 100644
--- a/va/va_enc_h264.h
+++ b/va/va_enc_h264.h
@@ -368,6 +368,15 @@ typedef struct _VAEncPictureParameterBufferH264 {
} pic_fields;
} VAEncPictureParameterBufferH264;
+typedef struct _VAEncQPBufferH264 {
+ /*
+ * \brief This structure holds QP per 16x16 macroblock. Buffer size shall be
+ * sufficient to fit the slice or frame to be encoded depending on if it is a
+ * slice level or frame level encoding.
+ */
+ uint8_t qp;
+} VAEncQPBufferH264;
+
/**
* \brief Slice parameter for H.264 encoding in baseline, main & high profiles.
*