1*d9f75844SAndroid Build Coastguard Worker /* 2*d9f75844SAndroid Build Coastguard Worker * Copyright 2020 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 #include "call/adaptation/encoder_settings.h" 12*d9f75844SAndroid Build Coastguard Worker 13*d9f75844SAndroid Build Coastguard Worker #include <utility> 14*d9f75844SAndroid Build Coastguard Worker 15*d9f75844SAndroid Build Coastguard Worker namespace webrtc { 16*d9f75844SAndroid Build Coastguard Worker EncoderSettings(VideoEncoder::EncoderInfo encoder_info,VideoEncoderConfig encoder_config,VideoCodec video_codec)17*d9f75844SAndroid Build Coastguard WorkerEncoderSettings::EncoderSettings(VideoEncoder::EncoderInfo encoder_info, 18*d9f75844SAndroid Build Coastguard Worker VideoEncoderConfig encoder_config, 19*d9f75844SAndroid Build Coastguard Worker VideoCodec video_codec) 20*d9f75844SAndroid Build Coastguard Worker : encoder_info_(std::move(encoder_info)), 21*d9f75844SAndroid Build Coastguard Worker encoder_config_(std::move(encoder_config)), 22*d9f75844SAndroid Build Coastguard Worker video_codec_(std::move(video_codec)) {} 23*d9f75844SAndroid Build Coastguard Worker EncoderSettings(const EncoderSettings & other)24*d9f75844SAndroid Build Coastguard WorkerEncoderSettings::EncoderSettings(const EncoderSettings& other) 25*d9f75844SAndroid Build Coastguard Worker : encoder_info_(other.encoder_info_), 26*d9f75844SAndroid Build Coastguard Worker encoder_config_(other.encoder_config_.Copy()), 27*d9f75844SAndroid Build Coastguard Worker video_codec_(other.video_codec_) {} 28*d9f75844SAndroid Build Coastguard Worker operator =(const EncoderSettings & other)29*d9f75844SAndroid Build Coastguard WorkerEncoderSettings& EncoderSettings::operator=(const EncoderSettings& other) { 30*d9f75844SAndroid Build Coastguard Worker encoder_info_ = other.encoder_info_; 31*d9f75844SAndroid Build Coastguard Worker encoder_config_ = other.encoder_config_.Copy(); 32*d9f75844SAndroid Build Coastguard Worker video_codec_ = other.video_codec_; 33*d9f75844SAndroid Build Coastguard Worker return *this; 34*d9f75844SAndroid Build Coastguard Worker } 35*d9f75844SAndroid Build Coastguard Worker encoder_info() const36*d9f75844SAndroid Build Coastguard Workerconst VideoEncoder::EncoderInfo& EncoderSettings::encoder_info() const { 37*d9f75844SAndroid Build Coastguard Worker return encoder_info_; 38*d9f75844SAndroid Build Coastguard Worker } 39*d9f75844SAndroid Build Coastguard Worker encoder_config() const40*d9f75844SAndroid Build Coastguard Workerconst VideoEncoderConfig& EncoderSettings::encoder_config() const { 41*d9f75844SAndroid Build Coastguard Worker return encoder_config_; 42*d9f75844SAndroid Build Coastguard Worker } 43*d9f75844SAndroid Build Coastguard Worker video_codec() const44*d9f75844SAndroid Build Coastguard Workerconst VideoCodec& EncoderSettings::video_codec() const { 45*d9f75844SAndroid Build Coastguard Worker return video_codec_; 46*d9f75844SAndroid Build Coastguard Worker } 47*d9f75844SAndroid Build Coastguard Worker GetVideoCodecTypeOrGeneric(const absl::optional<EncoderSettings> & settings)48*d9f75844SAndroid Build Coastguard WorkerVideoCodecType GetVideoCodecTypeOrGeneric( 49*d9f75844SAndroid Build Coastguard Worker const absl::optional<EncoderSettings>& settings) { 50*d9f75844SAndroid Build Coastguard Worker return settings.has_value() ? settings->encoder_config().codec_type 51*d9f75844SAndroid Build Coastguard Worker : kVideoCodecGeneric; 52*d9f75844SAndroid Build Coastguard Worker } 53*d9f75844SAndroid Build Coastguard Worker 54*d9f75844SAndroid Build Coastguard Worker } // namespace webrtc 55