summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bian <jonathan.bian@intel.com>2013-06-13 22:04:30 -0700
committerAustin Yuan <shengquan.yuan@intel.com>2013-07-12 01:29:17 +0800
commit24a14f9d13e6fe0c25d4094c4884aa4076ed05bc (patch)
treebfed7497a841ca8e005fe6fbe03ee80e8580565d
parentf63329bb52a34f096e238b8af442af674d697f9e (diff)
Added VAConfigEncQualityRange attribute and VAEncMiscParameterBufferQualityLevel to support encoder quality settings.
-rw-r--r--va/va.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/va/va.h b/va/va.h
index ac9bc10..00d4fdb 100644
--- a/va/va.h
+++ b/va/va.h
@@ -440,6 +440,15 @@ typedef enum
* VAConfigAttribValEncJPEG union.
*/
VAConfigAttribEncJPEG = 20,
+ /**
+ * \brief Encoding quality range attribute. Read-only.
+ *
+ * This attribute conveys whether the driver supports different quality level settings
+ * for encoding. A value less than or equal to 1 means that the encoder only has a single
+ * quality setting, and a value greater than 1 represents the number of quality levels
+ * that can be configured. e.g. a value of 2 means there are two distinct quality levels.
+ */
+ VAConfigAttribEncQualityRange = 21,
/**@}*/
VAConfigAttribTypeMax
} VAConfigAttribType;
@@ -1001,6 +1010,7 @@ typedef enum
VAEncMiscParameterTypeMaxFrameSize = 4,
/** \brief Buffer type used for HRD parameters. */
VAEncMiscParameterTypeHRD = 5,
+ VAEncMiscParameterTypeQualityLevel = 6,
} VAEncMiscParameterType;
/** \brief Packed header type. */
@@ -1132,6 +1142,22 @@ typedef struct _VAEncMiscParameterBufferMaxFrameSize {
unsigned int max_frame_size;
} VAEncMiscParameterBufferMaxFrameSize;
+/**
+ * \brief Encoding quality level.
+ *
+ * The encoding quality could be set through this structure, if the implementation
+ * supports multiple quality levels. The quality level set through this structure is
+ * persistent over the entire coded sequence, or until a new structure is being sent.
+ * The quality level range can be queried through the VAConfigAttribEncQualityRange
+ * attribute. A lower value means higher quality, and a value of 1 represents the highest
+ * quality. The quality level setting is used as a trade-off between quality and speed/power
+ * consumption, with higher quality corresponds to lower speed and higher power consumption.
+ */
+typedef struct _VAEncMiscParameterBufferQualityLevel {
+ /** \brief Encoding quality level setting. */
+ unsigned int quality_level;
+} VAEncMiscParameterBufferQualityLevel;
+
/*
* 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