xref: /aosp_15_r20/external/webrtc/sdk/objc/api/peerconnection/RTCVideoEncoderSettings+Private.mm (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker/*
2*d9f75844SAndroid Build Coastguard Worker *  Copyright 2017 The WebRTC project authors. All Rights Reserved.
3*d9f75844SAndroid Build Coastguard Worker *
4*d9f75844SAndroid Build Coastguard Worker *  Use of this source code is governed by a BSD-style license
5*d9f75844SAndroid Build Coastguard Worker *  that can be found in the LICENSE file in the root of the source
6*d9f75844SAndroid Build Coastguard Worker *  tree. An additional intellectual property rights grant can be found
7*d9f75844SAndroid Build Coastguard Worker *  in the file PATENTS.  All contributing project authors may
8*d9f75844SAndroid Build Coastguard Worker *  be found in the AUTHORS file in the root of the source tree.
9*d9f75844SAndroid Build Coastguard Worker */
10*d9f75844SAndroid Build Coastguard Worker
11*d9f75844SAndroid Build Coastguard Worker#import "RTCVideoEncoderSettings+Private.h"
12*d9f75844SAndroid Build Coastguard Worker
13*d9f75844SAndroid Build Coastguard Worker#import "helpers/NSString+StdString.h"
14*d9f75844SAndroid Build Coastguard Worker
15*d9f75844SAndroid Build Coastguard Worker@implementation RTC_OBJC_TYPE (RTCVideoEncoderSettings)
16*d9f75844SAndroid Build Coastguard Worker(Private)
17*d9f75844SAndroid Build Coastguard Worker
18*d9f75844SAndroid Build Coastguard Worker    - (instancetype)initWithNativeVideoCodec : (const webrtc::VideoCodec *)videoCodec {
19*d9f75844SAndroid Build Coastguard Worker  if (self = [super init]) {
20*d9f75844SAndroid Build Coastguard Worker    if (videoCodec) {
21*d9f75844SAndroid Build Coastguard Worker      const char *codecName = CodecTypeToPayloadString(videoCodec->codecType);
22*d9f75844SAndroid Build Coastguard Worker      self.name = [NSString stringWithUTF8String:codecName];
23*d9f75844SAndroid Build Coastguard Worker
24*d9f75844SAndroid Build Coastguard Worker      self.width = videoCodec->width;
25*d9f75844SAndroid Build Coastguard Worker      self.height = videoCodec->height;
26*d9f75844SAndroid Build Coastguard Worker      self.startBitrate = videoCodec->startBitrate;
27*d9f75844SAndroid Build Coastguard Worker      self.maxBitrate = videoCodec->maxBitrate;
28*d9f75844SAndroid Build Coastguard Worker      self.minBitrate = videoCodec->minBitrate;
29*d9f75844SAndroid Build Coastguard Worker      self.maxFramerate = videoCodec->maxFramerate;
30*d9f75844SAndroid Build Coastguard Worker      self.qpMax = videoCodec->qpMax;
31*d9f75844SAndroid Build Coastguard Worker      self.mode = (RTCVideoCodecMode)videoCodec->mode;
32*d9f75844SAndroid Build Coastguard Worker    }
33*d9f75844SAndroid Build Coastguard Worker  }
34*d9f75844SAndroid Build Coastguard Worker
35*d9f75844SAndroid Build Coastguard Worker  return self;
36*d9f75844SAndroid Build Coastguard Worker}
37*d9f75844SAndroid Build Coastguard Worker
38*d9f75844SAndroid Build Coastguard Worker- (webrtc::VideoCodec)nativeVideoCodec {
39*d9f75844SAndroid Build Coastguard Worker  webrtc::VideoCodec videoCodec;
40*d9f75844SAndroid Build Coastguard Worker  videoCodec.width = self.width;
41*d9f75844SAndroid Build Coastguard Worker  videoCodec.height = self.height;
42*d9f75844SAndroid Build Coastguard Worker  videoCodec.startBitrate = self.startBitrate;
43*d9f75844SAndroid Build Coastguard Worker  videoCodec.maxBitrate = self.maxBitrate;
44*d9f75844SAndroid Build Coastguard Worker  videoCodec.minBitrate = self.minBitrate;
45*d9f75844SAndroid Build Coastguard Worker  videoCodec.maxBitrate = self.maxBitrate;
46*d9f75844SAndroid Build Coastguard Worker  videoCodec.qpMax = self.qpMax;
47*d9f75844SAndroid Build Coastguard Worker  videoCodec.mode = (webrtc::VideoCodecMode)self.mode;
48*d9f75844SAndroid Build Coastguard Worker
49*d9f75844SAndroid Build Coastguard Worker  return videoCodec;
50*d9f75844SAndroid Build Coastguard Worker}
51*d9f75844SAndroid Build Coastguard Worker
52*d9f75844SAndroid Build Coastguard Worker@end
53