Added OnAddTrack to Objective C SDK.

Exposed native OnAddTrack event in Objective C SDK
peer connection delegate via
peerConnection:didAddReceiver:streams:

Bug: webrtc:6112
Change-Id: Iccf33ab7844c9a774a6b54e49de011d100998f03
Reviewed-on: https://webrtc-review.googlesource.com/56980
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22253}
This commit is contained in:
Yura Yaroshevich
2018-02-28 21:06:34 +03:00
committed by Commit Bot
parent 832b1c80d4
commit 546d7f98a5
3 changed files with 28 additions and 0 deletions

View File

@ -51,6 +51,9 @@ class PeerConnectionDelegateAdapter : public PeerConnectionObserver {
void OnIceCandidatesRemoved(
const std::vector<cricket::Candidate>& candidates) override;
void OnAddTrack(rtc::scoped_refptr<RtpReceiverInterface> receiver,
const std::vector<rtc::scoped_refptr<MediaStreamInterface>>& streams) override;
private:
__weak RTCPeerConnection *peer_connection_;
};

View File

@ -215,6 +215,25 @@ void PeerConnectionDelegateAdapter::OnIceCandidatesRemoved(
didRemoveIceCandidates:ice_candidates];
}
void PeerConnectionDelegateAdapter::OnAddTrack(
rtc::scoped_refptr<RtpReceiverInterface> receiver,
const std::vector<rtc::scoped_refptr<MediaStreamInterface>>& streams) {
RTCPeerConnection *peer_connection = peer_connection_;
if ([peer_connection.delegate
respondsToSelector:@selector(peerConnection:didAddReceiver:streams:)]) {
NSMutableArray *mediaStreams = [NSMutableArray arrayWithCapacity:streams.size()];
for (const auto& nativeStream : streams) {
RTCMediaStream *mediaStream = [[RTCMediaStream alloc] initWithNativeMediaStream:nativeStream];
[mediaStreams addObject:mediaStream];
}
RTCRtpReceiver *rtpReceiver = [[RTCRtpReceiver alloc] initWithNativeRtpReceiver:receiver];
[peer_connection.delegate peerConnection:peer_connection
didAddReceiver:rtpReceiver
streams:mediaStreams];
}
}
} // namespace webrtc