| Index: webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
|
| diff --git a/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc b/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
|
| index 5daf7be30469ce75b87b683fa7d8c8e2f9e21d20..3b48131a754e7f33ce8ded0d5cb259e584d7ae93 100644
|
| --- a/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
|
| +++ b/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
|
| @@ -13,6 +13,7 @@
|
| #include <algorithm>
|
| #include <memory>
|
| #include <limits>
|
| +#include <utility>
|
|
|
| namespace webrtc {
|
|
|
| @@ -35,6 +36,20 @@ std::unique_ptr<CNG_enc_inst, CngInstDeleter> CreateCngInst(
|
|
|
| } // namespace
|
|
|
| +AudioEncoderCng::Config::Config() = default;
|
| +
|
| +// TODO(kwiberg): =default this when Visual Studio learns to handle it.
|
| +AudioEncoderCng::Config::Config(Config&& c)
|
| + : num_channels(c.num_channels),
|
| + payload_type(c.payload_type),
|
| + speech_encoder(std::move(c.speech_encoder)),
|
| + vad_mode(c.vad_mode),
|
| + sid_frame_interval_ms(c.sid_frame_interval_ms),
|
| + num_cng_coefficients(c.num_cng_coefficients),
|
| + vad(c.vad) {}
|
| +
|
| +AudioEncoderCng::Config::~Config() = default;
|
| +
|
| bool AudioEncoderCng::Config::IsOk() const {
|
| if (num_channels != 1)
|
| return false;
|
| @@ -51,15 +66,16 @@ bool AudioEncoderCng::Config::IsOk() const {
|
| return true;
|
| }
|
|
|
| -AudioEncoderCng::AudioEncoderCng(const Config& config)
|
| - : speech_encoder_(config.speech_encoder),
|
| +AudioEncoderCng::AudioEncoderCng(Config&& config)
|
| + : speech_encoder_(
|
| + ([&] { RTC_CHECK(config.IsOk()) << "Invalid configuration."; }(),
|
| + std::move(config.speech_encoder))),
|
| cng_payload_type_(config.payload_type),
|
| num_cng_coefficients_(config.num_cng_coefficients),
|
| sid_frame_interval_ms_(config.sid_frame_interval_ms),
|
| last_frame_active_(true),
|
| vad_(config.vad ? std::unique_ptr<Vad>(config.vad)
|
| : CreateVad(config.vad_mode)) {
|
| - RTC_CHECK(config.IsOk()) << "Invalid configuration.";
|
| cng_inst_ = CreateCngInst(SampleRateHz(), sid_frame_interval_ms_,
|
| num_cng_coefficients_);
|
| }
|
|
|