Chromium Code Reviews| Index: third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h |
| diff --git a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h |
| index e1e4e1e9af3987896e1ae6603ec836ba06090a93..7c4a5878f1c46d25565f5362ae46c92ed79842f0 100644 |
| --- a/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h |
| +++ b/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h |
| @@ -41,6 +41,7 @@ |
| #include "modules/peerconnection/RTCIceCandidate.h" |
| #include "platform/AsyncMethodRunner.h" |
| #include "platform/WebFrameScheduler.h" |
| +#include "platform/heap/HeapAllocator.h" |
| #include "public/platform/WebMediaConstraints.h" |
| #include "public/platform/WebRTCPeerConnectionHandler.h" |
| #include "public/platform/WebRTCPeerConnectionHandlerClient.h" |
| @@ -55,6 +56,7 @@ class RTCDataChannel; |
| class RTCIceCandidateInitOrRTCIceCandidate; |
| class RTCOfferOptions; |
| class RTCPeerConnectionErrorCallback; |
| +class RTCRtpReceiver; |
| class RTCSessionDescription; |
| class RTCSessionDescriptionCallback; |
| class RTCSessionDescriptionInit; |
| @@ -147,6 +149,8 @@ class RTCPeerConnection final : public EventTargetWithInlineData, |
| MediaStreamTrack* selector = nullptr); |
| ScriptPromise getStats(ScriptState*); |
| + HeapVector<Member<RTCRtpReceiver>> getReceivers(); |
| + |
| RTCDataChannel* createDataChannel(ScriptState*, |
| String label, |
| const Dictionary& dataChannelDict, |
| @@ -223,6 +227,11 @@ class RTCPeerConnection final : public EventTargetWithInlineData, |
| void scheduleDispatchEvent(Event*, std::unique_ptr<BoolFunction>); |
| void dispatchScheduledEvent(); |
| bool hasLocalStreamWithTrackId(const String& trackId); |
| + MediaStreamTrack* getRemoteTrackById(const String& trackId) const; |
| + // Receivers returned by the handler are in use by the peer connection, a |
| + // receiver that is no longer in use is permanently inactive and does not need |
| + // to be referenced anymore. Removes such receivers from |m_rtpReceivers|. |
| + void removeInactiveReceivers(); |
| void changeSignalingState(WebRTCPeerConnectionHandlerClient::SignalingState); |
| void changeIceGatheringState( |
| @@ -244,8 +253,12 @@ class RTCPeerConnection final : public EventTargetWithInlineData, |
| ICEGatheringState m_iceGatheringState; |
| ICEConnectionState m_iceConnectionState; |
| + // TODO(hbos): Move away from "addStream" and "removeStream" in favor of |
| + // "addTrack" and "removeTrack". Update tracks, senders and receivers on |
| + // relevant events. |
|
Guido Urdaneta
2017/03/27 17:12:23
crbug.com reference?
hbos_chromium
2017/03/28 10:12:55
Done.
|
| MediaStreamVector m_localStreams; |
| MediaStreamVector m_remoteStreams; |
| + HeapHashMap<uintptr_t, Member<RTCRtpReceiver>> m_rtpReceivers; |
| std::unique_ptr<WebRTCPeerConnectionHandler> m_peerHandler; |