OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/cast/receiver/frame_receiver.h" | 5 #include "media/cast/receiver/frame_receiver.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <deque> | 9 #include <deque> |
10 #include <utility> | 10 #include <utility> |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 EXPECT_TRUE(frame_events.empty()); | 167 EXPECT_TRUE(frame_events.empty()); |
168 cast_environment_->logger()->Unsubscribe(&event_subscriber); | 168 cast_environment_->logger()->Unsubscribe(&event_subscriber); |
169 } | 169 } |
170 | 170 |
171 TEST_F(FrameReceiverTest, ReceivesOneFrame) { | 171 TEST_F(FrameReceiverTest, ReceivesOneFrame) { |
172 CreateFrameReceiverOfAudio(); | 172 CreateFrameReceiverOfAudio(); |
173 | 173 |
174 SimpleEventSubscriber event_subscriber; | 174 SimpleEventSubscriber event_subscriber; |
175 cast_environment_->logger()->Subscribe(&event_subscriber); | 175 cast_environment_->logger()->Subscribe(&event_subscriber); |
176 | 176 |
177 EXPECT_CALL(mock_transport_, SendRtcpFromRtpReceiver(_, _, _, _, _, _, _)) | 177 EXPECT_CALL(mock_transport_, SendRtcpFromRtpReceiver(_, _, _, _, _, _, _, _)) |
178 .WillRepeatedly(testing::Return()); | 178 .WillRepeatedly(testing::Return()); |
179 | 179 |
180 FeedLipSyncInfoIntoReceiver(); | 180 FeedLipSyncInfoIntoReceiver(); |
181 task_runner_->RunTasks(); | 181 task_runner_->RunTasks(); |
182 | 182 |
183 // Enqueue a request for a frame. | 183 // Enqueue a request for a frame. |
184 receiver_->RequestEncodedFrame( | 184 receiver_->RequestEncodedFrame( |
185 base::Bind(&FakeFrameClient::DeliverEncodedFrame, | 185 base::Bind(&FakeFrameClient::DeliverEncodedFrame, |
186 base::Unretained(&frame_client_))); | 186 base::Unretained(&frame_client_))); |
187 | 187 |
(...skipping 20 matching lines...) Expand all Loading... |
208 EXPECT_EQ(rtp_header_.rtp_timestamp, frame_events.begin()->rtp_timestamp); | 208 EXPECT_EQ(rtp_header_.rtp_timestamp, frame_events.begin()->rtp_timestamp); |
209 cast_environment_->logger()->Unsubscribe(&event_subscriber); | 209 cast_environment_->logger()->Unsubscribe(&event_subscriber); |
210 } | 210 } |
211 | 211 |
212 TEST_F(FrameReceiverTest, ReceivesFramesSkippingWhenAppropriate) { | 212 TEST_F(FrameReceiverTest, ReceivesFramesSkippingWhenAppropriate) { |
213 CreateFrameReceiverOfAudio(); | 213 CreateFrameReceiverOfAudio(); |
214 | 214 |
215 SimpleEventSubscriber event_subscriber; | 215 SimpleEventSubscriber event_subscriber; |
216 cast_environment_->logger()->Subscribe(&event_subscriber); | 216 cast_environment_->logger()->Subscribe(&event_subscriber); |
217 | 217 |
218 EXPECT_CALL(mock_transport_, SendRtcpFromRtpReceiver(_, _, _, _, _, _, _)) | 218 EXPECT_CALL(mock_transport_, SendRtcpFromRtpReceiver(_, _, _, _, _, _, _, _)) |
219 .WillRepeatedly(testing::Return()); | 219 .WillRepeatedly(testing::Return()); |
220 | 220 |
221 const base::TimeDelta time_advance_per_frame = | 221 const base::TimeDelta time_advance_per_frame = |
222 base::TimeDelta::FromSeconds(1) / config_.target_frame_rate; | 222 base::TimeDelta::FromSeconds(1) / config_.target_frame_rate; |
223 const RtpTimeDelta rtp_advance_per_frame = | 223 const RtpTimeDelta rtp_advance_per_frame = |
224 RtpTimeDelta::FromTimeDelta(time_advance_per_frame, config_.rtp_timebase); | 224 RtpTimeDelta::FromTimeDelta(time_advance_per_frame, config_.rtp_timebase); |
225 | 225 |
226 // Feed and process lip sync in receiver. | 226 // Feed and process lip sync in receiver. |
227 FeedLipSyncInfoIntoReceiver(); | 227 FeedLipSyncInfoIntoReceiver(); |
228 task_runner_->RunTasks(); | 228 task_runner_->RunTasks(); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 } | 311 } |
312 cast_environment_->logger()->Unsubscribe(&event_subscriber); | 312 cast_environment_->logger()->Unsubscribe(&event_subscriber); |
313 } | 313 } |
314 | 314 |
315 TEST_F(FrameReceiverTest, ReceivesFramesRefusingToSkipAny) { | 315 TEST_F(FrameReceiverTest, ReceivesFramesRefusingToSkipAny) { |
316 CreateFrameReceiverOfVideo(); | 316 CreateFrameReceiverOfVideo(); |
317 | 317 |
318 SimpleEventSubscriber event_subscriber; | 318 SimpleEventSubscriber event_subscriber; |
319 cast_environment_->logger()->Subscribe(&event_subscriber); | 319 cast_environment_->logger()->Subscribe(&event_subscriber); |
320 | 320 |
321 EXPECT_CALL(mock_transport_, SendRtcpFromRtpReceiver(_, _, _, _, _, _, _)) | 321 EXPECT_CALL(mock_transport_, SendRtcpFromRtpReceiver(_, _, _, _, _, _, _, _)) |
322 .WillRepeatedly(testing::Return()); | 322 .WillRepeatedly(testing::Return()); |
323 | 323 |
324 const base::TimeDelta time_advance_per_frame = | 324 const base::TimeDelta time_advance_per_frame = |
325 base::TimeDelta::FromSeconds(1) / config_.target_frame_rate; | 325 base::TimeDelta::FromSeconds(1) / config_.target_frame_rate; |
326 const RtpTimeDelta rtp_advance_per_frame = | 326 const RtpTimeDelta rtp_advance_per_frame = |
327 RtpTimeDelta::FromTimeDelta(time_advance_per_frame, config_.rtp_timebase); | 327 RtpTimeDelta::FromTimeDelta(time_advance_per_frame, config_.rtp_timebase); |
328 | 328 |
329 // Feed and process lip sync in receiver. | 329 // Feed and process lip sync in receiver. |
330 FeedLipSyncInfoIntoReceiver(); | 330 FeedLipSyncInfoIntoReceiver(); |
331 task_runner_->RunTasks(); | 331 task_runner_->RunTasks(); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 EXPECT_GE(kFirstFrameId + 3, frame_events[i].frame_id); | 413 EXPECT_GE(kFirstFrameId + 3, frame_events[i].frame_id); |
414 const int frame_offset = frame_events[i].frame_id - kFirstFrameId; | 414 const int frame_offset = frame_events[i].frame_id - kFirstFrameId; |
415 EXPECT_EQ(RtpTimeTicks() + (rtp_advance_per_frame * frame_offset), | 415 EXPECT_EQ(RtpTimeTicks() + (rtp_advance_per_frame * frame_offset), |
416 frame_events[i].rtp_timestamp); | 416 frame_events[i].rtp_timestamp); |
417 } | 417 } |
418 cast_environment_->logger()->Unsubscribe(&event_subscriber); | 418 cast_environment_->logger()->Unsubscribe(&event_subscriber); |
419 } | 419 } |
420 | 420 |
421 } // namespace cast | 421 } // namespace cast |
422 } // namespace media | 422 } // namespace media |
OLD | NEW |