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}
This commit is contained in:
Philipp Hancke 2023-07-03 11:18:37 +02:00 committed by WebRTC LUCI CQ
parent c2919fe1e2
commit 5f4a7e004e
3 changed files with 13 additions and 1 deletions

View File

@ -1039,6 +1039,12 @@ absl::optional<int64_t> RtpVideoStreamReceiver2::LastReceivedPacketMs() const {
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_);

View File

@ -204,6 +204,7 @@ class RtpVideoStreamReceiver2 : public LossNotificationSender,
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:

View File

@ -822,8 +822,13 @@ void VideoReceiveStream2::OnDecodableFrameTimeout(TimeDelta wait) {
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);
}