| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |