diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc index fe89e05f59..e7f88665b6 100644 --- a/video/rtp_video_stream_receiver2.cc +++ b/video/rtp_video_stream_receiver2.cc @@ -437,8 +437,12 @@ RtpVideoStreamReceiver2::ParseGenericDependenciesExtension( // or too new packet (before relevant video_structure_ arrived). // Drop such packet to be on the safe side. // TODO(bugs.webrtc.org/10342): Stash too new packet. - RTC_LOG(LS_WARNING) << "ssrc: " << rtp_packet.Ssrc() - << " Failed to parse dependency descriptor."; + Timestamp now = clock_->CurrentTime(); + if (now - last_logged_failed_to_parse_dd_ > TimeDelta::Seconds(1)) { + last_logged_failed_to_parse_dd_ = now; + RTC_LOG(LS_WARNING) << "ssrc: " << rtp_packet.Ssrc() + << " Failed to parse dependency descriptor."; + } return kDropPacket; } if (dependency_descriptor.attached_structure != nullptr && diff --git a/video/rtp_video_stream_receiver2.h b/video/rtp_video_stream_receiver2.h index 862db6c861..48bcab157e 100644 --- a/video/rtp_video_stream_receiver2.h +++ b/video/rtp_video_stream_receiver2.h @@ -377,6 +377,8 @@ class RtpVideoStreamReceiver2 : public LossNotificationSender, // absl::nullopt when `video_structure_ == nullptr`; absl::optional video_structure_frame_id_ RTC_GUARDED_BY(packet_sequence_checker_); + Timestamp last_logged_failed_to_parse_dd_ + RTC_GUARDED_BY(packet_sequence_checker_) = Timestamp::MinusInfinity(); std::unique_ptr reference_finder_ RTC_GUARDED_BY(packet_sequence_checker_);