diff options
author | rileya <rileya@chromium.org> | 2015-07-20 15:00:03 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-20 15:00:03 -0700 |
commit | 134003902de13ade7795c5145a59b1e77770f2de (patch) | |
tree | 4ba461802aba2f1732b7aaebd42669b26d924dcb /src | |
parent | 6531c3619f08cc83aad34883c5f00f6a358c9fad (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.cpp | 9 |
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}; } ////////////////////////////////////////////////////////////////////////////// |