diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack+Private.h b/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack+Private.h index cb93f116f0..bcf7a5f0b0 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack+Private.h +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack+Private.h @@ -49,6 +49,9 @@ NS_ASSUME_NONNULL_BEGIN + (NSString *)stringForState:(RTCMediaStreamTrackState)state; ++ (RTCMediaStreamTrack *)mediaTrackForNativeTrack: + (rtc::scoped_refptr)nativeTrack; + @end NS_ASSUME_NONNULL_END diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack.mm index 208550f6c8..5c1b5a39ab 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack.mm +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack.mm @@ -8,7 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ +#import "RTCAudioTrack+Private.h" #import "RTCMediaStreamTrack+Private.h" +#import "RTCVideoTrack+Private.h" #import "NSString+StdString.h" @@ -134,4 +136,18 @@ NSString * const kRTCMediaStreamTrackKindVideo = } } ++ (RTCMediaStreamTrack *)mediaTrackForNativeTrack: + (rtc::scoped_refptr)nativeTrack { + NSParameterAssert(nativeTrack); + if (nativeTrack->kind() == webrtc::MediaStreamTrackInterface::kAudioKind) { + return + [[RTCAudioTrack alloc] initWithNativeTrack:nativeTrack type:RTCMediaStreamTrackTypeAudio]; + } else if (nativeTrack->kind() == webrtc::MediaStreamTrackInterface::kVideoKind) { + return + [[RTCVideoTrack alloc] initWithNativeTrack:nativeTrack type:RTCMediaStreamTrackTypeVideo]; + } else { + return [[RTCMediaStreamTrack alloc] initWithNativeTrack:nativeTrack]; + } +} + @end diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCRtpReceiver.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCRtpReceiver.mm index cb2771a29c..0677a9bf3f 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCRtpReceiver.mm +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCRtpReceiver.mm @@ -62,7 +62,7 @@ void RtpReceiverDelegateAdapter::OnFirstPacketReceived( rtc::scoped_refptr nativeTrack( _nativeRtpReceiver->track()); if (nativeTrack) { - return [[RTCMediaStreamTrack alloc] initWithNativeTrack:nativeTrack]; + return [RTCMediaStreamTrack mediaTrackForNativeTrack:nativeTrack]; } return nil; } diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCRtpSender.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCRtpSender.mm index ed007cf952..e980adec40 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCRtpSender.mm +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCRtpSender.mm @@ -44,7 +44,7 @@ rtc::scoped_refptr nativeTrack( _nativeRtpSender->track()); if (nativeTrack) { - return [[RTCMediaStreamTrack alloc] initWithNativeTrack:nativeTrack]; + return [RTCMediaStreamTrack mediaTrackForNativeTrack:nativeTrack]; } return nil; }