There are a lot of changes in /sdk so I'm splitting it Formatting done via: git ls-files | grep -E '^sdk\/objc\/api\/.*\.(h|cc|mm)' | xargs clang-format -i No-Iwyu: Includes didn't change and it isn't related to formatting Bug: webrtc:42225392 Change-Id: Ieebcd026e77db31f94df2b5dd5cd18ccc4f06674 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/373883 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43682}
65 lines
2.2 KiB
Plaintext
65 lines
2.2 KiB
Plaintext
/*
|
|
* Copyright 2017 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#import "RTCVideoCodecInfo+Private.h"
|
|
|
|
#include "api/video_codecs/scalability_mode.h"
|
|
#include "api/video_codecs/scalability_mode_helper.h"
|
|
#import "helpers/NSString+StdString.h"
|
|
|
|
@implementation RTC_OBJC_TYPE (RTCVideoCodecInfo)
|
|
(Private)
|
|
|
|
- (instancetype)initWithNativeSdpVideoFormat
|
|
: (webrtc::SdpVideoFormat)format {
|
|
NSMutableDictionary* params = [NSMutableDictionary dictionary];
|
|
for (const auto& [key, value] : format.parameters) {
|
|
[params setObject:[NSString stringForStdString:value]
|
|
forKey:[NSString stringForStdString:key]];
|
|
}
|
|
|
|
NSMutableArray<NSString*>* scalabilityModes =
|
|
[NSMutableArray arrayWithCapacity:format.scalability_modes.size()];
|
|
for (webrtc::ScalabilityMode mode : format.scalability_modes) {
|
|
[scalabilityModes
|
|
addObject:[NSString
|
|
stringForAbslStringView:ScalabilityModeToString(mode)]];
|
|
}
|
|
|
|
return [self initWithName:[NSString stringForStdString:format.name]
|
|
parameters:params
|
|
scalabilityModes:scalabilityModes];
|
|
}
|
|
|
|
- (webrtc::SdpVideoFormat)nativeSdpVideoFormat {
|
|
std::map<std::string, std::string> parameters;
|
|
for (NSString* paramKey in self.parameters.allKeys) {
|
|
std::string key = [NSString stdStringForString:paramKey];
|
|
std::string value = [NSString stdStringForString:self.parameters[paramKey]];
|
|
parameters[key] = value;
|
|
}
|
|
|
|
absl::InlinedVector<webrtc::ScalabilityMode, webrtc::kScalabilityModeCount>
|
|
scalability_modes;
|
|
for (NSString* mode_name in self.scalabilityModes) {
|
|
std::optional<webrtc::ScalabilityMode> mode =
|
|
webrtc::ScalabilityModeStringToEnum(
|
|
[NSString stdStringForString:mode_name]);
|
|
if (mode.has_value()) {
|
|
scalability_modes.push_back(*mode);
|
|
}
|
|
}
|
|
|
|
return webrtc::SdpVideoFormat(
|
|
[NSString stdStringForString:self.name], parameters, scalability_modes);
|
|
}
|
|
|
|
@end
|