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

Side by Side Diff: media/capture/video/video_capture_device_unittest.cc

Issue 2673373003: getUserMeida: report device starting states (Closed)
Patch Set: address comments on PS#7 Created 3 years, 10 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "media/capture/video/video_capture_device.h" 5 #include "media/capture/video/video_capture_device.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 class MockVideoCaptureClient : public VideoCaptureDevice::Client { 94 class MockVideoCaptureClient : public VideoCaptureDevice::Client {
95 public: 95 public:
96 MOCK_METHOD0(DoReserveOutputBuffer, void(void)); 96 MOCK_METHOD0(DoReserveOutputBuffer, void(void));
97 MOCK_METHOD0(DoOnIncomingCapturedBuffer, void(void)); 97 MOCK_METHOD0(DoOnIncomingCapturedBuffer, void(void));
98 MOCK_METHOD0(DoOnIncomingCapturedVideoFrame, void(void)); 98 MOCK_METHOD0(DoOnIncomingCapturedVideoFrame, void(void));
99 MOCK_METHOD0(DoResurrectLastOutputBuffer, void(void)); 99 MOCK_METHOD0(DoResurrectLastOutputBuffer, void(void));
100 MOCK_METHOD2(OnError, 100 MOCK_METHOD2(OnError,
101 void(const tracked_objects::Location& from_here, 101 void(const tracked_objects::Location& from_here,
102 const std::string& reason)); 102 const std::string& reason));
103 MOCK_CONST_METHOD0(GetBufferPoolUtilization, double(void)); 103 MOCK_CONST_METHOD0(GetBufferPoolUtilization, double(void));
104 MOCK_METHOD0(OnStarted, void(void));
104 105
105 explicit MockVideoCaptureClient( 106 explicit MockVideoCaptureClient(
106 base::Callback<void(const VideoCaptureFormat&)> frame_cb) 107 base::Callback<void(const VideoCaptureFormat&)> frame_cb)
107 : main_thread_(base::ThreadTaskRunnerHandle::Get()), frame_cb_(frame_cb) { 108 : main_thread_(base::ThreadTaskRunnerHandle::Get()), frame_cb_(frame_cb) {
108 ON_CALL(*this, OnError(_, _)).WillByDefault(Invoke(DumpError)); 109 ON_CALL(*this, OnError(_, _)).WillByDefault(Invoke(DumpError));
109 } 110 }
110 111
111 void OnIncomingCapturedData(const uint8_t* data, 112 void OnIncomingCapturedData(const uint8_t* data,
112 int length, 113 int length,
113 const VideoCaptureFormat& format, 114 const VideoCaptureFormat& format,
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 return; 399 return;
399 const int width = size.width(); 400 const int width = size.width();
400 const int height = size.height(); 401 const int height = size.height();
401 402
402 std::unique_ptr<VideoCaptureDevice> device( 403 std::unique_ptr<VideoCaptureDevice> device(
403 video_capture_device_factory_->CreateDevice( 404 video_capture_device_factory_->CreateDevice(
404 device_descriptors_->front())); 405 device_descriptors_->front()));
405 ASSERT_TRUE(device); 406 ASSERT_TRUE(device);
406 407
407 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); 408 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0);
409 EXPECT_CALL(*video_capture_client_, OnStarted());
408 410
409 VideoCaptureParams capture_params; 411 VideoCaptureParams capture_params;
410 capture_params.requested_format.frame_size.SetSize(width, height); 412 capture_params.requested_format.frame_size.SetSize(width, height);
411 capture_params.requested_format.frame_rate = 30.0f; 413 capture_params.requested_format.frame_rate = 30.0f;
412 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420; 414 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420;
413 device->AllocateAndStart(capture_params, std::move(video_capture_client_)); 415 device->AllocateAndStart(capture_params, std::move(video_capture_client_));
414 416
415 WaitForCapturedFrame(); 417 WaitForCapturedFrame();
416 EXPECT_EQ(last_format().frame_size.width(), width); 418 EXPECT_EQ(last_format().frame_size.width(), width);
417 EXPECT_EQ(last_format().frame_size.height(), height); 419 EXPECT_EQ(last_format().frame_size.height(), height);
(...skipping 14 matching lines...) Expand all
432 TEST_F(VideoCaptureDeviceTest, MAYBE_AllocateBadSize) { 434 TEST_F(VideoCaptureDeviceTest, MAYBE_AllocateBadSize) {
433 if (!EnumerateAndFindUsableDevices()) 435 if (!EnumerateAndFindUsableDevices())
434 return; 436 return;
435 437
436 std::unique_ptr<VideoCaptureDevice> device( 438 std::unique_ptr<VideoCaptureDevice> device(
437 video_capture_device_factory_->CreateDevice( 439 video_capture_device_factory_->CreateDevice(
438 device_descriptors_->front())); 440 device_descriptors_->front()));
439 ASSERT_TRUE(device); 441 ASSERT_TRUE(device);
440 442
441 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); 443 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0);
444 EXPECT_CALL(*video_capture_client_, OnStarted());
442 445
443 const gfx::Size input_size(640, 480); 446 const gfx::Size input_size(640, 480);
444 VideoCaptureParams capture_params; 447 VideoCaptureParams capture_params;
445 capture_params.requested_format.frame_size.SetSize(637, 472); 448 capture_params.requested_format.frame_size.SetSize(637, 472);
446 capture_params.requested_format.frame_rate = 35; 449 capture_params.requested_format.frame_rate = 35;
447 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420; 450 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420;
448 device->AllocateAndStart(capture_params, std::move(video_capture_client_)); 451 device->AllocateAndStart(capture_params, std::move(video_capture_client_));
449 WaitForCapturedFrame(); 452 WaitForCapturedFrame();
450 device->StopAndDeAllocate(); 453 device->StopAndDeAllocate();
451 EXPECT_EQ(last_format().frame_size.width(), input_size.width()); 454 EXPECT_EQ(last_format().frame_size.width(), input_size.width());
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 VLOG(1) << "Skipped on Win10: http://crbug.com/570604, current: " 515 VLOG(1) << "Skipped on Win10: http://crbug.com/570604, current: "
513 << static_cast<int>(version); 516 << static_cast<int>(version);
514 return; 517 return;
515 } 518 }
516 #endif 519 #endif
517 std::unique_ptr<VideoCaptureDevice> device( 520 std::unique_ptr<VideoCaptureDevice> device(
518 video_capture_device_factory_->CreateDevice(*device_descriptor)); 521 video_capture_device_factory_->CreateDevice(*device_descriptor));
519 ASSERT_TRUE(device); 522 ASSERT_TRUE(device);
520 523
521 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); 524 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0);
525 EXPECT_CALL(*video_capture_client_, OnStarted());
522 526
523 VideoCaptureParams capture_params; 527 VideoCaptureParams capture_params;
524 capture_params.requested_format.frame_size.SetSize(1280, 720); 528 capture_params.requested_format.frame_size.SetSize(1280, 720);
525 capture_params.requested_format.frame_rate = 30; 529 capture_params.requested_format.frame_rate = 30;
526 capture_params.requested_format.pixel_format = PIXEL_FORMAT_MJPEG; 530 capture_params.requested_format.pixel_format = PIXEL_FORMAT_MJPEG;
527 device->AllocateAndStart(capture_params, std::move(video_capture_client_)); 531 device->AllocateAndStart(capture_params, std::move(video_capture_client_));
528 532
529 WaitForCapturedFrame(); 533 WaitForCapturedFrame();
530 // Verify we get MJPEG from the device. Not all devices can capture 1280x720 534 // Verify we get MJPEG from the device. Not all devices can capture 1280x720
531 // @ 30 fps, so we don't care about the exact resolution we get. 535 // @ 30 fps, so we don't care about the exact resolution we get.
(...skipping 26 matching lines...) Expand all
558 return; 562 return;
559 } 563 }
560 #endif 564 #endif
561 565
562 std::unique_ptr<VideoCaptureDevice> device( 566 std::unique_ptr<VideoCaptureDevice> device(
563 video_capture_device_factory_->CreateDevice( 567 video_capture_device_factory_->CreateDevice(
564 device_descriptors_->front())); 568 device_descriptors_->front()));
565 ASSERT_TRUE(device); 569 ASSERT_TRUE(device);
566 570
567 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); 571 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0);
572 EXPECT_CALL(*video_capture_client_, OnStarted());
568 573
569 VideoCaptureParams capture_params; 574 VideoCaptureParams capture_params;
570 capture_params.requested_format.frame_size.SetSize(320, 240); 575 capture_params.requested_format.frame_size.SetSize(320, 240);
571 capture_params.requested_format.frame_rate = 30; 576 capture_params.requested_format.frame_rate = 30;
572 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420; 577 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420;
573 device->AllocateAndStart(capture_params, std::move(video_capture_client_)); 578 device->AllocateAndStart(capture_params, std::move(video_capture_client_));
574 579
575 VideoCaptureDevice::TakePhotoCallback scoped_callback( 580 VideoCaptureDevice::TakePhotoCallback scoped_callback(
576 base::Bind(&MockImageCaptureClient::DoOnPhotoTaken, 581 base::Bind(&MockImageCaptureClient::DoOnPhotoTaken,
577 image_capture_client_), 582 image_capture_client_),
(...skipping 24 matching lines...) Expand all
602 return; 607 return;
603 } 608 }
604 #endif 609 #endif
605 610
606 std::unique_ptr<VideoCaptureDevice> device( 611 std::unique_ptr<VideoCaptureDevice> device(
607 video_capture_device_factory_->CreateDevice( 612 video_capture_device_factory_->CreateDevice(
608 device_descriptors_->front())); 613 device_descriptors_->front()));
609 ASSERT_TRUE(device); 614 ASSERT_TRUE(device);
610 615
611 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0); 616 EXPECT_CALL(*video_capture_client_, OnError(_, _)).Times(0);
617 EXPECT_CALL(*video_capture_client_, OnStarted());
612 618
613 VideoCaptureParams capture_params; 619 VideoCaptureParams capture_params;
614 capture_params.requested_format.frame_size.SetSize(320, 240); 620 capture_params.requested_format.frame_size.SetSize(320, 240);
615 capture_params.requested_format.frame_rate = 30; 621 capture_params.requested_format.frame_rate = 30;
616 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420; 622 capture_params.requested_format.pixel_format = PIXEL_FORMAT_I420;
617 device->AllocateAndStart(capture_params, std::move(video_capture_client_)); 623 device->AllocateAndStart(capture_params, std::move(video_capture_client_));
618 624
619 VideoCaptureDevice::GetPhotoCapabilitiesCallback scoped_get_callback( 625 VideoCaptureDevice::GetPhotoCapabilitiesCallback scoped_get_callback(
620 base::Bind(&MockImageCaptureClient::DoOnGetPhotoCapabilities, 626 base::Bind(&MockImageCaptureClient::DoOnGetPhotoCapabilities,
621 image_capture_client_), 627 image_capture_client_),
622 media::BindToCurrentLoop( 628 media::BindToCurrentLoop(
623 base::Bind(&MockImageCaptureClient::OnGetPhotoCapabilitiesFailure, 629 base::Bind(&MockImageCaptureClient::OnGetPhotoCapabilitiesFailure,
624 image_capture_client_))); 630 image_capture_client_)));
625 631
626 base::RunLoop run_loop; 632 base::RunLoop run_loop;
627 base::Closure quit_closure = media::BindToCurrentLoop(run_loop.QuitClosure()); 633 base::Closure quit_closure = media::BindToCurrentLoop(run_loop.QuitClosure());
628 EXPECT_CALL(*image_capture_client_.get(), OnCorrectGetPhotoCapabilities()) 634 EXPECT_CALL(*image_capture_client_.get(), OnCorrectGetPhotoCapabilities())
629 .Times(1) 635 .Times(1)
630 .WillOnce(RunClosure(quit_closure)); 636 .WillOnce(RunClosure(quit_closure));
631 637
632 device->GetPhotoCapabilities(std::move(scoped_get_callback)); 638 device->GetPhotoCapabilities(std::move(scoped_get_callback));
633 run_loop.Run(); 639 run_loop.Run();
634 640
635 ASSERT_TRUE(image_capture_client_->capabilities()); 641 ASSERT_TRUE(image_capture_client_->capabilities());
636 642
637 device->StopAndDeAllocate(); 643 device->StopAndDeAllocate();
638 } 644 }
639 645
640 }; // namespace media 646 }; // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698