Chromium Code Reviews| Index: media/cast/sender/video_sender_unittest.cc |
| diff --git a/media/cast/sender/video_sender_unittest.cc b/media/cast/sender/video_sender_unittest.cc |
| index 3d315ea2199d91c8cfc671391b4c4187cae9cb4c..3cedc6cb8e39f721f7e35a5dbab11a81df139bb1 100644 |
| --- a/media/cast/sender/video_sender_unittest.cc |
| +++ b/media/cast/sender/video_sender_unittest.cc |
| @@ -124,6 +124,7 @@ class PeerVideoSender : public VideoSender { |
| transport_sender, |
| base::Bind(&IgnorePlayoutDelayChanges)) {} |
| using VideoSender::OnReceivedCastFeedback; |
| + using VideoSender::OnReceivedPli; |
| }; |
| class TransportClient : public CastTransportSender::Client { |
| @@ -602,5 +603,41 @@ TEST_F(VideoSenderTest, PopulatesResourceUtilizationInFrameMetadata) { |
| } |
| } |
| +TEST_F(VideoSenderTest, CancelSendingOnReceivingPli) { |
| + InitEncoder(false, true); |
| + ASSERT_EQ(STATUS_INITIALIZED, operational_status_); |
| + |
| + // Send a frame and ACK it. |
| + scoped_refptr<media::VideoFrame> video_frame = GetNewVideoFrame(); |
| + video_sender_->InsertRawVideoFrame(video_frame, testing_clock_->NowTicks()); |
| + RunTasks(33); |
| + |
| + RtcpCastMessage cast_feedback(1); |
| + cast_feedback.media_ssrc = 2; |
| + cast_feedback.ack_frame_id = 0; |
| + video_sender_->OnReceivedCastFeedback(cast_feedback); |
| + EXPECT_EQ(1, transport_->number_of_rtp_packets()); |
| + |
| + transport_->SetPause(true); |
| + // Send three more frames. |
| + for (int i = 0; i < 3; i++) { |
| + video_frame = GetNewVideoFrame(); |
| + video_sender_->InsertRawVideoFrame(video_frame, testing_clock_->NowTicks()); |
| + RunTasks(33); |
| + } |
| + |
|
Irfan
2016/02/29 16:01:23
do we need an EXPECT_EQ on how many RTP packets we
xjz
2016/02/29 19:48:59
This check was done on Line 619 before paused the
|
| + // Frames should be in buffer, waiting. |
| + // Received PLI from receiver. |
| + video_sender_->OnReceivedPli(); |
| + video_frame = GetNewVideoFrame(); |
| + video_sender_->InsertRawVideoFrame( |
| + video_frame, |
| + testing_clock_->NowTicks() + base::TimeDelta::FromMilliseconds(500)); |
| + RunTasks(33); |
| + transport_->SetPause(false); |
| + RunTasks(33); |
| + EXPECT_EQ(2, transport_->number_of_rtp_packets()); |
| +} |
| + |
| } // namespace cast |
| } // namespace media |