From 415920b0539ee3281f48f7f1c72681321b8fe4ef Mon Sep 17 00:00:00 2001 From: Yura Yaroshevich Date: Thu, 22 Feb 2018 13:55:22 +0300 Subject: [PATCH] Return correct subtype from RTCRtpSender/Receiver track. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:8915 Change-Id: Iaa004d5d3e055cdaa08daf57b662b6711ead681d Reviewed-on: https://webrtc-review.googlesource.com/56661 Reviewed-by: Kári Helgason Commit-Queue: Kári Helgason Cr-Commit-Position: refs/heads/master@{#22155} --- .../PeerConnection/RTCMediaStreamTrack+Private.h | 3 +++ .../PeerConnection/RTCMediaStreamTrack.mm | 16 ++++++++++++++++ .../Classes/PeerConnection/RTCRtpReceiver.mm | 2 +- .../Classes/PeerConnection/RTCRtpSender.mm | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) 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; }