webrtc_m130/sdk/objc/api/peerconnection/RTCVideoCodecInfo+Private.mm
Boris Tsirkin 536c19a64d Format /sdk/objc/api folder
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}
2025-01-08 08:20:49 -08:00

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