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:
@ -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
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user