summaryrefslogtreecommitdiffstats
path: root/cc/quads
diff options
context:
space:
mode:
authorpdr <pdr@chromium.org>2015-03-13 21:25:43 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-14 04:26:17 +0000
commit9764be34e6e97a05a0bff5a4448a5ac56e735b85 (patch)
treeb9169dab7f8cf2eb90c9b5fbff8e91bc01172646 /cc/quads
parentd0d6442a16be07ae455682f7e1e207a35a80995b (diff)
downloadchromium_src-9764be34e6e97a05a0bff5a4448a5ac56e735b85.zip
chromium_src-9764be34e6e97a05a0bff5a4448a5ac56e735b85.tar.gz
chromium_src-9764be34e6e97a05a0bff5a4448a5ac56e735b85.tar.bz2
Revert of Increase YUV video clamping (patchset #4 id:60001 of https://codereview.chromium.org/1008493002/)
Reason for revert: I think this patch caused blink layouttest failures (e.g., media/video-colorspace-yuv420.html). See http://crbug.com/467283 Original issue's description: > Increase YUV video clamping > > The current clamping is not enough to avoid bleeding issues. This is > exposed when changing the background color in CreateEdgeBleedPass from > black to gray. The reason it works now is because interpolating U/V > textures from black (YUV = 0, 0, 0) to green (YUV = 149, 43, 21) will > still result in saturated green pixels (RGB = 0, 255, 0). All YUV values > in the range (149, 0-43, 0-21) will end up as RGB = (0, 255, 0). > > The current clamping is not enough, because the calculation > '0.5f / quad->tex_size.width()' is using the Y texture size, the highest > resolution plane, but the U/V texture size is only half of that. This CL > changes tex_size to represent the lowest resolution texture instead. > > BUG=429640 > > Committed: https://crrev.com/4be817dd606efdba1614d32608ddd6e16bfa687d > Cr-Commit-Position: refs/heads/master@{#320567} TBR=enne@chromium.org,danakj@chromium.org,wfh@chromium.org,magjed@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=429640,467283 Review URL: https://codereview.chromium.org/1007953003 Cr-Commit-Position: refs/heads/master@{#320642}
Diffstat (limited to 'cc/quads')
-rw-r--r--cc/quads/draw_quad_unittest.cc14
-rw-r--r--cc/quads/yuv_video_draw_quad.cc10
-rw-r--r--cc/quads/yuv_video_draw_quad.h6
3 files changed, 15 insertions, 15 deletions
diff --git a/cc/quads/draw_quad_unittest.cc b/cc/quads/draw_quad_unittest.cc
index d60795d..5b5f0b9 100644
--- a/cc/quads/draw_quad_unittest.cc
+++ b/cc/quads/draw_quad_unittest.cc
@@ -641,7 +641,7 @@ TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
gfx::Rect visible_rect(40, 50, 30, 20);
gfx::RectF tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f);
- gfx::Size min_tex_size(32, 68);
+ gfx::Size tex_size(32, 68);
ResourceProvider::ResourceId y_plane_resource_id = 45;
ResourceProvider::ResourceId u_plane_resource_id = 532;
ResourceProvider::ResourceId v_plane_resource_id = 4;
@@ -650,25 +650,25 @@ TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
CREATE_SHARED_STATE();
CREATE_QUAD_9_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, tex_coord_rect,
- min_tex_size, y_plane_resource_id, u_plane_resource_id,
+ tex_size, y_plane_resource_id, u_plane_resource_id,
v_plane_resource_id, a_plane_resource_id, color_space);
EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
EXPECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
- EXPECT_EQ(min_tex_size, copy_quad->min_tex_size);
+ EXPECT_EQ(tex_size, copy_quad->tex_size);
EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id);
EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id);
EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id);
EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id);
EXPECT_EQ(color_space, copy_quad->color_space);
- CREATE_QUAD_7_ALL(YUVVideoDrawQuad, tex_coord_rect, min_tex_size,
+ CREATE_QUAD_7_ALL(YUVVideoDrawQuad, tex_coord_rect, tex_size,
y_plane_resource_id, u_plane_resource_id,
v_plane_resource_id, a_plane_resource_id, color_space);
EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
- EXPECT_EQ(min_tex_size, copy_quad->min_tex_size);
+ EXPECT_EQ(tex_size, copy_quad->tex_size);
EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id);
EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id);
EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id);
@@ -898,7 +898,7 @@ TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
gfx::Rect visible_rect(40, 50, 30, 20);
gfx::RectF tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f);
- gfx::Size min_tex_size(32, 68);
+ gfx::Size tex_size(32, 68);
ResourceProvider::ResourceId y_plane_resource_id = 45;
ResourceProvider::ResourceId u_plane_resource_id = 532;
ResourceProvider::ResourceId v_plane_resource_id = 4;
@@ -907,7 +907,7 @@ TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) {
CREATE_SHARED_STATE();
CREATE_QUAD_9_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, tex_coord_rect,
- min_tex_size, y_plane_resource_id, u_plane_resource_id,
+ tex_size, y_plane_resource_id, u_plane_resource_id,
v_plane_resource_id, a_plane_resource_id, color_space);
EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
EXPECT_EQ(y_plane_resource_id, quad_new->y_plane_resource_id);
diff --git a/cc/quads/yuv_video_draw_quad.cc b/cc/quads/yuv_video_draw_quad.cc
index 8667467..1d0e2f3 100644
--- a/cc/quads/yuv_video_draw_quad.cc
+++ b/cc/quads/yuv_video_draw_quad.cc
@@ -23,7 +23,7 @@ void YUVVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& opaque_rect,
const gfx::Rect& visible_rect,
const gfx::RectF& tex_coord_rect,
- const gfx::Size& min_tex_size,
+ const gfx::Size& tex_size,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
unsigned v_plane_resource_id,
@@ -33,7 +33,7 @@ void YUVVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
DrawQuad::SetAll(shared_quad_state, DrawQuad::YUV_VIDEO_CONTENT, rect,
opaque_rect, visible_rect, needs_blending);
this->tex_coord_rect = tex_coord_rect;
- this->min_tex_size = min_tex_size;
+ this->tex_size = tex_size;
this->y_plane_resource_id = y_plane_resource_id;
this->u_plane_resource_id = u_plane_resource_id;
this->v_plane_resource_id = v_plane_resource_id;
@@ -47,7 +47,7 @@ void YUVVideoDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
const gfx::Rect& visible_rect,
bool needs_blending,
const gfx::RectF& tex_coord_rect,
- const gfx::Size& min_tex_size,
+ const gfx::Size& tex_size,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
unsigned v_plane_resource_id,
@@ -56,7 +56,7 @@ void YUVVideoDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
DrawQuad::SetAll(shared_quad_state, DrawQuad::YUV_VIDEO_CONTENT, rect,
opaque_rect, visible_rect, needs_blending);
this->tex_coord_rect = tex_coord_rect;
- this->min_tex_size = min_tex_size;
+ this->tex_size = tex_size;
this->y_plane_resource_id = y_plane_resource_id;
this->u_plane_resource_id = u_plane_resource_id;
this->v_plane_resource_id = v_plane_resource_id;
@@ -82,7 +82,7 @@ const YUVVideoDrawQuad* YUVVideoDrawQuad::MaterialCast(
void YUVVideoDrawQuad::ExtendValue(
base::trace_event::TracedValue* value) const {
MathUtil::AddToTracedValue("tex_coord_rect", tex_coord_rect, value);
- MathUtil::AddToTracedValue("min_tex_size", min_tex_size, value);
+ MathUtil::AddToTracedValue("tex_size", tex_size, value);
value->SetInteger("y_plane_resource_id", y_plane_resource_id);
value->SetInteger("u_plane_resource_id", u_plane_resource_id);
value->SetInteger("v_plane_resource_id", v_plane_resource_id);
diff --git a/cc/quads/yuv_video_draw_quad.h b/cc/quads/yuv_video_draw_quad.h
index abb93ae..358929e 100644
--- a/cc/quads/yuv_video_draw_quad.h
+++ b/cc/quads/yuv_video_draw_quad.h
@@ -31,7 +31,7 @@ class CC_EXPORT YUVVideoDrawQuad : public DrawQuad {
const gfx::Rect& opaque_rect,
const gfx::Rect& visible_rect,
const gfx::RectF& tex_coord_rect,
- const gfx::Size& min_tex_size,
+ const gfx::Size& tex_size,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
unsigned v_plane_resource_id,
@@ -44,7 +44,7 @@ class CC_EXPORT YUVVideoDrawQuad : public DrawQuad {
const gfx::Rect& visible_rect,
bool needs_blending,
const gfx::RectF& tex_coord_rect,
- const gfx::Size& min_tex_size,
+ const gfx::Size& tex_size,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
unsigned v_plane_resource_id,
@@ -53,7 +53,7 @@ class CC_EXPORT YUVVideoDrawQuad : public DrawQuad {
gfx::RectF tex_coord_rect;
// Empty texture size implies no clamping of texture coordinates.
- gfx::Size min_tex_size;
+ gfx::Size tex_size;
unsigned y_plane_resource_id;
unsigned u_plane_resource_id;
unsigned v_plane_resource_id;