Chromium Code Reviews| Index: webrtc/modules/rtp_rtcp/source/flexfec_sender_unittest.cc |
| diff --git a/webrtc/modules/rtp_rtcp/source/flexfec_sender_unittest.cc b/webrtc/modules/rtp_rtcp/source/flexfec_sender_unittest.cc |
| index da3efc9f18bdafc9fa7f41276b292ef737e88fe8..7a44145dfaf6e4ca83abcb603f5fbaf68027d395 100644 |
| --- a/webrtc/modules/rtp_rtcp/source/flexfec_sender_unittest.cc |
| +++ b/webrtc/modules/rtp_rtcp/source/flexfec_sender_unittest.cc |
| @@ -78,7 +78,7 @@ TEST(FlexfecSenderTest, Ssrc) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| EXPECT_EQ(kFlexfecSsrc, sender.ssrc()); |
| } |
| @@ -87,7 +87,7 @@ TEST(FlexfecSenderTest, NoFecAvailableBeforeMediaAdded) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| EXPECT_FALSE(sender.FecAvailable()); |
| auto fec_packets = sender.GetFecPackets(); |
| @@ -98,7 +98,7 @@ TEST(FlexfecSenderTest, ProtectOneFrameWithOneFecPacket) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| auto fec_packet = GenerateSingleFlexfecPacket(&sender); |
| EXPECT_EQ(kRtpHeaderSize, fec_packet->headers_size()); |
| @@ -121,7 +121,7 @@ TEST(FlexfecSenderTest, ProtectTwoFramesWithOneFecPacket) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| sender.SetFecParameters(params); |
| AugmentedPacketGenerator packet_generator(kMediaSsrc); |
| @@ -161,7 +161,7 @@ TEST(FlexfecSenderTest, ProtectTwoFramesWithTwoFecPackets) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| sender.SetFecParameters(params); |
| AugmentedPacketGenerator packet_generator(kMediaSsrc); |
| @@ -197,7 +197,7 @@ TEST(FlexfecSenderTest, NoRtpHeaderExtensionsForBweByDefault) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| auto fec_packet = GenerateSingleFlexfecPacket(&sender); |
| EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>()); |
| @@ -211,7 +211,7 @@ TEST(FlexfecSenderTest, RegisterAbsoluteSendTimeRtpHeaderExtension) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| auto fec_packet = GenerateSingleFlexfecPacket(&sender); |
| EXPECT_TRUE(fec_packet->HasExtension<AbsoluteSendTime>()); |
| @@ -225,7 +225,7 @@ TEST(FlexfecSenderTest, RegisterTransmissionOffsetRtpHeaderExtension) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| auto fec_packet = GenerateSingleFlexfecPacket(&sender); |
| EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>()); |
| @@ -239,7 +239,7 @@ TEST(FlexfecSenderTest, RegisterTransportSequenceNumberRtpHeaderExtension) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| auto fec_packet = GenerateSingleFlexfecPacket(&sender); |
| EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>()); |
| @@ -255,7 +255,7 @@ TEST(FlexfecSenderTest, RegisterAllRtpHeaderExtensionsForBwe) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| auto fec_packet = GenerateSingleFlexfecPacket(&sender); |
| EXPECT_TRUE(fec_packet->HasExtension<AbsoluteSendTime>()); |
| @@ -267,7 +267,7 @@ TEST(FlexfecSenderTest, MaxPacketOverhead) { |
| SimulatedClock clock(kInitialSimulatedClockTime); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| EXPECT_EQ(kFlexfecMaxHeaderSize, sender.MaxPacketOverhead()); |
| } |
| @@ -287,10 +287,37 @@ TEST(FlexfecSenderTest, MaxPacketOverheadWithExtensions) { |
| kExtensionHeaderLength + TransportSequenceNumber::kValueSizeBytes); |
| FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| kRtpHeaderExtensions, RTPSender::FecExtensionSizes(), |
| - &clock); |
| + nullptr /* rtp_state */, &clock); |
| EXPECT_EQ(kExtensionsTotalSize + kFlexfecMaxHeaderSize, |
| sender.MaxPacketOverhead()); |
| } |
| +TEST(FlexfecSenderTest, SetsAndGetsRtpState) { |
| + RtpState initial_rtp_state; |
| + initial_rtp_state.sequence_number = 100; |
| + initial_rtp_state.start_timestamp = 200; |
| + SimulatedClock clock(kInitialSimulatedClockTime); |
| + FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, |
| + kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes, |
| + &initial_rtp_state, &clock); |
| + |
| + auto fec_packet = GenerateSingleFlexfecPacket(&sender); |
| + EXPECT_EQ(initial_rtp_state.sequence_number, fec_packet->SequenceNumber()); |
| + EXPECT_EQ(initial_rtp_state.start_timestamp, fec_packet->Timestamp()); |
| + |
| + clock.AdvanceTimeMilliseconds(1000); |
| + fec_packet = GenerateSingleFlexfecPacket(&sender); |
| + EXPECT_EQ(initial_rtp_state.sequence_number + 1, |
| + fec_packet->SequenceNumber()); |
| + EXPECT_EQ(initial_rtp_state.start_timestamp + 1 * 90000, |
|
danilchap
2017/05/29 08:09:35
may be kVideoPayloadTypeFrequency instead of 90000
brandtr
2017/05/29 14:40:14
Done.
|
| + fec_packet->Timestamp()); |
| + |
| + RtpState updated_rtp_state = sender.GetRtpState(); |
| + EXPECT_EQ(initial_rtp_state.sequence_number + 2, |
| + updated_rtp_state.sequence_number); |
| + EXPECT_EQ(initial_rtp_state.start_timestamp, |
| + updated_rtp_state.start_timestamp); |
| +} |
| + |
| } // namespace webrtc |