From c9c6eec1c6650623f1be412dc2acd935de6b728b Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Mon, 31 Oct 2011 10:23:03 +0100 Subject: state_trackers/vdpau: Implement VdpGenerateCSCMatrix With the smpte240 profile, which was missing. Signed-off-by: Maarten Lankhorst --- src/gallium/auxiliary/vl/vl_csc.c | 19 +++++++++++++++++++ src/gallium/auxiliary/vl/vl_csc.h | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/gallium/auxiliary/vl') diff --git a/src/gallium/auxiliary/vl/vl_csc.c b/src/gallium/auxiliary/vl/vl_csc.c index 21da95f3ceb..56e662157ef 100644 --- a/src/gallium/auxiliary/vl/vl_csc.c +++ b/src/gallium/auxiliary/vl/vl_csc.c @@ -147,6 +147,22 @@ static const float bt_709_full[16] = 0.0f, 0.0f, 0.0f, 1.0f }; +static const float smpte240m[16] = +{ + 1.0f, 0.0f, 1.582f, 0.0f, + 1.0f, -0.228f, -0.478f, 0.0f, + 1.0f, 1.833f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f +}; + +static const float smpte240m_full[16] = +{ + 1.164f, 0.0f, 1.794f, 0.0f, + 1.164f, -0.258f, -0.543f, 0.0f, + 1.164f, 2.079f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f +}; + static const float identity[16] = { 1.0f, 0.0f, 0.0f, 0.0f, @@ -188,6 +204,9 @@ void vl_csc_get_matrix(enum VL_CSC_COLOR_STANDARD cs, case VL_CSC_COLOR_STANDARD_BT_709: cstd = full_range ? &bt_709_full[0] : &bt_709[0]; break; + case VL_CSC_COLOR_STANDARD_SMPTE_240M: + cstd = full_range ? &smpte240m_full[0] : &smpte240m[0]; + break; case VL_CSC_COLOR_STANDARD_IDENTITY: default: assert(cs == VL_CSC_COLOR_STANDARD_IDENTITY); diff --git a/src/gallium/auxiliary/vl/vl_csc.h b/src/gallium/auxiliary/vl/vl_csc.h index a6fb1fdba51..7a31dd4eb26 100644 --- a/src/gallium/auxiliary/vl/vl_csc.h +++ b/src/gallium/auxiliary/vl/vl_csc.h @@ -42,7 +42,8 @@ enum VL_CSC_COLOR_STANDARD { VL_CSC_COLOR_STANDARD_IDENTITY, VL_CSC_COLOR_STANDARD_BT_601, - VL_CSC_COLOR_STANDARD_BT_709 + VL_CSC_COLOR_STANDARD_BT_709, + VL_CSC_COLOR_STANDARD_SMPTE_240M }; extern const struct vl_procamp vl_default_procamp; -- cgit v1.2.3