diff options
author | Oscar Mateo <oscar.mateo@intel.com> | 2013-06-11 10:29:31 +0100 |
---|---|---|
committer | Austin Yuan <shengquan.yuan@intel.com> | 2013-06-26 08:55:58 +0800 |
commit | 4b674a906140156793bf6eba441738bafd45749b (patch) | |
tree | 7071916fd586228244c39882884b7523ae0bae8a | |
parent | 968a9bf006679ad8d752fa1ddcd4bb80fc8c5e51 (diff) |
va: Allow attribute-by-attribute configuration of the TCC filter
A VA buffer can hold several total color correction attributes
by creating a VA buffer of the desired number of elements, in
such a way that you can independently modify the attribute or
attributes (out of R, G, B, C, M and Y) that you need.
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
-rw-r--r-- | va/va_vpp.h | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/va/va_vpp.h b/va/va_vpp.h index 49220b2..ec6d2ee 100644 --- a/va/va_vpp.h +++ b/va/va_vpp.h @@ -324,6 +324,25 @@ typedef enum _VAProcColorStandardType { VAProcColorStandardCount } VAProcColorStandardType; +/** \brief Total color correction types. */ +typedef enum _VAProcTotalColorCorrectionType { + VAProcTotalColorCorrectionNone = 0, + /** \brief Red Saturation. */ + VAProcTotalColorCorrectionRed, + /** \brief Green Saturation. */ + VAProcTotalColorCorrectionGreen, + /** \brief Blue Saturation. */ + VAProcTotalColorCorrectionBlue, + /** \brief Cyan Saturation. */ + VAProcTotalColorCorrectionCyan, + /** \brief Magenta Saturation. */ + VAProcTotalColorCorrectionMagenta, + /** \brief Yellow Saturation. */ + VAProcTotalColorCorrectionYellow, + /** \brief Number of color correction attributes. */ + VAProcTotalColorCorrectionCount +} VAProcTotalColorCorrectionType; + /** @name Video blending flags */ /**@{*/ /** \brief Global alpha blending. */ @@ -786,22 +805,14 @@ typedef struct _VAProcFilterParamterBufferFrameRateConversion { VASurfaceID* output_frames; } VAProcFilterParameterBufferFrameRateConversion; -/** \brief Total Color Correction filter parametrization. */ -typedef struct _VAProcFilterParamterBufferTotalColorCorrection { - /** \brief filter type. Shall be set to #VAProcFilterTotalColorCorrection. */ - VAProcFilterType type; - /** \brief TCC Red Saturation. */ - float red; - /** \brief TCC Green Saturation. */ - float green; - /** \brief TCC Blue Saturation. */ - float blue; - /** \brief TCC cyan Saturation. */ - float cyan; - /** \brief TCC Magenta Saturation. */ - float magenta; - /** \brief TCC Yello Saturation. */ - float yellow; +/** \brief Total color correction filter parametrization. */ +typedef struct _VAProcFilterParameterBufferTotalColorCorrection { + /** \brief Filter type. Shall be set to #VAProcFilterTotalColorCorrection. */ + VAProcFilterType type; + /** \brief Color to correct. */ + VAProcTotalColorCorrectionType attrib; + /** \brief Color correction value. */ + float value; } VAProcFilterParameterBufferTotalColorCorrection; /** \brief Non-Linear Anamorphic Scaling filter parametrization. */ @@ -843,18 +854,10 @@ typedef struct _VAProcFilterCapColorBalance { /** \brief Capabilities specification for the Total Color Correction filter. */ typedef struct _VAProcFilterCapTotalColorCorrection { - /** \brief Range of supported values for red saturation. */ - VAProcFilterValueRange red_range; - /** \brief Range of supported values for green saturation. */ - VAProcFilterValueRange green_range; - /** \brief Range of supported values for blue saturation. */ - VAProcFilterValueRange blue_range; - /** \brief Range of supported values for cyan saturation. */ - VAProcFilterValueRange cyan_range; - /** \brief Range of supported values for magenta saturation. */ - VAProcFilterValueRange magenta_range; - /** \brief Range of supported values for yellow saturation. */ - VAProcFilterValueRange yellow_range; + /** \brief Color to correct. */ + VAProcTotalColorCorrectionType type; + /** \brief Range of supported values for the specified color. */ + VAProcFilterValueRange range; } VAProcFilterCapTotalColorCorrection; /** \brief Capabilities specification for the Non-Linear Anamorphic Scaling filter. */ |