Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: webrtc/sdk/objc/Framework/Classes/RTCRtpCodecParameters.mm

Issue 2651883010: Adding C++ versions of currently spec'd "RtpParameters" structs. (Closed)
Patch Set: Update unit tests (due to switch from special-case values to rtc::Optional) Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
« no previous file with comments | « webrtc/sdk/android/src/jni/peerconnection_jni.cc ('k') | webrtc/sdk/objc/Framework/Classes/RTCRtpEncodingParameters.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698