| 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;
|
| }
|
|
|
|
|