Index: webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm |
index de7608c3b9941dd1acffc6b8e8dc0d5c52211379..b08a76c9337c8da75c7fb7fa5a99b724b142f752 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm |
@@ -200,6 +200,28 @@ void PeerConnectionDelegateAdapter::OnIceCandidatesRemoved( |
didRemoveIceCandidates:ice_candidates]; |
} |
+void PeerConnectionDelegateAdapter::OnAddTrack( |
+ rtc::scoped_refptr<RtpReceiverInterface> receiver, |
+ const std::vector<rtc::scoped_refptr<MediaStreamInterface>>& streams) { |
+ RTCRtpReceiver* rtpReceiver = |
+ [[RTCRtpReceiver alloc] initWithNativeRtpReceiver:receiver]; |
+ NSMutableArray* mediaStreams = |
+ [NSMutableArray arrayWithCapacity:streams.size()]; |
+ |
+ RTCPeerConnection* peer_connection = peer_connection_; |
+ for (const auto stream : streams) { |
+ RTCMediaStream *mediaStream = |
+ [[RTCMediaStream alloc] initWithNativeMediaStream:stream]; |
+ [mediaStreams addObject:mediaStream]; |
+ } |
+ if ([peer_connection.delegate |
+ respondsToSelector:@selector(peerConnection:didAddTrack:streams:)]) { |
+ [peer_connection.delegate peerConnection:peer_connection |
+ didAddTrack:rtpReceiver |
+ streams:mediaStreams]; |
+ } |
+} |
+ |
} // namespace webrtc |