| Index: remoting/host/video_scheduler_unittest.cc
|
| diff --git a/remoting/host/video_scheduler_unittest.cc b/remoting/host/video_scheduler_unittest.cc
|
| index 44010aff14cf6946887435e15f824f44535bd6d3..7bf17fc1380e0baaf62ade6a8e6ac0a3a82384b0 100644
|
| --- a/remoting/host/video_scheduler_unittest.cc
|
| +++ b/remoting/host/video_scheduler_unittest.cc
|
| @@ -7,7 +7,6 @@
|
| #include "base/bind.h"
|
| #include "base/message_loop.h"
|
| #include "base/run_loop.h"
|
| -#include "media/video/capture/screen/screen_capture_data.h"
|
| #include "media/video/capture/screen/screen_capturer_mock_objects.h"
|
| #include "remoting/base/auto_thread_task_runner.h"
|
| #include "remoting/codec/video_encoder.h"
|
| @@ -15,6 +14,7 @@
|
| #include "remoting/protocol/protocol_mock_objects.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
|
|
|
| using ::remoting::protocol::MockClientStub;
|
| using ::remoting::protocol::MockVideoStub;
|
| @@ -38,7 +38,7 @@ namespace {
|
| ACTION(FinishEncode) {
|
| scoped_ptr<VideoPacket> packet(new VideoPacket());
|
| packet->set_flags(VideoPacket::LAST_PACKET | VideoPacket::LAST_PARTITION);
|
| - arg2.Run(packet.Pass());
|
| + arg1.Run(packet.Pass());
|
| }
|
|
|
| ACTION(FinishSend) {
|
| @@ -55,9 +55,8 @@ class MockVideoEncoder : public VideoEncoder {
|
| MockVideoEncoder();
|
| virtual ~MockVideoEncoder();
|
|
|
| - MOCK_METHOD3(Encode, void(
|
| - scoped_refptr<media::ScreenCaptureData> capture_data,
|
| - bool key_frame,
|
| + MOCK_METHOD2(Encode, void(
|
| + const webrtc::DesktopFrame* frame,
|
| const DataAvailableCallback& data_available_callback));
|
|
|
| private:
|
| @@ -78,9 +77,8 @@ class VideoSchedulerTest : public testing::Test {
|
| void StopVideoScheduler();
|
|
|
| // media::ScreenCapturer mocks.
|
| - void OnCapturerStart(media::ScreenCapturer::Delegate* delegate);
|
| - void OnCapturerStop();
|
| - void OnCaptureFrame();
|
| + void OnCapturerStart(media::ScreenCapturer::Callback* callback);
|
| + void OnCaptureFrame(const webrtc::DesktopRegion& region);
|
|
|
| protected:
|
| base::MessageLoop message_loop_;
|
| @@ -94,10 +92,10 @@ class VideoSchedulerTest : public testing::Test {
|
| // The following mock objects are owned by VideoScheduler.
|
| MockVideoEncoder* encoder_;
|
|
|
| - scoped_refptr<media::ScreenCaptureData> data_;
|
| + scoped_ptr<webrtc::DesktopFrame> frame_;
|
|
|
| - // Points to the delegate passed to media::ScreenCapturer::Start().
|
| - media::ScreenCapturer::Delegate* capturer_delegate_;
|
| + // Points to the callback passed to media::ScreenCapturer::Start().
|
| + media::ScreenCapturer::Callback* capturer_callback_;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(VideoSchedulerTest);
|
| @@ -105,7 +103,7 @@ class VideoSchedulerTest : public testing::Test {
|
|
|
| VideoSchedulerTest::VideoSchedulerTest()
|
| : encoder_(NULL),
|
| - capturer_delegate_(NULL) {
|
| + capturer_callback_(NULL) {
|
| }
|
|
|
| void VideoSchedulerTest::SetUp() {
|
| @@ -134,22 +132,17 @@ void VideoSchedulerTest::StopVideoScheduler() {
|
| }
|
|
|
| void VideoSchedulerTest::OnCapturerStart(
|
| - media::ScreenCapturer::Delegate* delegate) {
|
| - EXPECT_FALSE(capturer_delegate_);
|
| - EXPECT_TRUE(delegate);
|
| + media::ScreenCapturer::Callback* callback) {
|
| + EXPECT_FALSE(capturer_callback_);
|
| + EXPECT_TRUE(callback);
|
|
|
| - capturer_delegate_ = delegate;
|
| + capturer_callback_ = callback;
|
| }
|
|
|
| -void VideoSchedulerTest::OnCapturerStop() {
|
| - capturer_delegate_ = NULL;
|
| -}
|
| -
|
| -void VideoSchedulerTest::OnCaptureFrame() {
|
| - SkRegion update_region(SkIRect::MakeXYWH(0, 0, 10, 10));
|
| - data_->mutable_dirty_region().op(update_region, SkRegion::kUnion_Op);
|
| -
|
| - capturer_delegate_->OnCaptureCompleted(data_);
|
| +void VideoSchedulerTest::OnCaptureFrame(const webrtc::DesktopRegion& region) {
|
| + frame_->mutable_updated_region()->SetRect(
|
| + webrtc::DesktopRect::MakeXYWH(0, 0, 10, 10));
|
| + capturer_callback_->OnCaptureCompleted(frame_.release());
|
| }
|
|
|
| // This test mocks capturer, encoder and network layer to simulate one capture
|
| @@ -163,17 +156,17 @@ TEST_F(VideoSchedulerTest, StartAndStop) {
|
| EXPECT_CALL(*capturer, Start(_))
|
| .WillOnce(Invoke(this, &VideoSchedulerTest::OnCapturerStart));
|
|
|
| - data_ = new media::ScreenCaptureData(
|
| - NULL, kWidth * media::ScreenCaptureData::kBytesPerPixel,
|
| - SkISize::Make(kWidth, kHeight));
|
| + frame_.reset(new webrtc::BasicDesktopFrame(
|
| + webrtc::DesktopSize(kWidth, kHeight)));
|
| + webrtc::DesktopFrame* frame_ptr = frame_.get();
|
|
|
| // First the capturer is called.
|
| - Expectation capturer_capture = EXPECT_CALL(*capturer, CaptureFrame())
|
| + Expectation capturer_capture = EXPECT_CALL(*capturer, Capture(_))
|
| .After(capturer_start)
|
| .WillRepeatedly(Invoke(this, &VideoSchedulerTest::OnCaptureFrame));
|
|
|
| // Expect the encoder be called.
|
| - EXPECT_CALL(*encoder_, Encode(data_, false, _))
|
| + EXPECT_CALL(*encoder_, Encode(frame_ptr, _))
|
| .WillRepeatedly(FinishEncode());
|
|
|
| // By default delete the arguments when ProcessVideoPacket is received.
|
|
|