Propagate receive_timestamp and lost message frames from QUIC to WebRTC.
WebRTC needs to know when messages are lost or acked (with receive timestamps)
in order to synthesize RTCP feedback packets. This change propagates receive
timestamps and lost message notifications from QUIC to the datagram sink.
gfe-relnote: n/a (Quartc only)
PiperOrigin-RevId: 250968409
Change-Id: Ie452f1eaee265f8688c3dc2b2de41c5b3976db9a
diff --git a/quic/quartc/quartc_session.h b/quic/quartc/quartc_session.h
index 3dd2916..6cd1a20 100644
--- a/quic/quartc/quartc_session.h
+++ b/quic/quartc/quartc_session.h
@@ -157,8 +157,14 @@
// plumb that signal up to RTP's congestion control.
virtual void OnMessageSent(int64_t datagram_id) = 0;
- // Called when message with |datagram_id| gets acked.
- virtual void OnMessageAcked(int64_t datagram_id) = 0;
+ // Called when message with |datagram_id| gets acked. |receive_timestamp|
+ // indicates when the peer received this message, according to its own
+ // clock.
+ virtual void OnMessageAcked(int64_t datagram_id,
+ QuicTime receive_timestamp) = 0;
+
+ // Called when message with |datagram_id| is lost.
+ virtual void OnMessageLost(int64_t datagram_id) = 0;
// TODO(zhihuang): Add proof verification.
};
@@ -179,6 +185,8 @@
void OnMessageAcked(QuicMessageId message_id,
QuicTime receive_timestamp) override;
+ void OnMessageLost(QuicMessageId message_id) override;
+
// Returns number of queued (not sent) messages submitted by
// SendOrQueueMessage. Messages are queued if connection is congestion
// controlled.