Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(493)

Side by Side Diff: cc/output/renderer_pixeltest.cc

Issue 1008493002: Increase YUV video clamping (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: individual ya and uv texture size Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "cc/layers/append_quads_data.h" 6 #include "cc/layers/append_quads_data.h"
7 #include "cc/output/gl_renderer.h" 7 #include "cc/output/gl_renderer.h"
8 #include "cc/quads/draw_quad.h" 8 #include "cc/quads/draw_quad.h"
9 #include "cc/quads/picture_draw_quad.h" 9 #include "cc/quads/picture_draw_quad.h"
10 #include "cc/quads/texture_draw_quad.h" 10 #include "cc/quads/texture_draw_quad.h"
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 SingleReleaseCallbackImpl::Create( 240 SingleReleaseCallbackImpl::Create(
241 resources.release_callbacks[media::VideoFrame::kVPlane])); 241 resources.release_callbacks[media::VideoFrame::kVPlane]));
242 ResourceProvider::ResourceId a_resource = 0; 242 ResourceProvider::ResourceId a_resource = 0;
243 if (with_alpha) { 243 if (with_alpha) {
244 a_resource = resource_provider->CreateResourceFromTextureMailbox( 244 a_resource = resource_provider->CreateResourceFromTextureMailbox(
245 resources.mailboxes[media::VideoFrame::kAPlane], 245 resources.mailboxes[media::VideoFrame::kAPlane],
246 SingleReleaseCallbackImpl::Create( 246 SingleReleaseCallbackImpl::Create(
247 resources.release_callbacks[media::VideoFrame::kAPlane])); 247 resources.release_callbacks[media::VideoFrame::kAPlane]));
248 } 248 }
249 249
250 const gfx::Size ya_tex_size = video_frame->coded_size();
251 const gfx::Size uv_tex_size = media::VideoFrame::PlaneSize(
252 video_frame->format(), media::VideoFrame::kUPlane,
253 video_frame->coded_size());
254 DCHECK(uv_tex_size == media::VideoFrame::PlaneSize(
255 video_frame->format(), media::VideoFrame::kVPlane,
256 video_frame->coded_size()));
257 if (with_alpha) {
258 DCHECK(ya_tex_size == media::VideoFrame::PlaneSize(
enne (OOO) 2015/03/18 19:25:57 DCHECK_EQ
259 video_frame->format(), media::VideoFrame::kAPlane,
260 video_frame->coded_size()));
261 }
262
250 YUVVideoDrawQuad* yuv_quad = 263 YUVVideoDrawQuad* yuv_quad =
251 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); 264 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>();
252 yuv_quad->SetNew(shared_state, rect, opaque_rect, rect, tex_coord_rect, 265 yuv_quad->SetNew(shared_state, rect, opaque_rect, rect, tex_coord_rect,
253 video_frame->coded_size(), y_resource, u_resource, 266 ya_tex_size, uv_tex_size, y_resource, u_resource, v_resource,
254 v_resource, a_resource, color_space); 267 a_resource, color_space);
255 } 268 }
256 269
257 void CreateTestYUVVideoDrawQuad_Striped( 270 void CreateTestYUVVideoDrawQuad_Striped(
258 const SharedQuadState* shared_state, 271 const SharedQuadState* shared_state,
259 media::VideoFrame::Format format, 272 media::VideoFrame::Format format,
260 bool is_transparent, 273 bool is_transparent,
261 const gfx::RectF& tex_coord_rect, 274 const gfx::RectF& tex_coord_rect,
262 RenderPass* render_pass, 275 RenderPass* render_pass,
263 VideoResourceUpdater* video_resource_updater, 276 VideoResourceUpdater* video_resource_updater,
264 const gfx::Rect& rect, 277 const gfx::Rect& rect,
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 static_cast<float>(green_rect.y()) / background_size.height(), 939 static_cast<float>(green_rect.y()) / background_size.height(),
927 static_cast<float>(green_rect.width()) / background_size.width(), 940 static_cast<float>(green_rect.width()) / background_size.width(),
928 static_cast<float>(green_rect.height()) / background_size.height()); 941 static_cast<float>(green_rect.height()) / background_size.height());
929 942
930 // YUV of (149,43,21) should be green (0,255,0) in RGB. 943 // YUV of (149,43,21) should be green (0,255,0) in RGB.
931 // Create a video frame that has a non-green background rect, with a 944 // Create a video frame that has a non-green background rect, with a
932 // green sub-rectangle that should be the only thing displayed in 945 // green sub-rectangle that should be the only thing displayed in
933 // the final image. Bleeding will appear on all four sides of the video 946 // the final image. Bleeding will appear on all four sides of the video
934 // if the tex coords are not clamped. 947 // if the tex coords are not clamped.
935 CreateTestYUVVideoDrawQuad_TwoColor( 948 CreateTestYUVVideoDrawQuad_TwoColor(
936 shared_state, format, false, tex_coord_rect, background_size, 0, 0, 0, 949 shared_state, format, false, tex_coord_rect, background_size, 128, 128,
937 green_rect, 149, 43, 21, pass.get(), video_resource_updater_.get(), 950 128, green_rect, 149, 43, 21, pass.get(), video_resource_updater_.get(),
938 resource_provider_.get()); 951 resource_provider_.get());
939 pass_list->push_back(pass.Pass()); 952 pass_list->push_back(pass.Pass());
940 } 953 }
941 954
942 void SetUp() override { 955 void SetUp() override {
943 GLRendererPixelTest::SetUp(); 956 GLRendererPixelTest::SetUp();
944 video_resource_updater_.reset(new VideoResourceUpdater( 957 video_resource_updater_.reset(new VideoResourceUpdater(
945 output_surface_->context_provider(), resource_provider_.get())); 958 output_surface_->context_provider(), resource_provider_.get()));
946 } 959 }
947 960
(...skipping 1949 matching lines...) Expand 10 before | Expand all | Expand 10 after
2897 ? FILE_PATH_LITERAL("four_blue_green_checkers.png") 2910 ? FILE_PATH_LITERAL("four_blue_green_checkers.png")
2898 : FILE_PATH_LITERAL("checkers_big.png"); 2911 : FILE_PATH_LITERAL("checkers_big.png");
2899 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(path), 2912 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(path),
2900 ExactPixelComparator(true))); 2913 ExactPixelComparator(true)));
2901 } 2914 }
2902 2915
2903 #endif // !defined(OS_ANDROID) 2916 #endif // !defined(OS_ANDROID)
2904 2917
2905 } // namespace 2918 } // namespace
2906 } // namespace cc 2919 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698