diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc index 9759f1799d..bcfa650c02 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc @@ -951,6 +951,7 @@ TEST_P(RtpSenderTest, NoFlexfecForTimingFrames) { constexpr uint32_t kFlexfecSsrc = 5678; const std::vector kNoRtpExtensions; const std::vector kNoRtpExtensionSizes; + FlexfecSender flexfec_sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, kNoRtpExtensions, kNoRtpExtensionSizes, nullptr /* rtp_state */, &fake_clock_); @@ -966,6 +967,10 @@ TEST_P(RtpSenderTest, NoFlexfecForTimingFrames) { rtp_sender_->SetSendPayloadType(kMediaPayloadType); rtp_sender_->SetStorePacketsStatus(true, 10); + // Need extension to be registered for timing frames to be sent. + ASSERT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( + kRtpExtensionVideoTiming, kVideoTimingExtensionId)); + // Parameters selected to generate a single FEC packet per media packet. FecProtectionParams params; params.fec_rate = 15; diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc index 351056e216..94503dcdf1 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc @@ -304,7 +304,6 @@ bool RTPSenderVideo::SendVideo(RtpVideoCodecTypes video_type, auto last_packet = rtc::MakeUnique(*rtp_header); size_t fec_packet_overhead; - bool is_timing_frame = false; bool red_enabled; int32_t retransmission_settings; { @@ -336,7 +335,6 @@ bool RTPSenderVideo::SendVideo(RtpVideoCodecTypes video_type, if (video_header->video_timing.is_timing_frame) { last_packet->SetExtension( video_header->video_timing); - is_timing_frame = true; } } @@ -396,7 +394,7 @@ bool RTPSenderVideo::SendVideo(RtpVideoCodecTypes video_type, bool protect_packet = (packetizer->GetProtectionType() == kProtectedPacket); // Put packetization finish timestamp into extension. - if (last && is_timing_frame) { + if (packet->HasExtension()) { packet->set_packetization_finish_time_ms(clock_->TimeInMilliseconds()); // TODO(ilnik): Due to webrtc:7859, packets with timing extensions are not // protected by FEC. It reduces FEC efficiency a bit. When FEC is moved