Index: webrtc/sdk/objc/Framework/Classes/RTCRtpCodecParameters.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/RTCRtpCodecParameters.mm b/webrtc/sdk/objc/Framework/Classes/RTCRtpCodecParameters.mm |
index 40f4f251bf232d9fee86ae4c727ddb0b0b95cab7..90529c8636d3f90d8f00545e407708e7c9b71cfe 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/RTCRtpCodecParameters.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/RTCRtpCodecParameters.mm |
@@ -11,33 +11,36 @@ |
#import "RTCRtpCodecParameters+Private.h" |
#import "NSString+StdString.h" |
+#import "WebRTC/RTCMediaStreamTrack.h" // For "kind" strings. |
+#include "webrtc/base/checks.h" |
#include "webrtc/media/base/mediaconstants.h" |
-const NSString * const kRTCRtxCodecMimeType = @(cricket::kRtxCodecName); |
-const NSString * const kRTCRedCodecMimeType = @(cricket::kRedCodecName); |
-const NSString * const kRTCUlpfecCodecMimeType = @(cricket::kUlpfecCodecName); |
-const NSString * const kRTCFlexfecCodecMimeType = @(cricket::kFlexfecCodecName); |
-const NSString * const kRTCOpusCodecMimeType = @(cricket::kOpusCodecName); |
-const NSString * const kRTCIsacCodecMimeType = @(cricket::kIsacCodecName); |
-const NSString * const kRTCL16CodecMimeType = @(cricket::kL16CodecName); |
-const NSString * const kRTCG722CodecMimeType = @(cricket::kG722CodecName); |
-const NSString * const kRTCIlbcCodecMimeType = @(cricket::kIlbcCodecName); |
-const NSString * const kRTCPcmuCodecMimeType = @(cricket::kPcmuCodecName); |
-const NSString * const kRTCPcmaCodecMimeType = @(cricket::kPcmaCodecName); |
-const NSString * const kRTCDtmfCodecMimeType = @(cricket::kDtmfCodecName); |
-const NSString * const kRTCComfortNoiseCodecMimeType = |
+const NSString * const kRTCRtxCodecName = @(cricket::kRtxCodecName); |
+const NSString * const kRTCRedCodecName = @(cricket::kRedCodecName); |
+const NSString * const kRTCUlpfecCodecName = @(cricket::kUlpfecCodecName); |
+const NSString * const kRTCFlexfecCodecName = @(cricket::kFlexfecCodecName); |
+const NSString * const kRTCOpusCodecName = @(cricket::kOpusCodecName); |
+const NSString * const kRTCIsacCodecName = @(cricket::kIsacCodecName); |
+const NSString * const kRTCL16CodecName = @(cricket::kL16CodecName); |
+const NSString * const kRTCG722CodecName = @(cricket::kG722CodecName); |
+const NSString * const kRTCIlbcCodecName = @(cricket::kIlbcCodecName); |
+const NSString * const kRTCPcmuCodecName = @(cricket::kPcmuCodecName); |
+const NSString * const kRTCPcmaCodecName = @(cricket::kPcmaCodecName); |
+const NSString * const kRTCDtmfCodecName = @(cricket::kDtmfCodecName); |
+const NSString * const kRTCComfortNoiseCodecName = |
@(cricket::kComfortNoiseCodecName); |
-const NSString * const kVp8CodecMimeType = @(cricket::kVp8CodecName); |
-const NSString * const kVp9CodecMimeType = @(cricket::kVp9CodecName); |
-const NSString * const kH264CodecMimeType = @(cricket::kH264CodecName); |
+const NSString * const kVp8CodecName = @(cricket::kVp8CodecName); |
+const NSString * const kVp9CodecName = @(cricket::kVp9CodecName); |
+const NSString * const kH264CodecName = @(cricket::kH264CodecName); |
@implementation RTCRtpCodecParameters |
@synthesize payloadType = _payloadType; |
-@synthesize mimeType = _mimeType; |
+@synthesize name = _name; |
+@synthesize kind = _kind; |
@synthesize clockRate = _clockRate; |
-@synthesize channels = _channels; |
+@synthesize numChannels = _numChannels; |
- (instancetype)init { |
return [super init]; |
@@ -47,9 +50,24 @@ const NSString * const kH264CodecMimeType = @(cricket::kH264CodecName); |
(const webrtc::RtpCodecParameters &)nativeParameters { |
if (self = [self init]) { |
_payloadType = nativeParameters.payload_type; |
- _mimeType = [NSString stringForStdString:nativeParameters.mime_type]; |
- _clockRate = nativeParameters.clock_rate; |
- _channels = nativeParameters.channels; |
+ _name = [NSString stringForStdString:nativeParameters.name]; |
+ switch (nativeParameters.kind) { |
+ case cricket::MEDIA_TYPE_AUDIO: |
+ _kind = kRTCMediaStreamTrackKindAudio; |
+ break; |
+ case cricket::MEDIA_TYPE_VIDEO: |
+ _kind = kRTCMediaStreamTrackKindVideo; |
+ break; |
+ case cricket::MEDIA_TYPE_DATA: |
+ RTC_NOTREACHED(); |
+ break; |
+ } |
+ if (nativeParameters.clock_rate) { |
+ _clockRate = [NSNumber numberWithInt:*nativeParameters.clock_rate]; |
+ } |
+ if (nativeParameters.num_channels) { |
+ _numChannels = [NSNumber numberWithInt:*nativeParameters.num_channels]; |
+ } |
} |
return self; |
} |
@@ -57,9 +75,22 @@ const NSString * const kH264CodecMimeType = @(cricket::kH264CodecName); |
- (webrtc::RtpCodecParameters)nativeParameters { |
webrtc::RtpCodecParameters parameters; |
parameters.payload_type = _payloadType; |
- parameters.mime_type = [NSString stdStringForString:_mimeType]; |
- parameters.clock_rate = _clockRate; |
- parameters.channels = _channels; |
+ parameters.name = [NSString stdStringForString:_name]; |
+ // NSString pointer comparison is safe here since "kind" is readonly and only |
+ // populated above. |
+ if (_kind == kRTCMediaStreamTrackKindAudio) { |
+ parameters.kind = cricket::MEDIA_TYPE_AUDIO; |
+ } else if (_kind == kRTCMediaStreamTrackKindVideo) { |
+ parameters.kind = cricket::MEDIA_TYPE_VIDEO; |
+ } else { |
+ RTC_NOTREACHED(); |
+ } |
+ if (_clockRate != nil) { |
+ parameters.clock_rate = rtc::Optional<int>(_clockRate.intValue); |
+ } |
+ if (_numChannels != nil) { |
+ parameters.num_channels = rtc::Optional<int>(_numChannels.intValue); |
+ } |
return parameters; |
} |