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

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

Issue 92703003: Support videos with JPEG color range in GPU YUV convert path. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@yuv_v2
Patch Set: Add missing 'f' to float literal to make VS happy Created 6 years, 7 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
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/quads/draw_quad_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 pass_list.push_back(pass.Pass()); 391 pass_list.push_back(pass.Pass());
392 392
393 EXPECT_TRUE(this->RunPixelTest( 393 EXPECT_TRUE(this->RunPixelTest(
394 &pass_list, 394 &pass_list,
395 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")), 395 base::FilePath(FILE_PATH_LITERAL("green_alpha.png")),
396 FuzzyPixelOffByOneComparator(true))); 396 FuzzyPixelOffByOneComparator(true)));
397 } 397 }
398 398
399 class VideoGLRendererPixelTest : public GLRendererPixelTest { 399 class VideoGLRendererPixelTest : public GLRendererPixelTest {
400 protected: 400 protected:
401 scoped_ptr<YUVVideoDrawQuad> CreateTestYUVVideoDrawQuad( 401 scoped_ptr<YUVVideoDrawQuad> CreateTestYUVVideoDrawQuad_Striped(
402 SharedQuadState* shared_state, 402 SharedQuadState* shared_state,
403 media::VideoFrame::Format format, 403 media::VideoFrame::Format format,
404 bool is_transparent, 404 bool is_transparent,
405 const gfx::RectF& tex_coord_rect) { 405 const gfx::RectF& tex_coord_rect) {
406 const bool with_alpha = (format == media::VideoFrame::YV12A);
407 const gfx::Rect rect(this->device_viewport_size_); 406 const gfx::Rect rect(this->device_viewport_size_);
408 const gfx::Rect opaque_rect(0, 0, 0, 0);
409 407
410 scoped_refptr<media::VideoFrame> video_frame = 408 scoped_refptr<media::VideoFrame> video_frame =
411 media::VideoFrame::CreateFrame( 409 media::VideoFrame::CreateFrame(
412 format, rect.size(), rect, rect.size(), base::TimeDelta()); 410 format, rect.size(), rect, rect.size(), base::TimeDelta());
413 411
414 // YUV values representing a striped pattern, for validating texture 412 // YUV values representing a striped pattern, for validating texture
415 // coordinates for sampling. 413 // coordinates for sampling.
416 uint8_t y_value = 0; 414 uint8_t y_value = 0;
417 uint8_t u_value = 0; 415 uint8_t u_value = 0;
418 uint8_t v_value = 0; 416 uint8_t v_value = 0;
419 for (int i = 0; i < video_frame->rows(media::VideoFrame::kYPlane); ++i) { 417 for (int i = 0; i < video_frame->rows(media::VideoFrame::kYPlane); ++i) {
420 uint8_t* y_row = video_frame->data(media::VideoFrame::kYPlane) + 418 uint8_t* y_row = video_frame->data(media::VideoFrame::kYPlane) +
421 video_frame->stride(media::VideoFrame::kYPlane) * i; 419 video_frame->stride(media::VideoFrame::kYPlane) * i;
422 for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kYPlane); 420 for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kYPlane);
423 ++j) { 421 ++j) {
424 y_row[j] = (y_value += 1); 422 y_row[j] = (y_value += 1);
425 } 423 }
426 } 424 }
427 for (int i = 0; i < video_frame->rows(media::VideoFrame::kUPlane); ++i) { 425 for (int i = 0; i < video_frame->rows(media::VideoFrame::kUPlane); ++i) {
428 uint8_t* u_row = video_frame->data(media::VideoFrame::kUPlane) + 426 uint8_t* u_row = video_frame->data(media::VideoFrame::kUPlane) +
429 video_frame->stride(media::VideoFrame::kUPlane) * i; 427 video_frame->stride(media::VideoFrame::kUPlane) * i;
430 uint8_t* v_row = video_frame->data(media::VideoFrame::kVPlane) + 428 uint8_t* v_row = video_frame->data(media::VideoFrame::kVPlane) +
431 video_frame->stride(media::VideoFrame::kVPlane) * i; 429 video_frame->stride(media::VideoFrame::kVPlane) * i;
432 for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kUPlane); 430 for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kUPlane);
433 ++j) { 431 ++j) {
434 u_row[j] = (u_value += 3); 432 u_row[j] = (u_value += 3);
435 v_row[j] = (v_value += 5); 433 v_row[j] = (v_value += 5);
436 } 434 }
437 } 435 }
436 return CreateTestYUVVideoDrawQuad_FromVideoFrame(
437 shared_state, video_frame, is_transparent, tex_coord_rect);
438 }
439
440 scoped_ptr<YUVVideoDrawQuad> CreateTestYUVVideoDrawQuad_Solid(
441 SharedQuadState* shared_state,
442 media::VideoFrame::Format format,
443 bool is_transparent,
444 const gfx::RectF& tex_coord_rect,
445 uint8 y,
446 uint8 u,
447 uint8 v) {
448 const gfx::Rect rect(this->device_viewport_size_);
449
450 scoped_refptr<media::VideoFrame> video_frame =
451 media::VideoFrame::CreateFrame(
452 format, rect.size(), rect, rect.size(), base::TimeDelta());
453
454 // YUV values of a solid, constant, color. Useful for testing that color
455 // space/color range are being handled properly.
456 memset(video_frame->data(media::VideoFrame::kYPlane),
457 y,
458 video_frame->stride(media::VideoFrame::kYPlane) *
459 video_frame->rows(media::VideoFrame::kYPlane));
460 memset(video_frame->data(media::VideoFrame::kUPlane),
461 u,
462 video_frame->stride(media::VideoFrame::kUPlane) *
463 video_frame->rows(media::VideoFrame::kUPlane));
464 memset(video_frame->data(media::VideoFrame::kVPlane),
465 v,
466 video_frame->stride(media::VideoFrame::kVPlane) *
467 video_frame->rows(media::VideoFrame::kVPlane));
468
469 return CreateTestYUVVideoDrawQuad_FromVideoFrame(
470 shared_state, video_frame, is_transparent, tex_coord_rect);
471 }
472
473 scoped_ptr<YUVVideoDrawQuad> CreateTestYUVVideoDrawQuad_FromVideoFrame(
474 SharedQuadState* shared_state,
475 scoped_refptr<media::VideoFrame> video_frame,
476 bool is_transparent,
477 const gfx::RectF& tex_coord_rect) {
478 const bool with_alpha = (video_frame->format() == media::VideoFrame::YV12A);
479 const YUVVideoDrawQuad::ColorSpace color_space =
480 (video_frame->format() == media::VideoFrame::YV12J
481 ? YUVVideoDrawQuad::REC_601_JPEG
482 : YUVVideoDrawQuad::REC_601);
483 const gfx::Rect rect(this->device_viewport_size_);
484 const gfx::Rect opaque_rect(0, 0, 0, 0);
485
438 if (with_alpha) 486 if (with_alpha)
439 memset(video_frame->data(media::VideoFrame::kAPlane), 487 memset(video_frame->data(media::VideoFrame::kAPlane),
440 is_transparent ? 0 : 128, 488 is_transparent ? 0 : 128,
441 video_frame->stride(media::VideoFrame::kAPlane) * 489 video_frame->stride(media::VideoFrame::kAPlane) *
442 video_frame->rows(media::VideoFrame::kAPlane)); 490 video_frame->rows(media::VideoFrame::kAPlane));
443 491
444 VideoFrameExternalResources resources = 492 VideoFrameExternalResources resources =
445 video_resource_updater_->CreateExternalResourcesFromVideoFrame( 493 video_resource_updater_->CreateExternalResourcesFromVideoFrame(
446 video_frame); 494 video_frame);
447 495
448 EXPECT_EQ(VideoFrameExternalResources::YUV_RESOURCE, resources.type); 496 EXPECT_EQ(VideoFrameExternalResources::YUV_RESOURCE, resources.type);
449 EXPECT_EQ(media::VideoFrame::NumPlanes(format), resources.mailboxes.size()); 497 EXPECT_EQ(media::VideoFrame::NumPlanes(video_frame->format()),
450 EXPECT_EQ(media::VideoFrame::NumPlanes(format), 498 resources.mailboxes.size());
499 EXPECT_EQ(media::VideoFrame::NumPlanes(video_frame->format()),
451 resources.release_callbacks.size()); 500 resources.release_callbacks.size());
452 501
453 ResourceProvider::ResourceId y_resource = 502 ResourceProvider::ResourceId y_resource =
454 resource_provider_->CreateResourceFromTextureMailbox( 503 resource_provider_->CreateResourceFromTextureMailbox(
455 resources.mailboxes[media::VideoFrame::kYPlane], 504 resources.mailboxes[media::VideoFrame::kYPlane],
456 SingleReleaseCallback::Create( 505 SingleReleaseCallback::Create(
457 resources.release_callbacks[media::VideoFrame::kYPlane])); 506 resources.release_callbacks[media::VideoFrame::kYPlane]));
458 ResourceProvider::ResourceId u_resource = 507 ResourceProvider::ResourceId u_resource =
459 resource_provider_->CreateResourceFromTextureMailbox( 508 resource_provider_->CreateResourceFromTextureMailbox(
460 resources.mailboxes[media::VideoFrame::kUPlane], 509 resources.mailboxes[media::VideoFrame::kUPlane],
(...skipping 14 matching lines...) Expand all
475 524
476 scoped_ptr<YUVVideoDrawQuad> yuv_quad = YUVVideoDrawQuad::Create(); 525 scoped_ptr<YUVVideoDrawQuad> yuv_quad = YUVVideoDrawQuad::Create();
477 yuv_quad->SetNew(shared_state, 526 yuv_quad->SetNew(shared_state,
478 rect, 527 rect,
479 opaque_rect, 528 opaque_rect,
480 rect, 529 rect,
481 tex_coord_rect, 530 tex_coord_rect,
482 y_resource, 531 y_resource,
483 u_resource, 532 u_resource,
484 v_resource, 533 v_resource,
485 a_resource); 534 a_resource,
535 color_space);
486 return yuv_quad.Pass(); 536 return yuv_quad.Pass();
487 } 537 }
488 538
489 virtual void SetUp() OVERRIDE { 539 virtual void SetUp() OVERRIDE {
490 GLRendererPixelTest::SetUp(); 540 GLRendererPixelTest::SetUp();
491 video_resource_updater_.reset(new VideoResourceUpdater( 541 video_resource_updater_.reset(new VideoResourceUpdater(
492 output_surface_->context_provider().get(), resource_provider_.get())); 542 output_surface_->context_provider().get(), resource_provider_.get()));
493 } 543 }
494 544
495 private: 545 private:
496 scoped_ptr<VideoResourceUpdater> video_resource_updater_; 546 scoped_ptr<VideoResourceUpdater> video_resource_updater_;
497 }; 547 };
498 548
499 TEST_F(VideoGLRendererPixelTest, SimpleYUVRect) { 549 TEST_F(VideoGLRendererPixelTest, SimpleYUVRect) {
500 gfx::Rect rect(this->device_viewport_size_); 550 gfx::Rect rect(this->device_viewport_size_);
501 551
502 RenderPass::Id id(1, 1); 552 RenderPass::Id id(1, 1);
503 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 553 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
504 554
505 scoped_ptr<SharedQuadState> shared_state = 555 scoped_ptr<SharedQuadState> shared_state =
506 CreateTestSharedQuadState(gfx::Transform(), rect); 556 CreateTestSharedQuadState(gfx::Transform(), rect);
507 557
508 scoped_ptr<YUVVideoDrawQuad> yuv_quad = 558 scoped_ptr<YUVVideoDrawQuad> yuv_quad =
509 CreateTestYUVVideoDrawQuad(shared_state.get(), 559 CreateTestYUVVideoDrawQuad_Striped(shared_state.get(),
510 media::VideoFrame::YV12, 560 media::VideoFrame::YV12,
511 false, 561 false,
512 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f)); 562 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f));
513 563
514 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>()); 564 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
515 565
516 RenderPassList pass_list; 566 RenderPassList pass_list;
517 pass_list.push_back(pass.Pass()); 567 pass_list.push_back(pass.Pass());
518 568
519 EXPECT_TRUE( 569 EXPECT_TRUE(
520 this->RunPixelTest(&pass_list, 570 this->RunPixelTest(&pass_list,
521 base::FilePath(FILE_PATH_LITERAL("yuv_stripes.png")), 571 base::FilePath(FILE_PATH_LITERAL("yuv_stripes.png")),
522 FuzzyPixelOffByOneComparator(true))); 572 FuzzyPixelOffByOneComparator(true)));
523 } 573 }
524 574
525 TEST_F(VideoGLRendererPixelTest, OffsetYUVRect) { 575 TEST_F(VideoGLRendererPixelTest, OffsetYUVRect) {
526 gfx::Rect rect(this->device_viewport_size_); 576 gfx::Rect rect(this->device_viewport_size_);
527 577
528 RenderPass::Id id(1, 1); 578 RenderPass::Id id(1, 1);
529 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 579 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
530 580
531 scoped_ptr<SharedQuadState> shared_state = 581 scoped_ptr<SharedQuadState> shared_state =
532 CreateTestSharedQuadState(gfx::Transform(), rect); 582 CreateTestSharedQuadState(gfx::Transform(), rect);
533 583
534 // Intentionally sets frame format to I420 for testing coverage. 584 // Intentionally sets frame format to I420 for testing coverage.
535 scoped_ptr<YUVVideoDrawQuad> yuv_quad = 585 scoped_ptr<YUVVideoDrawQuad> yuv_quad = CreateTestYUVVideoDrawQuad_Striped(
536 CreateTestYUVVideoDrawQuad(shared_state.get(), 586 shared_state.get(),
537 media::VideoFrame::I420, 587 media::VideoFrame::I420,
538 false, 588 false,
539 gfx::RectF(0.125f, 0.25f, 0.75f, 0.5f)); 589 gfx::RectF(0.125f, 0.25f, 0.75f, 0.5f));
540 590
541 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>()); 591 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
542 592
543 RenderPassList pass_list; 593 RenderPassList pass_list;
544 pass_list.push_back(pass.Pass()); 594 pass_list.push_back(pass.Pass());
545 595
546 EXPECT_TRUE(this->RunPixelTest( 596 EXPECT_TRUE(this->RunPixelTest(
547 &pass_list, 597 &pass_list,
548 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_offset.png")), 598 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_offset.png")),
549 FuzzyPixelOffByOneComparator(true))); 599 FuzzyPixelOffByOneComparator(true)));
550 } 600 }
551 601
602 TEST_F(VideoGLRendererPixelTest, SimpleYUVRectBlack) {
603 gfx::Rect rect(this->device_viewport_size_);
604
605 RenderPass::Id id(1, 1);
606 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
607
608 scoped_ptr<SharedQuadState> shared_state =
609 CreateTestSharedQuadState(gfx::Transform(), rect);
610
611 // In MPEG color range YUV values of (15,128,128) should produce black.
612 scoped_ptr<YUVVideoDrawQuad> yuv_quad =
613 CreateTestYUVVideoDrawQuad_Solid(shared_state.get(),
614 media::VideoFrame::YV12,
615 false,
616 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f),
617 15,
618 128,
619 128);
620
621 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
622
623 RenderPassList pass_list;
624 pass_list.push_back(pass.Pass());
625
626 // If we didn't get black out of the YUV values above, then we probably have a
627 // color range issue.
628 EXPECT_TRUE(this->RunPixelTest(&pass_list,
629 base::FilePath(FILE_PATH_LITERAL("black.png")),
630 FuzzyPixelOffByOneComparator(true)));
631 }
632
633 TEST_F(VideoGLRendererPixelTest, SimpleYUVJRect) {
634 gfx::Rect rect(this->device_viewport_size_);
635
636 RenderPass::Id id(1, 1);
637 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
638
639 scoped_ptr<SharedQuadState> shared_state =
640 CreateTestSharedQuadState(gfx::Transform(), rect);
641
642 // YUV of (149,43,21) should be green (0,255,0) in RGB.
643 scoped_ptr<YUVVideoDrawQuad> yuv_quad =
644 CreateTestYUVVideoDrawQuad_Solid(shared_state.get(),
645 media::VideoFrame::YV12J,
646 false,
647 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f),
648 149,
649 43,
650 21);
651
652 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
653
654 RenderPassList pass_list;
655 pass_list.push_back(pass.Pass());
656
657 EXPECT_TRUE(this->RunPixelTest(&pass_list,
658 base::FilePath(FILE_PATH_LITERAL("green.png")),
659 FuzzyPixelOffByOneComparator(true)));
660 }
661
662 TEST_F(VideoGLRendererPixelTest, SimpleYUVJRectGrey) {
663 gfx::Rect rect(this->device_viewport_size_);
664
665 RenderPass::Id id(1, 1);
666 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
667
668 scoped_ptr<SharedQuadState> shared_state =
669 CreateTestSharedQuadState(gfx::Transform(), rect);
670
671 // Dark grey in JPEG color range (in MPEG, this is black).
672 scoped_ptr<YUVVideoDrawQuad> yuv_quad =
673 CreateTestYUVVideoDrawQuad_Solid(shared_state.get(),
674 media::VideoFrame::YV12J,
675 false,
676 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f),
677 15,
678 128,
679 128);
680
681 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
682
683 RenderPassList pass_list;
684 pass_list.push_back(pass.Pass());
685
686 EXPECT_TRUE(
687 this->RunPixelTest(&pass_list,
688 base::FilePath(FILE_PATH_LITERAL("dark_grey.png")),
689 FuzzyPixelOffByOneComparator(true)));
690 }
691
552 TEST_F(VideoGLRendererPixelTest, SimpleYUVARect) { 692 TEST_F(VideoGLRendererPixelTest, SimpleYUVARect) {
553 gfx::Rect rect(this->device_viewport_size_); 693 gfx::Rect rect(this->device_viewport_size_);
554 694
555 RenderPass::Id id(1, 1); 695 RenderPass::Id id(1, 1);
556 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 696 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
557 697
558 scoped_ptr<SharedQuadState> shared_state = 698 scoped_ptr<SharedQuadState> shared_state =
559 CreateTestSharedQuadState(gfx::Transform(), rect); 699 CreateTestSharedQuadState(gfx::Transform(), rect);
560 700
561 scoped_ptr<YUVVideoDrawQuad> yuv_quad = 701 scoped_ptr<YUVVideoDrawQuad> yuv_quad =
562 CreateTestYUVVideoDrawQuad(shared_state.get(), 702 CreateTestYUVVideoDrawQuad_Striped(shared_state.get(),
563 media::VideoFrame::YV12A, 703 media::VideoFrame::YV12A,
564 false, 704 false,
565 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f)); 705 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f));
566 706
567 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>()); 707 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
568 708
569 scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create(); 709 scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
570 color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorWHITE, false); 710 color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorWHITE, false);
571 711
572 pass->quad_list.push_back(color_quad.PassAs<DrawQuad>()); 712 pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
573 713
574 RenderPassList pass_list; 714 RenderPassList pass_list;
575 pass_list.push_back(pass.Pass()); 715 pass_list.push_back(pass.Pass());
576 716
577 EXPECT_TRUE(this->RunPixelTest( 717 EXPECT_TRUE(this->RunPixelTest(
578 &pass_list, 718 &pass_list,
579 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_alpha.png")), 719 base::FilePath(FILE_PATH_LITERAL("yuv_stripes_alpha.png")),
580 FuzzyPixelOffByOneComparator(true))); 720 FuzzyPixelOffByOneComparator(true)));
581 } 721 }
582 722
583 TEST_F(VideoGLRendererPixelTest, FullyTransparentYUVARect) { 723 TEST_F(VideoGLRendererPixelTest, FullyTransparentYUVARect) {
584 gfx::Rect rect(this->device_viewport_size_); 724 gfx::Rect rect(this->device_viewport_size_);
585 725
586 RenderPass::Id id(1, 1); 726 RenderPass::Id id(1, 1);
587 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); 727 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
588 728
589 scoped_ptr<SharedQuadState> shared_state = 729 scoped_ptr<SharedQuadState> shared_state =
590 CreateTestSharedQuadState(gfx::Transform(), rect); 730 CreateTestSharedQuadState(gfx::Transform(), rect);
591 731
592 scoped_ptr<YUVVideoDrawQuad> yuv_quad = 732 scoped_ptr<YUVVideoDrawQuad> yuv_quad =
593 CreateTestYUVVideoDrawQuad(shared_state.get(), 733 CreateTestYUVVideoDrawQuad_Striped(shared_state.get(),
594 media::VideoFrame::YV12A, 734 media::VideoFrame::YV12A,
595 true, 735 true,
596 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f)); 736 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f));
597 737
598 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>()); 738 pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
599 739
600 scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create(); 740 scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
601 color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorBLACK, false); 741 color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorBLACK, false);
602 742
603 pass->quad_list.push_back(color_quad.PassAs<DrawQuad>()); 743 pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
604 744
605 RenderPassList pass_list; 745 RenderPassList pass_list;
606 pass_list.push_back(pass.Pass()); 746 pass_list.push_back(pass.Pass());
(...skipping 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 EXPECT_TRUE(this->RunPixelTest( 2239 EXPECT_TRUE(this->RunPixelTest(
2100 &pass_list, 2240 &pass_list,
2101 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), 2241 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")),
2102 FuzzyPixelOffByOneComparator(true))); 2242 FuzzyPixelOffByOneComparator(true)));
2103 } 2243 }
2104 2244
2105 #endif // !defined(OS_ANDROID) 2245 #endif // !defined(OS_ANDROID)
2106 2246
2107 } // namespace 2247 } // namespace
2108 } // namespace cc 2248 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/quads/draw_quad_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698