diff options
author | pylee <penne.y.lee@intel.com> | 2014-06-23 04:49:47 -0700 |
---|---|---|
committer | Sean V Kelley <seanvk@posteo.de> | 2016-08-05 12:42:20 -0700 |
commit | 7c22907a38eda406bf9b30dfcf0792b1217bb482 (patch) | |
tree | 84959d4466cc262dedc7568b25ca76856b5db342 | |
parent | 695f99ef0405cf4255e7767b44effb0da2fe706e (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.h | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -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. */ |