summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpylee <penne.y.lee@intel.com>2014-07-09 04:39:02 -0700
committerXiang, Haihao <haihao.xiang@intel.com>2014-07-11 18:43:10 +0800
commit8b7fc2256d4dcf1048ec3010ea484010acd966f9 (patch)
tree89a3af2965418ab1e41e835c25187c487018071b
parent84b90a3335bdbda4a80d2584389292292b89490f (diff)
downloadlibva-8b7fc2256d4dcf1048ec3010ea484010acd966f9.tar.gz
Add dirty ROI indication for encoder.
-rw-r--r--va/va.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/va/va.h b/va/va.h
index 320f851..8543840 100644
--- a/va/va.h
+++ b/va/va.h
@@ -604,6 +604,21 @@ typedef enum
*/
VAConfigAttribProcessingRate = 27,
/**
+ * \brief Encoding dirty region-of-interest. Read-only.
+ *
+ * This attribute conveys whether the driver supports dirty region-of-interest (ROI)
+ * encoding, based on user provided ROI rectangles which indicate the rectangular areas
+ * where the content has changed as compared to the previous picture. The regions of the
+ * picture that are not covered by dirty ROI rectangles are assumed to have not changed
+ * compared to the previous picture. The encoder may do some optimizations based on
+ * this information. The attribute value returned indicates the number of regions that
+ * are supported. e.g. A value of 0 means dirty ROI encoding is not supported. If dirty
+ * ROI encoding is supported, the ROI information is passed to the driver using
+ * VAEncMiscParameterTypeDirtyROI.
+ */
+ VAConfigAttribEncDirtyROI = 28,
+
+ /**
* \brief Intel specific attributes start at 1001
*/
/**
@@ -1432,6 +1447,8 @@ typedef enum
VAEncMiscParameterTypeCIR = 11,
/** \brief Buffer type used for temporal layer structure */
VAEncMiscParameterTypeTemporalLayerStructure = 12,
+ /** \brief Buffer type used for dirty region-of-interest (ROI) parameters. */
+ VAEncMiscParameterTypeDirtyROI = 13,
/* Intel specific types start at 1001 */
/* VAEntrypointEncFEIIntel */
@@ -1791,6 +1808,26 @@ typedef struct _VAEncMiscParameterBufferROI {
VAEncROI *roi;
} VAEncMiscParameterBufferROI;
+/*
+ * \brief Dirty region-of-interest (ROI) data structure for encoding.
+ *
+ * The encoding dirty ROI can be set through VAEncMiscParameterBufferDirtyROI, if the
+ * implementation supports dirty ROI input. The ROI set through this structure is applicable
+ * only to the current frame or field, so must be sent every frame or field to be applied.
+ * The number of supported ROIs can be queried through the VAConfigAttribEncDirtyROI. The
+ * encoder will use the ROI information to know those rectangle areas have changed while the
+ * areas not covered by dirty ROI rectangles are assumed to have not changed compared to the
+ * previous picture. The encoder may do some internal optimizations.
+ */
+typedef struct _VAEncMiscParameterBufferDirtyROI
+{
+ /** \brief Number of ROIs being sent.*/
+ unsigned int num_roi_rectangle;
+
+ /** \brief Pointer to a VARectangle array with num_roi_rectangle elements.*/
+ VARectangle *roi_rectangle;
+} VAEncMiscParameterBufferDirtyROI;
+
/**
* There will be cases where the bitstream buffer will not have enough room to hold
* the data for the entire slice, and the following flags will be used in the slice