[Libva] [PATCH 1/3] Add one flag to use the qp_delta instead of qp priority for ROI under non-CQP mode

Pengfei Qu Pengfei.Qu at intel.com
Wed Jul 6 03:37:23 UTC 2016


From: jialipen <cecilia.peng at intel.com>

Currently the roi_value in VAEncROI is used as the qp priority when
VAConfigAttribRateControl != VA_RC_CQP. But some customers hope to use
it as qp_delta like CQP mode. In such case one flag is added to indicate
whether it is qp_priority or not. At the same time driver can export it
in VAConfigAttribValEncROI to indicate whether the qp_delta is supported
when VAConfigAttribRateControl != VA_RC_CQP.

Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
Signed-off-by: ceciliapeng <cecilia.peng at intel.com>
Signed-off-by: Pengfei Qu <Pengfei.Qu at intel.com>
---
 va/va.h | 31 ++++++++++++++++++++++++++-----
 1 file changed, 26 insertions(+), 5 deletions(-)

diff --git a/va/va.h b/va/va.h
index 2029149..e87891c 100644
--- a/va/va.h
+++ b/va/va.h
@@ -593,12 +593,20 @@ typedef union _VAConfigAttribValEncROI {
     struct {
         /** \brief The number of ROI regions supported, 0 if ROI is not supported. */
         unsigned int num_roi_regions 		: 8;
-        /** \brief Indicates if ROI priority indication is supported when
-         * VAConfigAttribRateControl != VA_RC_CQP, else only ROI delta QP added on top of
-         * the frame level QP is supported when VAConfigAttribRateControl == VA_RC_CQP.
+        /** \brief Currently the roi_value in VAEncROI is used as the qp priority when
+         *  VAConfigAttribRateControl != VA_RC_CQP. But some customers hope to use
+         *  it as qp_delta like CQP mode. In such case one flag is added to indicate
+         *  whether it is qp_priority or not. At the same time driver can export it
+         *  in VAConfigAttribValEncROI to indicate whether the qp_delta is supported
+         *  when VAConfigAttribRateControl != VA_RC_CQP.
          */
-	unsigned int roi_rc_priority_support	: 1;
-	unsigned int reserved                   : 23;
+        unsigned int roi_rc_priority_support	: 1;
+        /** \brief indicates whether ROI delta qp is supported when+
+         *  VAConfigAttribRateControl != VA_RC_CQP. If not, the roi_rc_priority_support+
+         *  is used. It is ignored when VAConfigAttribRateControl == VA_RC_CQP+
+         */
+        unsigned int roi_rc_qp_delat_support    : 1;
+        unsigned int reserved                   : 22;
      } bits;
      unsigned int value;
 } VAConfigAttribValEncROI;
@@ -1293,6 +1301,19 @@ typedef struct _VAEncMiscParameterBufferROI {
    /** \brief Pointer to a VAEncROI array with num_roi elements.  It is relative to frame
      *  coordinates for the frame case and to field coordinates for the field case.*/
     VAEncROI            *roi;
+    union {
+        struct {
+            /** \this indicates whether the qp delta should be used
+             *  when VAConfigAttribRateControl != VA_RC_CQP. If it is true,
+             *  it indicates that delta qp is used in VAEncROI. Else it indicates
+             *  that the roi priority is used. When the VAConfigAttribRateControl
+             *  is VA_RC_CQP, it is ignored.
+             */
+            uint32_t  roi_value_is_qp_delta    : 1;
+            uint32_t  reserved                 : 31;
+        } bits;
+        uint32_t value;
+    } roi_flags;
 } VAEncMiscParameterBufferROI;
 
 /**
-- 
2.7.4



More information about the Libva mailing list