Log last received RTP timestamp when requesting a PLI due to timeout
which helps finding the associated packets in Wireshark dumps
BUG=None
Change-Id: I216b3e87606b914781c3a2ed61a0118dcd7c1ec2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308822
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#40397}
diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc
index a01e60f..7634764 100644
--- a/video/rtp_video_stream_receiver2.cc
+++ b/video/rtp_video_stream_receiver2.cc
@@ -1039,6 +1039,12 @@
return absl::nullopt;
}
+absl::optional<uint32_t>
+RtpVideoStreamReceiver2::LastReceivedFrameRtpTimestamp() const {
+ RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
+ return last_received_rtp_timestamp_;
+}
+
absl::optional<int64_t> RtpVideoStreamReceiver2::LastReceivedKeyframePacketMs()
const {
RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
diff --git a/video/rtp_video_stream_receiver2.h b/video/rtp_video_stream_receiver2.h
index f9ed339..0178355 100644
--- a/video/rtp_video_stream_receiver2.h
+++ b/video/rtp_video_stream_receiver2.h
@@ -204,6 +204,7 @@
void SetProtectionPayloadTypes(int red_payload_type, int ulpfec_payload_type);
absl::optional<int64_t> LastReceivedPacketMs() const;
+ absl::optional<uint32_t> LastReceivedFrameRtpTimestamp() const;
absl::optional<int64_t> LastReceivedKeyframePacketMs() const;
private:
diff --git a/video/video_receive_stream2.cc b/video/video_receive_stream2.cc
index 4a7e7ac..31a52aa 100644
--- a/video/video_receive_stream2.cc
+++ b/video/video_receive_stream2.cc
@@ -822,8 +822,13 @@
if (stream_is_active && !IsReceivingKeyFrame(now) &&
(!config_.crypto_options.sframe.require_frame_encryption ||
rtp_video_stream_receiver_.IsDecryptable())) {
+ absl::optional<uint32_t> last_timestamp =
+ rtp_video_stream_receiver_.LastReceivedFrameRtpTimestamp();
RTC_LOG(LS_WARNING) << "No decodable frame in " << wait
- << ", requesting keyframe.";
+ << " requesting keyframe. Last RTP timestamp "
+ << (last_timestamp ? rtc::ToString(*last_timestamp)
+ : "<not set>")
+ << ".";
RequestKeyFrame(now);
}