aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar rileya <rileya@chromium.org>2015-07-20 15:00:03 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-07-20 15:00:03 -0700
commit134003902de13ade7795c5145a59b1e77770f2de (patch)
tree4ba461802aba2f1732b7aaebd42669b26d924dcb /src
parent6531c3619f08cc83aad34883c5f00f6a358c9fad (diff)
Add Rec709 YUV color space support to GrYUVtoRGBEffect.
This change is motivated by a recent switch in how chromium handles <video> color spaces, making rec709 more commonly used. This will allow video -> canvas copies to take the fast GPU path when we're using 709, just as we do with 601 and jpeg. Chromium-side change: https://codereview.chromium.org/1236313002 Review URL: https://codereview.chromium.org/1241723005
Diffstat (limited to 'src')
-rw-r--r--src/gpu/effects/GrYUVtoRGBEffect.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.cpp b/src/gpu/effects/GrYUVtoRGBEffect.cpp
index a46cb92077..dd1b48082c 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.cpp
+++ b/src/gpu/effects/GrYUVtoRGBEffect.cpp
@@ -54,6 +54,7 @@ public:
public:
static const GrGLfloat kJPEGConversionMatrix[16];
static const GrGLfloat kRec601ConversionMatrix[16];
+ static const GrGLfloat kRec709ConversionMatrix[16];
// this class always generates the same code.
static void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessorKeyBuilder*) {}
@@ -91,6 +92,9 @@ public:
case kRec601_SkYUVColorSpace:
pdman.setMatrix4f(fMatrixUni, kRec601ConversionMatrix);
break;
+ case kRec709_SkYUVColorSpace:
+ pdman.setMatrix4f(fMatrixUni, kRec709ConversionMatrix);
+ break;
}
}
@@ -161,6 +165,11 @@ const GrGLfloat YUVtoRGBEffect::GLProcessor::kRec601ConversionMatrix[16] = {
1.164f, -0.391f, -0.813f, 0.52925f,
1.164f, 2.018f, 0.0f, -1.08175f,
0.0f, 0.0f, 0.0f, 1.0};
+const GrGLfloat YUVtoRGBEffect::GLProcessor::kRec709ConversionMatrix[16] = {
+ 1.164f, 0.0f, 1.793f, -0.96925f,
+ 1.164f, -0.213f, -0.533f, 0.30025f,
+ 1.164f, 2.112f, 0.0f, -1.12875f,
+ 0.0f, 0.0f, 0.0f, 1.0f};
}
//////////////////////////////////////////////////////////////////////////////