Index: webrtc/api/rtpreceiverinterface.h |
diff --git a/webrtc/api/rtpreceiverinterface.h b/webrtc/api/rtpreceiverinterface.h |
index 4943023111b5b4261baecdab6d23e9d9bb7d974e..53a37398cfc9222c6c6528640920fb619d728a1f 100644 |
--- a/webrtc/api/rtpreceiverinterface.h |
+++ b/webrtc/api/rtpreceiverinterface.h |
@@ -18,6 +18,7 @@ |
#include "webrtc/api/mediastreaminterface.h" |
#include "webrtc/api/proxy.h" |
+#include "webrtc/api/rtpparameters.h" |
#include "webrtc/base/refcount.h" |
#include "webrtc/base/scoped_ref_ptr.h" |
#include "webrtc/pc/mediasession.h" |
@@ -26,6 +27,12 @@ namespace webrtc { |
class RtpReceiverObserverInterface { |
public: |
+ // Note: Currently if there are multiple RtpReceivers of the same media type, |
+ // they will all call OnFirstPacketReceived at once. |
+ // |
+ // In the future, it's likely that an RtpReceiver will only call |
+ // OnFirstPacketReceived when a packet is received specifically for its |
+ // SSRC/mid. |
virtual void OnFirstPacketReceived(cricket::MediaType media_type) = 0; |
protected: |
@@ -36,6 +43,9 @@ class RtpReceiverInterface : public rtc::RefCountInterface { |
public: |
virtual rtc::scoped_refptr<MediaStreamTrackInterface> track() const = 0; |
+ // Audio or video receiver? |
+ virtual cricket::MediaType media_type() const = 0; |
+ |
// Not to be confused with "mid", this is a field we can temporarily use |
// to uniquely identify a receiver until we implement Unified Plan SDP. |
virtual std::string id() const = 0; |
@@ -46,10 +56,10 @@ class RtpReceiverInterface : public rtc::RefCountInterface { |
virtual RtpParameters GetParameters() const = 0; |
virtual bool SetParameters(const RtpParameters& parameters) = 0; |
+ // Does not take ownership of observer. |
+ // Must call SetObserver(nullptr) before the observer is destroyed. |
virtual void SetObserver(RtpReceiverObserverInterface* observer) = 0; |
- virtual cricket::MediaType media_type() = 0; |
- |
protected: |
virtual ~RtpReceiverInterface() {} |
}; |
@@ -57,11 +67,11 @@ class RtpReceiverInterface : public rtc::RefCountInterface { |
// Define proxy for RtpReceiverInterface. |
BEGIN_SIGNALING_PROXY_MAP(RtpReceiver) |
PROXY_CONSTMETHOD0(rtc::scoped_refptr<MediaStreamTrackInterface>, track) |
+PROXY_CONSTMETHOD0(cricket::MediaType, media_type) |
PROXY_CONSTMETHOD0(std::string, id) |
PROXY_CONSTMETHOD0(RtpParameters, GetParameters); |
PROXY_METHOD1(bool, SetParameters, const RtpParameters&) |
PROXY_METHOD1(void, SetObserver, RtpReceiverObserverInterface*); |
-PROXY_METHOD0(cricket::MediaType, media_type); |
END_SIGNALING_PROXY() |
} // namespace webrtc |