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

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

Issue 2173563002: Improve GL shader YUV adjustment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use enum hack Created 4 years, 4 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "cc/output/gl_renderer.h" 10 #include "cc/output/gl_renderer.h"
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 tex_coord_rect.y() * ya_tex_size.height(), 261 tex_coord_rect.y() * ya_tex_size.height(),
262 tex_coord_rect.width() * ya_tex_size.width(), 262 tex_coord_rect.width() * ya_tex_size.width(),
263 tex_coord_rect.height() * ya_tex_size.height()); 263 tex_coord_rect.height() * ya_tex_size.height());
264 gfx::RectF uv_tex_coord_rect(tex_coord_rect.x() * uv_tex_size.width(), 264 gfx::RectF uv_tex_coord_rect(tex_coord_rect.x() * uv_tex_size.width(),
265 tex_coord_rect.y() * uv_tex_size.height(), 265 tex_coord_rect.y() * uv_tex_size.height(),
266 tex_coord_rect.width() * uv_tex_size.width(), 266 tex_coord_rect.width() * uv_tex_size.width(),
267 tex_coord_rect.height() * uv_tex_size.height()); 267 tex_coord_rect.height() * uv_tex_size.height());
268 268
269 YUVVideoDrawQuad* yuv_quad = 269 YUVVideoDrawQuad* yuv_quad =
270 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); 270 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>();
271 uint32_t bits_per_channel = 8;
272 if (video_frame->format() == media::PIXEL_FORMAT_YUV420P10 ||
273 video_frame->format() == media::PIXEL_FORMAT_YUV422P10 ||
274 video_frame->format() == media::PIXEL_FORMAT_YUV444P10) {
275 bits_per_channel = 10;
276 }
277
271 yuv_quad->SetNew(shared_state, rect, opaque_rect, visible_rect, 278 yuv_quad->SetNew(shared_state, rect, opaque_rect, visible_rect,
272 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, 279 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size,
273 uv_tex_size, y_resource, u_resource, v_resource, a_resource, 280 uv_tex_size, y_resource, u_resource, v_resource, a_resource,
274 color_space, 0.0f, 1.0f); 281 color_space, 0.0f, 1.0f, bits_per_channel);
275 } 282 }
276 283
277 // Upshift video frame to 10 bit. 284 // Upshift video frame to 10 bit.
278 scoped_refptr<media::VideoFrame> CreateHighbitVideoFrame( 285 scoped_refptr<media::VideoFrame> CreateHighbitVideoFrame(
279 media::VideoFrame* video_frame) { 286 media::VideoFrame* video_frame) {
280 media::VideoPixelFormat format; 287 media::VideoPixelFormat format;
281 switch (video_frame->format()) { 288 switch (video_frame->format()) {
282 case media::PIXEL_FORMAT_I420: 289 case media::PIXEL_FORMAT_I420:
283 case media::PIXEL_FORMAT_YV12: 290 case media::PIXEL_FORMAT_YV12:
284 format = media::PIXEL_FORMAT_YUV420P10; 291 format = media::PIXEL_FORMAT_YUV420P10;
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 gfx::RectF uv_tex_coord_rect(tex_coord_rect.x() * uv_tex_size.width(), 525 gfx::RectF uv_tex_coord_rect(tex_coord_rect.x() * uv_tex_size.width(),
519 tex_coord_rect.y() * uv_tex_size.height(), 526 tex_coord_rect.y() * uv_tex_size.height(),
520 tex_coord_rect.width() * uv_tex_size.width(), 527 tex_coord_rect.width() * uv_tex_size.width(),
521 tex_coord_rect.height() * uv_tex_size.height()); 528 tex_coord_rect.height() * uv_tex_size.height());
522 529
523 YUVVideoDrawQuad* yuv_quad = 530 YUVVideoDrawQuad* yuv_quad =
524 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); 531 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>();
525 yuv_quad->SetNew(shared_state, rect, opaque_rect, visible_rect, 532 yuv_quad->SetNew(shared_state, rect, opaque_rect, visible_rect,
526 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, 533 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size,
527 uv_tex_size, y_resource, u_resource, v_resource, a_resource, 534 uv_tex_size, y_resource, u_resource, v_resource, a_resource,
528 color_space, 0.0f, 1.0f); 535 color_space, 0.0f, 1.0f, 8);
529 } 536 }
530 537
531 typedef ::testing::Types<GLRenderer, 538 typedef ::testing::Types<GLRenderer,
532 SoftwareRenderer, 539 SoftwareRenderer,
533 GLRendererWithExpandedViewport, 540 GLRendererWithExpandedViewport,
534 SoftwareRendererWithExpandedViewport> RendererTypes; 541 SoftwareRendererWithExpandedViewport> RendererTypes;
535 TYPED_TEST_CASE(RendererPixelTest, RendererTypes); 542 TYPED_TEST_CASE(RendererPixelTest, RendererTypes);
536 543
537 template <typename RendererType> 544 template <typename RendererType>
538 class SoftwareRendererPixelTest : public RendererPixelTest<RendererType> {}; 545 class SoftwareRendererPixelTest : public RendererPixelTest<RendererType> {};
(...skipping 2635 matching lines...) Expand 10 before | Expand all | Expand 10 after
3174 3181
3175 EXPECT_TRUE(this->RunPixelTest( 3182 EXPECT_TRUE(this->RunPixelTest(
3176 &pass_list, base::FilePath(FILE_PATH_LITERAL("spiral.png")), 3183 &pass_list, base::FilePath(FILE_PATH_LITERAL("spiral.png")),
3177 FuzzyPixelOffByOneComparator(true))); 3184 FuzzyPixelOffByOneComparator(true)));
3178 } 3185 }
3179 3186
3180 #endif // !defined(OS_ANDROID) 3187 #endif // !defined(OS_ANDROID)
3181 3188
3182 } // namespace 3189 } // namespace
3183 } // namespace cc 3190 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698