Chromium Code Reviews| 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 b4a873847de5bda226a1c72d23a48b7eff97f1bb..cdc8c42aeca3354a4fd74f6ab27338f2494e1956 100644 |
| --- a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm |
| +++ b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm |
| @@ -127,8 +127,7 @@ void PeerConnectionDelegateAdapter::OnSignalingChange( |
| void PeerConnectionDelegateAdapter::OnAddStream( |
| rtc::scoped_refptr<MediaStreamInterface> stream) { |
| - RTCMediaStream *mediaStream = |
| - [[RTCMediaStream alloc] initWithNativeMediaStream:stream]; |
| + RTCMediaStream* mediaStream = GetOrCreateObjcStream(stream); |
| RTCPeerConnection *peer_connection = peer_connection_; |
| [peer_connection.delegate peerConnection:peer_connection |
| didAddStream:mediaStream]; |
| @@ -200,6 +199,36 @@ void PeerConnectionDelegateAdapter::OnIceCandidatesRemoved( |
| didRemoveIceCandidates:ice_candidates]; |
| } |
| +void PeerConnectionDelegateAdapter::OnAddTrack( |
| + rtc::scoped_refptr<RtpReceiverInterface> receiver, |
| + std::vector<rtc::scoped_refptr<MediaStreamInterface>> streams) { |
| + RTCRtpReceiver* rtpReceiver = |
|
tkchin_webrtc
2016/11/22 20:41:34
* on right
RTCRtpReceiver *rtpReceiver
here and e
Zhi Huang
2016/11/22 23:38:42
Done.
|
| + [[RTCRtpReceiver alloc] initWithNativeRtpReceiver:receiver]; |
| + NSMutableArray* mediaStreams = |
| + [NSMutableArray arrayWithCapacity:streams.size()]; |
| + for (const auto stream : streams) { |
| + RTCMediaStream* mediaStream = GetOrCreateObjcStream(stream); |
| + [mediaStreams addObject:mediaStream]; |
| + } |
| + RTCPeerConnection* peer_connection = peer_connection_; |
| + [peer_connection.delegate peerConnection:peer_connection |
| + didAddTrack:rtpReceiver |
| + attachedStreams:mediaStreams]; |
| +} |
| + |
| +RTCMediaStream* PeerConnectionDelegateAdapter::GetOrCreateObjcStream( |
|
tkchin_webrtc
2016/11/22 20:41:34
I'd suggest placing these streams refs on peerconn
Zhi Huang
2016/11/22 23:38:42
Ah, yes. This is a good point.
Done.
|
| + rtc::scoped_refptr<MediaStreamInterface> stream) { |
| + RTCMediaStream* mediaStream = |
| + nativeToObjcMediaStream_[[NSNumber numberWithLong:(long)stream.get()]]; |
| + if (!mediaStream) { |
| + mediaStream = |
| + [[RTCMediaStream alloc] initWithNativeMediaStream:stream.get()]; |
| + nativeToObjcMediaStream_[[NSNumber numberWithLong:(long)stream.get()]] = |
| + mediaStream; |
| + } |
| + return mediaStream; |
| +} |
| + |
| } // namespace webrtc |