| 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);
|
| + }
|
| +
|
| + // 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
|
|
|