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

Side by Side Diff: media/cast/video_receiver/video_receiver_unittest.cc

Issue 192843002: Cast:Adding signaling and infrastructure for adjustable delay (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « media/cast/video_receiver/video_receiver.cc ('k') | media/cast/video_sender/video_sender.h » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/bind.h" 5 #include "base/bind.h"
6 #include "base/memory/ref_counted.h" 6 #include "base/memory/ref_counted.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "media/cast/cast_defines.h" 9 #include "media/cast/cast_defines.h"
10 #include "media/cast/cast_environment.h" 10 #include "media/cast/cast_environment.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 int num_called_; 53 int num_called_;
54 54
55 DISALLOW_COPY_AND_ASSIGN(TestVideoReceiverCallback); 55 DISALLOW_COPY_AND_ASSIGN(TestVideoReceiverCallback);
56 }; 56 };
57 } // namespace 57 } // namespace
58 58
59 class PeerVideoReceiver : public VideoReceiver { 59 class PeerVideoReceiver : public VideoReceiver {
60 public: 60 public:
61 PeerVideoReceiver(scoped_refptr<CastEnvironment> cast_environment, 61 PeerVideoReceiver(scoped_refptr<CastEnvironment> cast_environment,
62 const VideoReceiverConfig& video_config, 62 const VideoReceiverConfig& video_config,
63 transport::PacedPacketSender* const packet_sender) 63 transport::PacedPacketSender* const packet_sender,
64 : VideoReceiver(cast_environment, video_config, packet_sender) {} 64 const SetTargetDelayCallback& target_delay_cb)
65 : VideoReceiver(cast_environment,
66 video_config,
67 packet_sender,
68 target_delay_cb) {}
65 using VideoReceiver::IncomingParsedRtpPacket; 69 using VideoReceiver::IncomingParsedRtpPacket;
66 }; 70 };
67 71
68 class VideoReceiverTest : public ::testing::Test { 72 class VideoReceiverTest : public ::testing::Test {
69 protected: 73 protected:
70 VideoReceiverTest() { 74 VideoReceiverTest() {
71 // Configure to use vp8 software implementation. 75 // Configure to use vp8 software implementation.
72 config_.codec = transport::kVp8; 76 config_.codec = transport::kVp8;
73 config_.use_external_decoder = false; 77 config_.use_external_decoder = false;
74 testing_clock_ = new base::SimpleTestTickClock(); 78 testing_clock_ = new base::SimpleTestTickClock();
75 task_runner_ = new test::FakeSingleThreadTaskRunner(testing_clock_); 79 task_runner_ = new test::FakeSingleThreadTaskRunner(testing_clock_);
76 cast_environment_ = 80 cast_environment_ =
77 new CastEnvironment(scoped_ptr<base::TickClock>(testing_clock_).Pass(), 81 new CastEnvironment(scoped_ptr<base::TickClock>(testing_clock_).Pass(),
78 task_runner_, 82 task_runner_,
79 task_runner_, 83 task_runner_,
80 task_runner_, 84 task_runner_,
81 task_runner_, 85 task_runner_,
82 task_runner_, 86 task_runner_,
83 task_runner_, 87 task_runner_,
84 GetLoggingConfigWithRawEventsAndStatsEnabled()); 88 GetLoggingConfigWithRawEventsAndStatsEnabled());
85 receiver_.reset( 89 receiver_.reset(new PeerVideoReceiver(
86 new PeerVideoReceiver(cast_environment_, config_, &mock_transport_)); 90 cast_environment_, config_, &mock_transport_, target_delay_cb_));
87 testing_clock_->Advance( 91 testing_clock_->Advance(
88 base::TimeDelta::FromMilliseconds(kStartMillisecond)); 92 base::TimeDelta::FromMilliseconds(kStartMillisecond));
89 video_receiver_callback_ = new TestVideoReceiverCallback(); 93 video_receiver_callback_ = new TestVideoReceiverCallback();
90 94
91 payload_.assign(kPacketSize, 0); 95 payload_.assign(kPacketSize, 0);
92 96
93 // Always start with a key frame. 97 // Always start with a key frame.
94 rtp_header_.is_key_frame = true; 98 rtp_header_.is_key_frame = true;
95 rtp_header_.frame_id = 1234; 99 rtp_header_.frame_id = 1234;
96 rtp_header_.packet_id = 0; 100 rtp_header_.packet_id = 0;
97 rtp_header_.max_packet_id = 0; 101 rtp_header_.max_packet_id = 0;
98 rtp_header_.is_reference = false; 102 rtp_header_.is_reference = false;
99 rtp_header_.reference_frame_id = 0; 103 rtp_header_.reference_frame_id = 0;
100 rtp_header_.webrtc.header.timestamp = 9000; 104 rtp_header_.webrtc.header.timestamp = 9000;
101 } 105 }
102 106
103 virtual ~VideoReceiverTest() {} 107 virtual ~VideoReceiverTest() {}
104 108
105 transport::MockPacedPacketSender mock_transport_; 109 transport::MockPacedPacketSender mock_transport_;
106 VideoReceiverConfig config_; 110 VideoReceiverConfig config_;
107 scoped_ptr<PeerVideoReceiver> receiver_; 111 scoped_ptr<PeerVideoReceiver> receiver_;
108 std::vector<uint8> payload_; 112 std::vector<uint8> payload_;
109 RtpCastHeader rtp_header_; 113 RtpCastHeader rtp_header_;
110 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. 114 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
111 115
112 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 116 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
113 scoped_refptr<CastEnvironment> cast_environment_; 117 scoped_refptr<CastEnvironment> cast_environment_;
114 scoped_refptr<TestVideoReceiverCallback> video_receiver_callback_; 118 scoped_refptr<TestVideoReceiverCallback> video_receiver_callback_;
119 SetTargetDelayCallback target_delay_cb_;
115 120
116 DISALLOW_COPY_AND_ASSIGN(VideoReceiverTest); 121 DISALLOW_COPY_AND_ASSIGN(VideoReceiverTest);
117 }; 122 };
118 123
119 TEST_F(VideoReceiverTest, GetOnePacketEncodedframe) { 124 TEST_F(VideoReceiverTest, GetOnePacketEncodedframe) {
120 EXPECT_CALL(mock_transport_, SendRtcpPacket(_)) 125 EXPECT_CALL(mock_transport_, SendRtcpPacket(_))
121 .WillRepeatedly(testing::Return(true)); 126 .WillRepeatedly(testing::Return(true));
122 receiver_->IncomingParsedRtpPacket( 127 receiver_->IncomingParsedRtpPacket(
123 payload_.data(), payload_.size(), rtp_header_); 128 payload_.data(), payload_.size(), rtp_header_);
124 129
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 &TestVideoReceiverCallback::DecodeComplete, video_receiver_callback_); 181 &TestVideoReceiverCallback::DecodeComplete, video_receiver_callback_);
177 receiver_->GetRawVideoFrame(frame_decoded_callback); 182 receiver_->GetRawVideoFrame(frame_decoded_callback);
178 task_runner_->RunTasks(); 183 task_runner_->RunTasks();
179 EXPECT_EQ(video_receiver_callback_->number_times_called(), 0); 184 EXPECT_EQ(video_receiver_callback_->number_times_called(), 0);
180 } 185 }
181 186
182 // TODO(pwestin): add encoded frames. 187 // TODO(pwestin): add encoded frames.
183 188
184 } // namespace cast 189 } // namespace cast
185 } // namespace media 190 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/video_receiver/video_receiver.cc ('k') | media/cast/video_sender/video_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698