summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpylee <penne.y.lee@intel.com>2014-06-23 04:49:47 -0700
committerSean V Kelley <seanvk@posteo.de>2016-08-05 12:42:20 -0700
commit7c22907a38eda406bf9b30dfcf0792b1217bb482 (patch)
tree84959d4466cc262dedc7568b25ca76856b5db342
parent695f99ef0405cf4255e7767b44effb0da2fe706e (diff)
Add support for decode and processing in a single decode call.
Signed-off-by: Sean V Kelley <seanvk@posteo.de>
-rw-r--r--va/va.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/va/va.h b/va/va.h
index ef8595a..70f4389 100644
--- a/va/va.h
+++ b/va/va.h
@@ -366,6 +366,40 @@ typedef enum
*/
VAConfigAttribDecSliceMode = 6,
+ /**
+ * \brief Decode processing support. Read/write.
+ *
+ * This attribute determines if the driver supports video processing
+ * with decoding using the decoding context in a single call, through
+ * vaGetConfigAttributes(); and if the user may use this feature,
+ * through vaCreateConfig(), if the driver supports the user scenario.
+ * The user will essentially create a regular decode VAContext. Therefore,
+ * the parameters of vaCreateContext() such as picture_width, picture_height
+ * and render_targets are in relation to the decode output parameters
+ * (not processing output parameters) as normal.
+ * If this attribute is not set by the user then it is assumed that no
+ * extra processing is done after decoding for this decode context.
+ *
+ * Since essentially the application is creating a decoder config and context,
+ * all function calls that take in the config (e.g. vaQuerySurfaceAttributes())
+ * or context are in relation to the decoder, except those video processing
+ * function specified in the next paragraph.
+ *
+ * Once the decode config and context are created, the user must further
+ * query the supported processing filters using vaQueryVideoProcFilters(),
+ * vaQueryVideoProcFilterCaps(), vaQueryVideoProcPipelineCaps() by specifying
+ * the created decode context. The user must provide processing information
+ * and extra processing output surfaces as "additional_outputs" to the driver
+ * through VAProcPipelineParameterBufferType. The render_target specified
+ * at vaBeginPicture() time refers to the decode output surface. The
+ * target surface for the output of processing needs to be a different
+ * surface since the decode process requires the original reconstructed buffer.
+ * The “surface” member of VAProcPipelineParameterBuffer should be set to the
+ * same as “render_target” set in vaBeginPicture(), but the driver may choose
+ * to ignore this parameter.
+ */
+ VAConfigAttribDecProcessing = 8,
+
/** @name Attributes for encoding */
/**@{*/
/**
@@ -529,6 +563,14 @@ typedef struct _VAConfigAttrib {
#define VA_DEC_SLICE_MODE_BASE 0x00000002
/**@}*/
+/** @name Attribute values for VAConfigAttribDecProcessing */
+/**@{*/
+/** \brief No decoding + processing in a single decoding call. */
+#define VA_DEC_PROCESSING_NONE 0x00000000
+/** \brief Decode + processing in a single decoding call. */
+#define VA_DEC_PROCESSING 0x00000001
+/**@}*/
+
/** @name Attribute values for VAConfigAttribEncPackedHeaders */
/**@{*/
/** \brief Driver does not support any packed headers mode. */