Make a friendlier RTCVideoCodecInfo initializer for when only name and

parameters are interesting.

Since this is used by users when implementing injectable Obj-C video
codecs, the API where the unused payload is required is unnecessarily
confusing. Also make the codec parameters optional.

BUG=None

Review-Url: https://codereview.webrtc.org/3001183002
Cr-Commit-Position: refs/heads/master@{#19411}
This commit is contained in:
andersc
2017-08-18 06:34:09 -07:00
committed by Commit Bot
parent 3042c2d5e0
commit 81bc523f5d
6 changed files with 27 additions and 19 deletions

View File

@ -49,6 +49,9 @@ NS_ASSUME_NONNULL_BEGIN
@interface RTCVideoCodecInfo ()
- (instancetype)initWithNativeVideoCodec:(cricket::VideoCodec)videoCodec;
- (instancetype)initWithPayload:(NSInteger)payload
name:(NSString *)name
parameters:(NSDictionary<NSString *, NSString *> *)parameters;
- (cricket::VideoCodec)nativeVideoCodec;
@end

View File

@ -20,13 +20,12 @@
@synthesize name = _name;
@synthesize parameters = _parameters;
- (instancetype)initWithPayload:(NSInteger)payload
name:(NSString *)name
parameters:(NSDictionary<NSString *, NSString *> *)parameters {
- (instancetype)initWithName:(NSString *)name
parameters:(nullable NSDictionary<NSString *, NSString *> *)parameters {
if (self = [super init]) {
_payload = payload;
_payload = 0;
_name = name;
_parameters = parameters;
_parameters = (parameters ? parameters : @{});
}
return self;
@ -43,6 +42,16 @@
parameters:params];
}
- (instancetype)initWithPayload:(NSInteger)payload
name:(NSString *)name
parameters:(NSDictionary<NSString *, NSString *> *)parameters {
if (self = [self initWithName:name parameters:parameters]) {
_payload = payload;
}
return self;
}
- (cricket::VideoCodec)nativeVideoCodec {
cricket::VideoCodec codec([NSString stdStringForString:_name]);
for (NSString *paramKey in _parameters.allKeys) {

View File

@ -58,9 +58,7 @@ bool IsHighProfileEnabled() {
@"packetization-mode" : @"1",
};
RTCVideoCodecInfo *constrainedHighInfo =
[[RTCVideoCodecInfo alloc] initWithPayload:0
name:codecName
parameters:constrainedHighParams];
[[RTCVideoCodecInfo alloc] initWithName:codecName parameters:constrainedHighParams];
[codecs addObject:constrainedHighInfo];
}
@ -70,9 +68,7 @@ bool IsHighProfileEnabled() {
@"packetization-mode" : @"1",
};
RTCVideoCodecInfo *constrainedBaselineInfo =
[[RTCVideoCodecInfo alloc] initWithPayload:0
name:codecName
parameters:constrainedBaselineParams];
[[RTCVideoCodecInfo alloc] initWithName:codecName parameters:constrainedBaselineParams];
[codecs addObject:constrainedBaselineInfo];
return [codecs copy];
@ -93,7 +89,7 @@ bool IsHighProfileEnabled() {
- (NSArray<RTCVideoCodecInfo *> *)supportedCodecs {
NSString *codecName = [NSString stringWithUTF8String:cricket::kH264CodecName];
return @[ [[RTCVideoCodecInfo alloc] initWithPayload:0 name:codecName parameters:@{}] ];
return @[ [[RTCVideoCodecInfo alloc] initWithName:codecName parameters:nil] ];
}
@end