| Index: mojo/tools/roll/cc_strip_video.patch
|
| diff --git a/mojo/tools/roll/cc_strip_video.patch b/mojo/tools/roll/cc_strip_video.patch
|
| index 8098db6e458b406e98f2b36f8c605bca9e3561d2..4540a2a1ab736d422aaaf37210a69da767508b0d 100644
|
| --- a/mojo/tools/roll/cc_strip_video.patch
|
| +++ b/mojo/tools/roll/cc_strip_video.patch
|
| @@ -1,5 +1,5 @@
|
| diff --git a/cc/BUILD.gn b/cc/BUILD.gn
|
| -index 2ede4ac..eee115c 100644
|
| +index 41f99e2..d6fd028 100644
|
| --- a/cc/BUILD.gn
|
| +++ b/cc/BUILD.gn
|
| @@ -222,13 +222,6 @@ component("cc") {
|
| @@ -34,30 +34,30 @@ index 2ede4ac..eee115c 100644
|
| "test/failure_output_surface.cc",
|
| "test/failure_output_surface.h",
|
| "test/geometry_test_utils.cc",
|
| -@@ -782,7 +771,6 @@ test("cc_unittests") {
|
| - "layers/tiled_layer_unittest.cc",
|
| - "layers/ui_resource_layer_impl_unittest.cc",
|
| - "layers/ui_resource_layer_unittest.cc",
|
| -- "layers/video_layer_impl_unittest.cc",
|
| - "output/begin_frame_args_unittest.cc",
|
| - "output/delegating_renderer_unittest.cc",
|
| - "output/filter_operations_unittest.cc",
|
| -@@ -814,7 +802,6 @@ test("cc_unittests") {
|
| - "resources/texture_uploader_unittest.cc",
|
| - "resources/tile_manager_unittest.cc",
|
| - "resources/tile_priority_unittest.cc",
|
| -- "resources/video_resource_updater_unittest.cc",
|
| - "scheduler/begin_frame_source_unittest.cc",
|
| - "scheduler/delay_based_time_source_unittest.cc",
|
| - "scheduler/scheduler_state_machine_unittest.cc",
|
| -@@ -843,7 +830,6 @@ test("cc_unittests") {
|
| - "trees/layer_tree_host_unittest_picture.cc",
|
| - "trees/layer_tree_host_unittest_proxy.cc",
|
| - "trees/layer_tree_host_unittest_scroll.cc",
|
| -- "trees/layer_tree_host_unittest_video.cc",
|
| - "trees/layer_tree_impl_unittest.cc",
|
| - "trees/occlusion_tracker_unittest.cc",
|
| - "trees/occlusion_unittest.cc",
|
| +@@ -783,7 +772,6 @@ if (!is_win || link_chrome_on_windows) {
|
| + "layers/tiled_layer_unittest.cc",
|
| + "layers/ui_resource_layer_impl_unittest.cc",
|
| + "layers/ui_resource_layer_unittest.cc",
|
| +- "layers/video_layer_impl_unittest.cc",
|
| + "output/begin_frame_args_unittest.cc",
|
| + "output/delegating_renderer_unittest.cc",
|
| + "output/filter_operations_unittest.cc",
|
| +@@ -815,7 +803,6 @@ if (!is_win || link_chrome_on_windows) {
|
| + "resources/texture_uploader_unittest.cc",
|
| + "resources/tile_manager_unittest.cc",
|
| + "resources/tile_priority_unittest.cc",
|
| +- "resources/video_resource_updater_unittest.cc",
|
| + "scheduler/begin_frame_source_unittest.cc",
|
| + "scheduler/delay_based_time_source_unittest.cc",
|
| + "scheduler/scheduler_state_machine_unittest.cc",
|
| +@@ -844,7 +831,6 @@ if (!is_win || link_chrome_on_windows) {
|
| + "trees/layer_tree_host_unittest_picture.cc",
|
| + "trees/layer_tree_host_unittest_proxy.cc",
|
| + "trees/layer_tree_host_unittest_scroll.cc",
|
| +- "trees/layer_tree_host_unittest_video.cc",
|
| + "trees/layer_tree_impl_unittest.cc",
|
| + "trees/occlusion_tracker_unittest.cc",
|
| + "trees/occlusion_unittest.cc",
|
| diff --git a/cc/layers/video_frame_provider.h b/cc/layers/video_frame_provider.h
|
| deleted file mode 100644
|
| index 784d951..0000000
|
| @@ -128,10 +128,9 @@ index 784d951..0000000
|
| -
|
| -#endif // CC_LAYERS_VIDEO_FRAME_PROVIDER_H_
|
| diff --git a/cc/layers/video_frame_provider_client_impl.cc b/cc/layers/video_frame_provider_client_impl.cc
|
| -deleted file mode 100644
|
| -index 50333c1..0000000
|
| +index 2b12567..e69de29 100644
|
| --- a/cc/layers/video_frame_provider_client_impl.cc
|
| -+++ /dev/null
|
| ++++ b/cc/layers/video_frame_provider_client_impl.cc
|
| @@ -1,95 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| @@ -139,7 +138,7 @@ index 50333c1..0000000
|
| -
|
| -#include "cc/layers/video_frame_provider_client_impl.h"
|
| -
|
| --#include "base/debug/trace_event.h"
|
| +-#include "base/trace_event/trace_event.h"
|
| -#include "cc/base/math_util.h"
|
| -#include "cc/layers/video_layer_impl.h"
|
| -#include "media/base/video_frame.h"
|
| @@ -229,19 +228,19 @@ index 50333c1..0000000
|
| -
|
| -} // namespace cc
|
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
|
| -index 9c856e8..e40a4fc 100644
|
| +index 45d98b6..5a15efa 100644
|
| --- a/cc/output/gl_renderer.cc
|
| +++ b/cc/output/gl_renderer.cc
|
| @@ -13,7 +13,6 @@
|
| - #include "base/debug/trace_event.h"
|
| #include "base/logging.h"
|
| + #include "base/trace_event/trace_event.h"
|
| #include "cc/base/math_util.h"
|
| -#include "cc/layers/video_layer_impl.h"
|
| #include "cc/output/compositor_frame.h"
|
| #include "cc/output/compositor_frame_metadata.h"
|
| #include "cc/output/context_provider.h"
|
| diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc
|
| -index 08a4053..c7582fe 100644
|
| +index d503cc4..c7582fe 100644
|
| --- a/cc/output/renderer_pixeltest.cc
|
| +++ b/cc/output/renderer_pixeltest.cc
|
| @@ -12,7 +12,6 @@
|
| @@ -252,7 +251,7 @@ index 08a4053..c7582fe 100644
|
| #include "third_party/skia/include/core/SkColorPriv.h"
|
| #include "third_party/skia/include/core/SkImageFilter.h"
|
| #include "third_party/skia/include/core/SkMatrix.h"
|
| -@@ -386,346 +385,6 @@ TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithBackground) {
|
| +@@ -386,453 +385,6 @@ TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithBackground) {
|
| FuzzyPixelOffByOneComparator(true)));
|
| }
|
|
|
| @@ -293,8 +292,9 @@ index 08a4053..c7582fe 100644
|
| - v_row[j] = (v_value += 5);
|
| - }
|
| - }
|
| +- uint8 alpha_value = is_transparent ? 0 : 128;
|
| - CreateTestYUVVideoDrawQuad_FromVideoFrame(
|
| -- shared_state, video_frame, is_transparent, tex_coord_rect, render_pass);
|
| +- shared_state, video_frame, alpha_value, tex_coord_rect, render_pass);
|
| - }
|
| -
|
| - void CreateTestYUVVideoDrawQuad_Solid(const SharedQuadState* shared_state,
|
| @@ -326,14 +326,110 @@ index 08a4053..c7582fe 100644
|
| - video_frame->stride(media::VideoFrame::kVPlane) *
|
| - video_frame->rows(media::VideoFrame::kVPlane));
|
| -
|
| +- uint8 alpha_value = is_transparent ? 0 : 128;
|
| +- CreateTestYUVVideoDrawQuad_FromVideoFrame(
|
| +- shared_state, video_frame, alpha_value, tex_coord_rect, render_pass);
|
| +- }
|
| +-
|
| +- void CreateEdgeBleedPass(media::VideoFrame::Format format,
|
| +- RenderPassList* pass_list) {
|
| +- gfx::Rect rect(200, 200);
|
| +-
|
| +- RenderPassId id(1, 1);
|
| +- scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
|
| +-
|
| +- // Scale the video up so that bilinear filtering kicks in to sample more
|
| +- // than just nearest neighbor would.
|
| +- gfx::Transform scale_by_2;
|
| +- scale_by_2.Scale(2.f, 2.f);
|
| +- gfx::Rect half_rect(100, 100);
|
| +- SharedQuadState* shared_state =
|
| +- CreateTestSharedQuadState(scale_by_2, half_rect, pass.get());
|
| +-
|
| +- gfx::Size background_size(200, 200);
|
| +- gfx::Rect green_rect(16, 20, 100, 100);
|
| +- gfx::RectF tex_coord_rect(
|
| +- static_cast<float>(green_rect.x()) / background_size.width(),
|
| +- static_cast<float>(green_rect.y()) / background_size.height(),
|
| +- static_cast<float>(green_rect.width()) / background_size.width(),
|
| +- static_cast<float>(green_rect.height()) / background_size.height());
|
| +-
|
| +- // YUV of (149,43,21) should be green (0,255,0) in RGB.
|
| +- // Create a video frame that has a non-green background rect, with a
|
| +- // green sub-rectangle that should be the only thing displayed in
|
| +- // the final image. Bleeding will appear on all four sides of the video
|
| +- // if the tex coords are not clamped.
|
| +- CreateTestYUVVideoDrawQuad_TwoColor(shared_state, format, false,
|
| +- tex_coord_rect, background_size, 0, 0,
|
| +- 0, green_rect, 149, 43, 21, pass.get());
|
| +- pass_list->push_back(pass.Pass());
|
| +- }
|
| +-
|
| +- // Creates a video frame of size background_size filled with yuv_background,
|
| +- // and then draws a foreground rectangle in a different color on top of
|
| +- // that. The foreground rectangle must have coordinates that are divisible
|
| +- // by 2 because YUV is a block format.
|
| +- void CreateTestYUVVideoDrawQuad_TwoColor(const SharedQuadState* shared_state,
|
| +- media::VideoFrame::Format format,
|
| +- bool is_transparent,
|
| +- const gfx::RectF& tex_coord_rect,
|
| +- const gfx::Size& background_size,
|
| +- uint8 y_background,
|
| +- uint8 u_background,
|
| +- uint8 v_background,
|
| +- const gfx::Rect& foreground_rect,
|
| +- uint8 y_foreground,
|
| +- uint8 u_foreground,
|
| +- uint8 v_foreground,
|
| +- RenderPass* render_pass) {
|
| +- const gfx::Rect rect(background_size);
|
| +-
|
| +- scoped_refptr<media::VideoFrame> video_frame =
|
| +- media::VideoFrame::CreateFrame(format, background_size, foreground_rect,
|
| +- foreground_rect.size(),
|
| +- base::TimeDelta());
|
| +-
|
| +- int planes[] = {media::VideoFrame::kYPlane,
|
| +- media::VideoFrame::kUPlane,
|
| +- media::VideoFrame::kVPlane};
|
| +- uint8 yuv_background[] = {y_background, u_background, v_background};
|
| +- uint8 yuv_foreground[] = {y_foreground, u_foreground, v_foreground};
|
| +- int sample_size[] = {1, 2, 2};
|
| +-
|
| +- for (int i = 0; i < 3; ++i) {
|
| +- memset(video_frame->data(planes[i]), yuv_background[i],
|
| +- video_frame->stride(planes[i]) * video_frame->rows(planes[i]));
|
| +- }
|
| +-
|
| +- for (int i = 0; i < 3; ++i) {
|
| +- // Since yuv encoding uses block encoding, widths have to be divisible
|
| +- // by the sample size in order for this function to behave properly.
|
| +- DCHECK_EQ(foreground_rect.x() % sample_size[i], 0);
|
| +- DCHECK_EQ(foreground_rect.y() % sample_size[i], 0);
|
| +- DCHECK_EQ(foreground_rect.width() % sample_size[i], 0);
|
| +- DCHECK_EQ(foreground_rect.height() % sample_size[i], 0);
|
| +-
|
| +- gfx::Rect sample_rect(foreground_rect.x() / sample_size[i],
|
| +- foreground_rect.y() / sample_size[i],
|
| +- foreground_rect.width() / sample_size[i],
|
| +- foreground_rect.height() / sample_size[i]);
|
| +- for (int y = sample_rect.y(); y < sample_rect.bottom(); ++y) {
|
| +- for (int x = sample_rect.x(); x < sample_rect.right(); ++x) {
|
| +- size_t offset = y * video_frame->stride(planes[i]) + x;
|
| +- video_frame->data(planes[i])[offset] = yuv_foreground[i];
|
| +- }
|
| +- }
|
| +- }
|
| +-
|
| +- uint8 alpha_value = 255;
|
| - CreateTestYUVVideoDrawQuad_FromVideoFrame(
|
| -- shared_state, video_frame, is_transparent, tex_coord_rect, render_pass);
|
| +- shared_state, video_frame, alpha_value, tex_coord_rect, render_pass);
|
| - }
|
| -
|
| - void CreateTestYUVVideoDrawQuad_FromVideoFrame(
|
| - const SharedQuadState* shared_state,
|
| - scoped_refptr<media::VideoFrame> video_frame,
|
| -- bool is_transparent,
|
| +- uint8 alpha_value,
|
| - const gfx::RectF& tex_coord_rect,
|
| - RenderPass* render_pass) {
|
| - const bool with_alpha = (video_frame->format() == media::VideoFrame::YV12A);
|
| @@ -341,12 +437,11 @@ index 08a4053..c7582fe 100644
|
| - (video_frame->format() == media::VideoFrame::YV12J
|
| - ? YUVVideoDrawQuad::REC_601_JPEG
|
| - : YUVVideoDrawQuad::REC_601);
|
| -- const gfx::Rect rect(this->device_viewport_size_);
|
| +- const gfx::Rect rect(shared_state->content_bounds);
|
| - const gfx::Rect opaque_rect(0, 0, 0, 0);
|
| -
|
| - if (with_alpha)
|
| -- memset(video_frame->data(media::VideoFrame::kAPlane),
|
| -- is_transparent ? 0 : 128,
|
| +- memset(video_frame->data(media::VideoFrame::kAPlane), alpha_value,
|
| - video_frame->stride(media::VideoFrame::kAPlane) *
|
| - video_frame->rows(media::VideoFrame::kAPlane));
|
| -
|
| @@ -385,16 +480,9 @@ index 08a4053..c7582fe 100644
|
| -
|
| - YUVVideoDrawQuad* yuv_quad =
|
| - render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>();
|
| -- yuv_quad->SetNew(shared_state,
|
| -- rect,
|
| -- opaque_rect,
|
| -- rect,
|
| -- tex_coord_rect,
|
| -- y_resource,
|
| -- u_resource,
|
| -- v_resource,
|
| -- a_resource,
|
| -- color_space);
|
| +- yuv_quad->SetNew(shared_state, rect, opaque_rect, rect, tex_coord_rect,
|
| +- video_frame->coded_size(), y_resource, u_resource,
|
| +- v_resource, a_resource, color_space);
|
| - }
|
| -
|
| - void SetUp() override {
|
| @@ -512,6 +600,24 @@ index 08a4053..c7582fe 100644
|
| - FuzzyPixelOffByOneComparator(true)));
|
| -}
|
| -
|
| +-// Test that a YUV video doesn't bleed outside of its tex coords when the
|
| +-// tex coord rect is only a partial subrectangle of the coded contents.
|
| +-TEST_F(VideoGLRendererPixelTest, YUVEdgeBleed) {
|
| +- RenderPassList pass_list;
|
| +- CreateEdgeBleedPass(media::VideoFrame::YV12J, &pass_list);
|
| +- EXPECT_TRUE(this->RunPixelTest(&pass_list,
|
| +- base::FilePath(FILE_PATH_LITERAL("green.png")),
|
| +- FuzzyPixelOffByOneComparator(true)));
|
| +-}
|
| +-
|
| +-TEST_F(VideoGLRendererPixelTest, YUVAEdgeBleed) {
|
| +- RenderPassList pass_list;
|
| +- CreateEdgeBleedPass(media::VideoFrame::YV12A, &pass_list);
|
| +- EXPECT_TRUE(this->RunPixelTest(&pass_list,
|
| +- base::FilePath(FILE_PATH_LITERAL("green.png")),
|
| +- FuzzyPixelOffByOneComparator(true)));
|
| +-}
|
| +-
|
| -TEST_F(VideoGLRendererPixelTest, SimpleYUVJRectGrey) {
|
| - gfx::Rect rect(this->device_viewport_size_);
|
| -
|
| @@ -600,7 +706,7 @@ index 08a4053..c7582fe 100644
|
| gfx::Rect viewport_rect(this->device_viewport_size_);
|
|
|
| diff --git a/cc/quads/yuv_video_draw_quad.h b/cc/quads/yuv_video_draw_quad.h
|
| -index e1c5410..edda34a 100644
|
| +index 61f11a2..7ad0ba4 100644
|
| --- a/cc/quads/yuv_video_draw_quad.h
|
| +++ b/cc/quads/yuv_video_draw_quad.h
|
| @@ -8,7 +8,6 @@
|
| @@ -612,19 +718,19 @@ index e1c5410..edda34a 100644
|
|
|
| namespace cc {
|
| diff --git a/cc/resources/drawing_display_item.cc b/cc/resources/drawing_display_item.cc
|
| -index e5610ca..473cb77 100644
|
| +index 29cc2d3..351fade 100644
|
| --- a/cc/resources/drawing_display_item.cc
|
| +++ b/cc/resources/drawing_display_item.cc
|
| -@@ -4,6 +4,7 @@
|
| +@@ -6,6 +6,7 @@
|
|
|
| - #include "cc/resources/drawing_display_item.h"
|
| + #include <string>
|
|
|
| +#include "base/logging.h"
|
| - #include "third_party/skia/include/core/SkCanvas.h"
|
| - #include "third_party/skia/include/core/SkDrawPictureCallback.h"
|
| - #include "third_party/skia/include/core/SkMatrix.h"
|
| + #include "base/strings/stringprintf.h"
|
| + #include "base/trace_event/trace_event_argument.h"
|
| + #include "cc/debug/picture_debug_util.h"
|
| diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
|
| -index 6ac2f8c..7804f22 100644
|
| +index cb33686..b016fff 100644
|
| --- a/cc/trees/layer_tree_host_impl_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_impl_unittest.cc
|
| @@ -27,7 +27,6 @@
|
| @@ -667,7 +773,7 @@ index 6ac2f8c..7804f22 100644
|
| }
|
|
|
| LayerTreeSettings DefaultSettings() {
|
| -@@ -5308,18 +5303,6 @@ TEST_F(LayerTreeHostImplTest, LayersFreeTextures) {
|
| +@@ -5312,18 +5307,6 @@ TEST_F(LayerTreeHostImplTest, LayersFreeTextures) {
|
| root_layer->SetBounds(gfx::Size(10, 10));
|
| root_layer->SetHasRenderSurface(true);
|
|
|
| @@ -686,7 +792,7 @@ index 6ac2f8c..7804f22 100644
|
| scoped_ptr<IOSurfaceLayerImpl> io_surface_layer =
|
| IOSurfaceLayerImpl::Create(host_impl_->active_tree(), 5);
|
| io_surface_layer->SetBounds(gfx::Size(10, 10));
|
| -@@ -6399,16 +6382,6 @@ TEST_F(LayerTreeHostImplTest,
|
| +@@ -6403,16 +6386,6 @@ TEST_F(LayerTreeHostImplTest,
|
| scoped_ptr<SolidColorLayerImpl> root_layer =
|
| SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
|
|
|
| @@ -704,7 +810,7 @@ index 6ac2f8c..7804f22 100644
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
|
| diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
|
| -index 5299d70..1e10588 100644
|
| +index a3c37ed..d4bfb6e 100644
|
| --- a/cc/trees/layer_tree_host_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_unittest.cc
|
| @@ -18,7 +18,6 @@
|
| @@ -723,7 +829,7 @@ index 5299d70..1e10588 100644
|
| #include "cc/test/geometry_test_utils.h"
|
| #include "cc/test/impl_side_painting_settings.h"
|
| #include "cc/test/layer_tree_test.h"
|
| -@@ -4193,28 +4191,6 @@ class LayerInvalidateCausesDraw : public LayerTreeHostTest {
|
| +@@ -4200,28 +4198,6 @@ class LayerInvalidateCausesDraw : public LayerTreeHostTest {
|
| int num_draws_;
|
| };
|
|
|
| @@ -753,7 +859,7 @@ index 5299d70..1e10588 100644
|
| // to the compositor thread, even though no resources are updated in
|
| // response to that invalidation.
|
| diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc
|
| -index 681ae4e..cc4f28f 100644
|
| +index 56e52ad..fb0c9c8 100644
|
| --- a/cc/trees/layer_tree_host_unittest_context.cc
|
| +++ b/cc/trees/layer_tree_host_unittest_context.cc
|
| @@ -15,8 +15,6 @@
|
| @@ -791,7 +897,7 @@ index 681ae4e..cc4f28f 100644
|
| }
|
|
|
| void LoseContext() {
|
| -@@ -1041,43 +1034,6 @@ class LayerTreeHostContextTestDontUseLostResources
|
| +@@ -1057,43 +1050,6 @@ class LayerTreeHostContextTestDontUseLostResources
|
| layer_with_mask->SetMaskLayer(mask.get());
|
| root->AddChild(layer_with_mask);
|
|
|
| @@ -835,7 +941,7 @@ index 681ae4e..cc4f28f 100644
|
| if (!delegating_renderer()) {
|
| // TODO(danakj): IOSurface layer can not be transported. crbug.com/239335
|
| scoped_refptr<IOSurfaceLayer> io_surface = IOSurfaceLayer::Create();
|
| -@@ -1107,14 +1063,6 @@ class LayerTreeHostContextTestDontUseLostResources
|
| +@@ -1123,14 +1079,6 @@ class LayerTreeHostContextTestDontUseLostResources
|
|
|
| void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override {
|
| LayerTreeHostContextTest::CommitCompleteOnThread(host_impl);
|
| @@ -850,7 +956,7 @@ index 681ae4e..cc4f28f 100644
|
| }
|
|
|
| DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
|
| -@@ -1163,14 +1111,6 @@ class LayerTreeHostContextTestDontUseLostResources
|
| +@@ -1179,14 +1127,6 @@ class LayerTreeHostContextTestDontUseLostResources
|
| scoped_refptr<DelegatedFrameResourceCollection>
|
| delegated_resource_collection_;
|
| scoped_refptr<DelegatedFrameProvider> delegated_frame_provider_;
|
|
|