Enable use of MediaTransportInterface for video streams.
Bug: webrtc:9719
Change-Id: I8c6027b4b15ed641e42fd210b3ea87d121508a69
Reviewed-on: https://webrtc-review.googlesource.com/c/111751
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26219}
diff --git a/api/media_transport_interface.h b/api/media_transport_interface.h
index e0a762a..4531fe4 100644
--- a/api/media_transport_interface.h
+++ b/api/media_transport_interface.h
@@ -274,6 +274,19 @@
virtual void OnStateChanged(MediaTransportState state) = 0;
};
+// Callback for RTT measurements on the receive side.
+// TODO(nisse): Related interfaces: CallStatsObserver and RtcpRttStats. It's
+// somewhat unclear what type of measurement is needed. It's used to configure
+// NACK generation and playout buffer. Either raw measurement values or recent
+// maximum would make sense for this use. Need consolidation of RTT signalling.
+class MediaTransportRttObserver {
+ public:
+ virtual ~MediaTransportRttObserver() = default;
+
+ // Invoked when a new RTT measurement is available, typically once per ACK.
+ virtual void OnRttUpdated(int64_t rtt_ms) = 0;
+};
+
// Supported types of application data messages.
enum class DataMessageType {
// Application data buffer with the binary bit unset.
@@ -379,12 +392,18 @@
// A newly registered observer will be called back with the latest recorded
// target rate, if available.
virtual void AddTargetTransferRateObserver(
- webrtc::TargetTransferRateObserver* observer);
+ TargetTransferRateObserver* observer);
// Removes an existing |observer| from observers. If observer was never
// registered, an error is logged and method does nothing.
virtual void RemoveTargetTransferRateObserver(
- webrtc::TargetTransferRateObserver* observer);
+ TargetTransferRateObserver* observer);
+
+ // Intended for receive side. AddRttObserver registers an observer to be
+ // called for each RTT measurement, typically once per ACK. Before media
+ // transport is destructed the observer must be unregistered.
+ virtual void AddRttObserver(MediaTransportRttObserver* observer);
+ virtual void RemoveRttObserver(MediaTransportRttObserver* observer);
// Returns the last known target transfer rate as reported to the above
// observers.