From 41f3a43c74dc30512dca755b8cfa45e2b6ff452c Mon Sep 17 00:00:00 2001 From: Fredrik Solenberg Date: Mon, 17 Dec 2018 21:02:22 +0100 Subject: [PATCH] Remove CodecInst pt.3 Finally remove CodecInst from common_types.h, including remaining code referencing it. TBR=kwiberg Bug: webrtc:7626 Change-Id: I5e6b949ae9093641e33972af8438d1126fc48556 Reviewed-on: https://webrtc-review.googlesource.com/c/114546 Commit-Queue: Fredrik Solenberg Reviewed-by: Oskar Sundbom Cr-Commit-Position: refs/heads/master@{#26036} --- common_types.h | 25 ------ media/base/h264_profile_level_id.cc | 1 + modules/audio_coding/BUILD.gn | 22 ----- .../codecs/audio_format_conversion.cc | 89 ------------------- .../codecs/audio_format_conversion.h | 24 ----- .../codecs/g711/audio_encoder_pcm.cc | 20 ----- .../codecs/g711/audio_encoder_pcm.h | 4 - .../codecs/g722/audio_encoder_g722.cc | 11 --- .../codecs/g722/audio_encoder_g722.h | 3 - .../codecs/ilbc/audio_encoder_ilbc.cc | 10 --- .../codecs/ilbc/audio_encoder_ilbc.h | 3 - .../codecs/isac/audio_encoder_isac_t.h | 5 -- .../codecs/isac/audio_encoder_isac_t_impl.h | 23 ----- .../codecs/opus/audio_encoder_opus.cc | 17 ---- .../codecs/opus/audio_encoder_opus.h | 5 -- .../opus/audio_encoder_opus_unittest.cc | 40 ++++----- .../codecs/pcm16b/audio_encoder_pcm16b.cc | 18 ---- .../codecs/pcm16b/audio_encoder_pcm16b.h | 3 - .../simulcast_rate_allocator_unittest.cc | 1 + pc/peerconnection.cc | 1 + 20 files changed, 21 insertions(+), 304 deletions(-) delete mode 100644 modules/audio_coding/codecs/audio_format_conversion.cc delete mode 100644 modules/audio_coding/codecs/audio_format_conversion.h diff --git a/common_types.h b/common_types.h index 848b899a0d..c6d4c948e0 100644 --- a/common_types.h +++ b/common_types.h @@ -14,12 +14,10 @@ #include // For size_t #include -#include "absl/strings/match.h" // TODO(sprang): Remove this include when all usage includes it directly. #include "api/video/video_bitrate_allocation.h" // TODO(bugs.webrtc.org/7660): Delete include once downstream code is updated. #include "api/video/video_codec_type.h" -#include "rtc_base/checks.h" #if defined(_MSC_VER) // Disable "new behavior: elements of array will be default initialized" @@ -158,29 +156,6 @@ class OverheadObserver { virtual void OnOverheadChanged(size_t overhead_bytes_per_packet) = 0; }; -// ================================================================== -// Voice specific types -// ================================================================== - -// Each codec supported can be described by this structure. -struct CodecInst { - int pltype; - char plname[RTP_PAYLOAD_NAME_SIZE]; - int plfreq; - int pacsize; - size_t channels; - int rate; // bits/sec unlike {start,min,max}Bitrate elsewhere in this file! - - bool operator==(const CodecInst& other) const { - return pltype == other.pltype && - absl::EqualsIgnoreCase(plname, other.plname) && - plfreq == other.plfreq && pacsize == other.pacsize && - channels == other.channels && rate == other.rate; - } - - bool operator!=(const CodecInst& other) const { return !(*this == other); } -}; - // RTP enum { kRtpCsrcSize = 15 }; // RFC 3550 page 13 diff --git a/media/base/h264_profile_level_id.cc b/media/base/h264_profile_level_id.cc index 65a6cf0cc9..32fa02c143 100644 --- a/media/base/h264_profile_level_id.cc +++ b/media/base/h264_profile_level_id.cc @@ -15,6 +15,7 @@ #include #include "rtc_base/arraysize.h" +#include "rtc_base/checks.h" namespace webrtc { namespace H264 { diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn index e2a13f3cfb..86a5fc9cfb 100644 --- a/modules/audio_coding/BUILD.gn +++ b/modules/audio_coding/BUILD.gn @@ -14,24 +14,6 @@ if (!build_with_mozilla) { visibility = [ ":*" ] -rtc_static_library("audio_format_conversion") { - visibility += webrtc_default_visibility - sources = [ - "codecs/audio_format_conversion.cc", - "codecs/audio_format_conversion.h", - ] - deps = [ - "../..:webrtc_common", - "../../api:array_view", - "../../api/audio_codecs:audio_codecs_api", - "../../rtc_base:checks", - "../../rtc_base:rtc_base_approved", - "../../rtc_base:sanitizer", - "//third_party/abseil-cpp/absl/strings", - "//third_party/abseil-cpp/absl/types:optional", - ] -} - rtc_source_set("audio_coding_module_typedefs") { sources = [ "include/audio_coding_module_typedefs.h", @@ -1319,7 +1301,6 @@ if (rtc_include_tests) { ":audio_coding", ":audio_coding_module_typedefs", ":audio_encoder_cng", - ":audio_format_conversion", ":pcm16b_c", ":red", ":webrtc_opus_c", @@ -1398,7 +1379,6 @@ if (rtc_include_tests) { deps = audio_coding_deps + [ "..:module_api", ":audio_coding", - ":audio_format_conversion", "../../api/audio_codecs:audio_codecs_api", "../../api/audio_codecs:builtin_audio_decoder_factory", ":neteq_tools", @@ -1422,7 +1402,6 @@ if (rtc_include_tests) { "../../api/audio:audio_frame_api", "../../rtc_base:checks", ":audio_coding", - ":audio_format_conversion", ":neteq_tools", "../../api/audio_codecs:builtin_audio_decoder_factory", "../../api/audio_codecs:builtin_audio_encoder_factory", @@ -2041,7 +2020,6 @@ if (rtc_include_tests) { ":audio_coding", ":audio_coding_module_typedefs", ":audio_encoder_cng", - ":audio_format_conversion", ":audio_network_adaptor", ":g711", ":ilbc", diff --git a/modules/audio_coding/codecs/audio_format_conversion.cc b/modules/audio_coding/codecs/audio_format_conversion.cc deleted file mode 100644 index f068301adf..0000000000 --- a/modules/audio_coding/codecs/audio_format_conversion.cc +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2016 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. - */ - -#include "modules/audio_coding/codecs/audio_format_conversion.h" - -#include -#include -#include - -#include "absl/strings/match.h" -#include "api/array_view.h" -#include "rtc_base/checks.h" -#include "rtc_base/sanitizer.h" - -namespace webrtc { - -namespace { - -CodecInst MakeCodecInst(int payload_type, - const char* name, - int sample_rate, - size_t num_channels) { - // Create a CodecInst with some fields set. The remaining fields are zeroed, - // but we tell MSan to consider them uninitialized. - CodecInst ci = {0}; - rtc::MsanMarkUninitialized(rtc::MakeArrayView(&ci, 1)); - ci.pltype = payload_type; - strncpy(ci.plname, name, sizeof(ci.plname)); - ci.plname[sizeof(ci.plname) - 1] = '\0'; - ci.plfreq = sample_rate; - ci.channels = num_channels; - return ci; -} - -} // namespace - -SdpAudioFormat CodecInstToSdp(const CodecInst& ci) { - if (absl::EqualsIgnoreCase(ci.plname, "g722")) { - RTC_CHECK_EQ(16000, ci.plfreq); - RTC_CHECK(ci.channels == 1 || ci.channels == 2); - return {"g722", 8000, ci.channels}; - } else if (absl::EqualsIgnoreCase(ci.plname, "opus")) { - RTC_CHECK_EQ(48000, ci.plfreq); - RTC_CHECK(ci.channels == 1 || ci.channels == 2); - return ci.channels == 1 - ? SdpAudioFormat("opus", 48000, 2) - : SdpAudioFormat("opus", 48000, 2, {{"stereo", "1"}}); - } else { - return {ci.plname, ci.plfreq, ci.channels}; - } -} - -CodecInst SdpToCodecInst(int payload_type, const SdpAudioFormat& audio_format) { - if (absl::EqualsIgnoreCase(audio_format.name, "g722")) { - RTC_CHECK_EQ(8000, audio_format.clockrate_hz); - RTC_CHECK(audio_format.num_channels == 1 || audio_format.num_channels == 2); - return MakeCodecInst(payload_type, "g722", 16000, - audio_format.num_channels); - } else if (absl::EqualsIgnoreCase(audio_format.name, "opus")) { - RTC_CHECK_EQ(48000, audio_format.clockrate_hz); - RTC_CHECK_EQ(2, audio_format.num_channels); - const int num_channels = [&] { - auto stereo = audio_format.parameters.find("stereo"); - if (stereo != audio_format.parameters.end()) { - if (stereo->second == "0") { - return 1; - } else if (stereo->second == "1") { - return 2; - } else { - RTC_CHECK(false); // Bad stereo parameter. - } - } - return 1; // Default to mono. - }(); - return MakeCodecInst(payload_type, "opus", 48000, num_channels); - } else { - return MakeCodecInst(payload_type, audio_format.name.c_str(), - audio_format.clockrate_hz, audio_format.num_channels); - } -} - -} // namespace webrtc diff --git a/modules/audio_coding/codecs/audio_format_conversion.h b/modules/audio_coding/codecs/audio_format_conversion.h deleted file mode 100644 index d981741c3c..0000000000 --- a/modules/audio_coding/codecs/audio_format_conversion.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2016 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. - */ - -#ifndef MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_ -#define MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_ - -#include "api/audio_codecs/audio_format.h" -#include "common_types.h" // NOLINT(build/include) - -namespace webrtc { - -SdpAudioFormat CodecInstToSdp(const CodecInst& codec_inst); -CodecInst SdpToCodecInst(int payload_type, const SdpAudioFormat& audio_format); - -} // namespace webrtc - -#endif // MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_ diff --git a/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc b/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc index dce16358ef..fd560e4df0 100644 --- a/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc +++ b/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc @@ -12,25 +12,11 @@ #include -#include "common_types.h" #include "modules/audio_coding/codecs/g711/g711_interface.h" #include "rtc_base/checks.h" namespace webrtc { -namespace { - -template -typename T::Config CreateConfig(const CodecInst& codec_inst) { - typename T::Config config; - config.frame_size_ms = codec_inst.pacsize / 8; - config.num_channels = codec_inst.channels; - config.payload_type = codec_inst.pltype; - return config; -} - -} // namespace - bool AudioEncoderPcm::Config::IsOk() const { return (frame_size_ms % 10 == 0) && (num_channels >= 1); } @@ -103,9 +89,6 @@ void AudioEncoderPcm::Reset() { speech_buffer_.clear(); } -AudioEncoderPcmA::AudioEncoderPcmA(const CodecInst& codec_inst) - : AudioEncoderPcmA(CreateConfig(codec_inst)) {} - size_t AudioEncoderPcmA::EncodeCall(const int16_t* audio, size_t input_len, uint8_t* encoded) { @@ -120,9 +103,6 @@ AudioEncoder::CodecType AudioEncoderPcmA::GetCodecType() const { return AudioEncoder::CodecType::kPcmA; } -AudioEncoderPcmU::AudioEncoderPcmU(const CodecInst& codec_inst) - : AudioEncoderPcmU(CreateConfig(codec_inst)) {} - size_t AudioEncoderPcmU::EncodeCall(const int16_t* audio, size_t input_len, uint8_t* encoded) { diff --git a/modules/audio_coding/codecs/g711/audio_encoder_pcm.h b/modules/audio_coding/codecs/g711/audio_encoder_pcm.h index 37b67cf72b..88668d924e 100644 --- a/modules/audio_coding/codecs/g711/audio_encoder_pcm.h +++ b/modules/audio_coding/codecs/g711/audio_encoder_pcm.h @@ -69,8 +69,6 @@ class AudioEncoderPcm : public AudioEncoder { uint32_t first_timestamp_in_buffer_; }; -struct CodecInst; - class AudioEncoderPcmA final : public AudioEncoderPcm { public: struct Config : public AudioEncoderPcm::Config { @@ -79,7 +77,6 @@ class AudioEncoderPcmA final : public AudioEncoderPcm { explicit AudioEncoderPcmA(const Config& config) : AudioEncoderPcm(config, kSampleRateHz) {} - explicit AudioEncoderPcmA(const CodecInst& codec_inst); protected: size_t EncodeCall(const int16_t* audio, @@ -103,7 +100,6 @@ class AudioEncoderPcmU final : public AudioEncoderPcm { explicit AudioEncoderPcmU(const Config& config) : AudioEncoderPcm(config, kSampleRateHz) {} - explicit AudioEncoderPcmU(const CodecInst& codec_inst); protected: size_t EncodeCall(const int16_t* audio, diff --git a/modules/audio_coding/codecs/g722/audio_encoder_g722.cc b/modules/audio_coding/codecs/g722/audio_encoder_g722.cc index e63d590309..d293163c53 100644 --- a/modules/audio_coding/codecs/g722/audio_encoder_g722.cc +++ b/modules/audio_coding/codecs/g722/audio_encoder_g722.cc @@ -12,7 +12,6 @@ #include -#include "common_types.h" #include "modules/audio_coding/codecs/g722/g722_interface.h" #include "rtc_base/checks.h" #include "rtc_base/numerics/safe_conversions.h" @@ -23,13 +22,6 @@ namespace { const size_t kSampleRateHz = 16000; -AudioEncoderG722Config CreateConfig(const CodecInst& codec_inst) { - AudioEncoderG722Config config; - config.num_channels = rtc::dchecked_cast(codec_inst.channels); - config.frame_size_ms = codec_inst.pacsize / 16; - return config; -} - } // namespace AudioEncoderG722Impl::AudioEncoderG722Impl(const AudioEncoderG722Config& config, @@ -52,9 +44,6 @@ AudioEncoderG722Impl::AudioEncoderG722Impl(const AudioEncoderG722Config& config, Reset(); } -AudioEncoderG722Impl::AudioEncoderG722Impl(const CodecInst& codec_inst) - : AudioEncoderG722Impl(CreateConfig(codec_inst), codec_inst.pltype) {} - AudioEncoderG722Impl::~AudioEncoderG722Impl() = default; int AudioEncoderG722Impl::SampleRateHz() const { diff --git a/modules/audio_coding/codecs/g722/audio_encoder_g722.h b/modules/audio_coding/codecs/g722/audio_encoder_g722.h index 3cf143914f..d0d23ca717 100644 --- a/modules/audio_coding/codecs/g722/audio_encoder_g722.h +++ b/modules/audio_coding/codecs/g722/audio_encoder_g722.h @@ -21,12 +21,9 @@ namespace webrtc { -struct CodecInst; - class AudioEncoderG722Impl final : public AudioEncoder { public: AudioEncoderG722Impl(const AudioEncoderG722Config& config, int payload_type); - explicit AudioEncoderG722Impl(const CodecInst& codec_inst); ~AudioEncoderG722Impl() override; int SampleRateHz() const override; diff --git a/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc b/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc index 8801fd5559..ac9214b658 100644 --- a/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc +++ b/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc @@ -13,7 +13,6 @@ #include #include -#include "common_types.h" #include "modules/audio_coding/codecs/ilbc/ilbc.h" #include "rtc_base/checks.h" #include "rtc_base/numerics/safe_conversions.h" @@ -24,12 +23,6 @@ namespace { const int kSampleRateHz = 8000; -AudioEncoderIlbcConfig CreateConfig(const CodecInst& codec_inst) { - AudioEncoderIlbcConfig config; - config.frame_size_ms = codec_inst.pacsize / 8; - return config; -} - int GetIlbcBitrate(int ptime) { switch (ptime) { case 20: @@ -58,9 +51,6 @@ AudioEncoderIlbcImpl::AudioEncoderIlbcImpl(const AudioEncoderIlbcConfig& config, Reset(); } -AudioEncoderIlbcImpl::AudioEncoderIlbcImpl(const CodecInst& codec_inst) - : AudioEncoderIlbcImpl(CreateConfig(codec_inst), codec_inst.pltype) {} - AudioEncoderIlbcImpl::~AudioEncoderIlbcImpl() { RTC_CHECK_EQ(0, WebRtcIlbcfix_EncoderFree(encoder_)); } diff --git a/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h b/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h index a238689aca..675dc7d99d 100644 --- a/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h +++ b/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h @@ -18,12 +18,9 @@ namespace webrtc { -struct CodecInst; - class AudioEncoderIlbcImpl final : public AudioEncoder { public: AudioEncoderIlbcImpl(const AudioEncoderIlbcConfig& config, int payload_type); - explicit AudioEncoderIlbcImpl(const CodecInst& codec_inst); ~AudioEncoderIlbcImpl() override; int SampleRateHz() const override; diff --git a/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h b/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h index 541b90c9f5..298989863d 100644 --- a/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h +++ b/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h @@ -20,8 +20,6 @@ namespace webrtc { -struct CodecInst; - template class AudioEncoderIsacT final : public AudioEncoder { public: @@ -52,9 +50,6 @@ class AudioEncoderIsacT final : public AudioEncoder { }; explicit AudioEncoderIsacT(const Config& config); - explicit AudioEncoderIsacT( - const CodecInst& codec_inst, - const rtc::scoped_refptr& bwinfo); ~AudioEncoderIsacT() override; int SampleRateHz() const override; diff --git a/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h b/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h index cbf15fcdc5..34481394b9 100644 --- a/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h +++ b/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h @@ -11,27 +11,10 @@ #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_AUDIO_ENCODER_ISAC_T_IMPL_H_ #define MODULES_AUDIO_CODING_CODECS_ISAC_AUDIO_ENCODER_ISAC_T_IMPL_H_ -#include "common_types.h" // NOLINT(build/include) #include "rtc_base/checks.h" namespace webrtc { -template -typename AudioEncoderIsacT::Config CreateIsacConfig( - const CodecInst& codec_inst, - const rtc::scoped_refptr& bwinfo) { - typename AudioEncoderIsacT::Config config; - config.bwinfo = bwinfo; - config.payload_type = codec_inst.pltype; - config.sample_rate_hz = codec_inst.plfreq; - config.frame_size_ms = - rtc::CheckedDivExact(1000 * codec_inst.pacsize, config.sample_rate_hz); - config.adaptive_mode = (codec_inst.rate == -1); - if (codec_inst.rate != -1) - config.bit_rate = codec_inst.rate; - return config; -} - template bool AudioEncoderIsacT::Config::IsOk() const { if (max_bit_rate < 32000 && max_bit_rate != -1) @@ -66,12 +49,6 @@ AudioEncoderIsacT::AudioEncoderIsacT(const Config& config) { RecreateEncoderInstance(config); } -template -AudioEncoderIsacT::AudioEncoderIsacT( - const CodecInst& codec_inst, - const rtc::scoped_refptr& bwinfo) - : AudioEncoderIsacT(CreateIsacConfig(codec_inst, bwinfo)) {} - template AudioEncoderIsacT::~AudioEncoderIsacT() { RTC_CHECK_EQ(0, T::Free(isac_state_)); diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc index 1a88acf3c0..a5c4380433 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc @@ -16,7 +16,6 @@ #include "absl/memory/memory.h" #include "absl/strings/match.h" -#include "common_types.h" #include "modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h" #include "modules/audio_coding/audio_network_adaptor/controller_manager.h" #include "modules/audio_coding/codecs/opus/opus_interface.h" @@ -334,19 +333,6 @@ absl::optional AudioEncoderOpusImpl::QueryAudioEncoder( return absl::nullopt; } -AudioEncoderOpusConfig AudioEncoderOpusImpl::CreateConfig( - const CodecInst& codec_inst) { - AudioEncoderOpusConfig config; - config.frame_size_ms = rtc::CheckedDivExact(codec_inst.pacsize, 48); - config.num_channels = codec_inst.channels; - config.bitrate_bps = codec_inst.rate; - config.application = config.num_channels == 1 - ? AudioEncoderOpusConfig::ApplicationMode::kVoip - : AudioEncoderOpusConfig::ApplicationMode::kAudio; - config.supported_frame_lengths_ms.push_back(config.frame_size_ms); - return config; -} - absl::optional AudioEncoderOpusImpl::SdpToConfig( const SdpAudioFormat& format) { if (!absl::EqualsIgnoreCase(format.name, "opus") || @@ -494,9 +480,6 @@ AudioEncoderOpusImpl::AudioEncoderOpusImpl( SetProjectedPacketLossRate(packet_loss_rate_); } -AudioEncoderOpusImpl::AudioEncoderOpusImpl(const CodecInst& codec_inst) - : AudioEncoderOpusImpl(CreateConfig(codec_inst), codec_inst.pltype) {} - AudioEncoderOpusImpl::AudioEncoderOpusImpl(int payload_type, const SdpAudioFormat& format) : AudioEncoderOpusImpl(*SdpToConfig(format), payload_type) {} diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus.h b/modules/audio_coding/codecs/opus/audio_encoder_opus.h index 150423fd3e..7d051d5317 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus.h +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus.h @@ -30,8 +30,6 @@ namespace webrtc { class RtcEventLog; -struct CodecInst; - class AudioEncoderOpusImpl final : public AudioEncoder { public: class NewPacketLossRateOptimizer { @@ -54,8 +52,6 @@ class AudioEncoderOpusImpl final : public AudioEncoder { RTC_DISALLOW_COPY_AND_ASSIGN(NewPacketLossRateOptimizer); }; - static AudioEncoderOpusConfig CreateConfig(const CodecInst& codec_inst); - // Returns empty if the current bitrate falls within the hysteresis window, // defined by complexity_threshold_bps +/- complexity_threshold_window_bps. // Otherwise, returns the current complexity depending on whether the @@ -83,7 +79,6 @@ class AudioEncoderOpusImpl final : public AudioEncoder { const AudioNetworkAdaptorCreator& audio_network_adaptor_creator, std::unique_ptr bitrate_smoother); - explicit AudioEncoderOpusImpl(const CodecInst& codec_inst); AudioEncoderOpusImpl(int payload_type, const SdpAudioFormat& format); ~AudioEncoderOpusImpl() override; diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc b/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc index d5c2c84f1f..a0e24da985 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc @@ -15,7 +15,6 @@ #include "absl/memory/memory.h" #include "api/audio_codecs/opus/audio_encoder_opus.h" #include "common_audio/mocks/mock_smoothing_filter.h" -#include "common_types.h" // NOLINT(build/include) #include "modules/audio_coding/audio_network_adaptor/mock/mock_audio_network_adaptor.h" #include "modules/audio_coding/codecs/opus/audio_encoder_opus.h" #include "modules/audio_coding/codecs/opus/opus_interface.h" @@ -33,21 +32,11 @@ using ::testing::Return; namespace { -const CodecInst kDefaultOpusSettings = {105, "opus", 48000, 960, 1, 32000}; +constexpr int kDefaultOpusPayloadType = 105; +constexpr int kDefaultOpusRate = 32000; +constexpr int kDefaultOpusPacSize = 960; constexpr int64_t kInitialTimeUs = 12345678; -AudioEncoderOpusConfig CreateConfig(const CodecInst& codec_inst) { - AudioEncoderOpusConfig config; - config.frame_size_ms = rtc::CheckedDivExact(codec_inst.pacsize, 48); - config.num_channels = codec_inst.channels; - config.bitrate_bps = codec_inst.rate; - config.application = config.num_channels == 1 - ? AudioEncoderOpusConfig::ApplicationMode::kVoip - : AudioEncoderOpusConfig::ApplicationMode::kAudio; - config.supported_frame_lengths_ms.push_back(config.frame_size_ms); - return config; -} - AudioEncoderOpusConfig CreateConfigWithParameters( const SdpAudioFormat::Parameters& params) { const SdpAudioFormat format("opus", 48000, 2, params); @@ -79,15 +68,22 @@ std::unique_ptr CreateCodec(size_t num_channels) { return adaptor; }; - CodecInst codec_inst = kDefaultOpusSettings; - codec_inst.channels = num_channels; - states->config = CreateConfig(codec_inst); + AudioEncoderOpusConfig config; + config.frame_size_ms = rtc::CheckedDivExact(kDefaultOpusPacSize, 48); + config.num_channels = num_channels; + config.bitrate_bps = kDefaultOpusRate; + config.application = num_channels == 1 + ? AudioEncoderOpusConfig::ApplicationMode::kVoip + : AudioEncoderOpusConfig::ApplicationMode::kAudio; + config.supported_frame_lengths_ms.push_back(config.frame_size_ms); + states->config = config; + std::unique_ptr bitrate_smoother( new MockSmoothingFilter()); states->mock_bitrate_smoother = bitrate_smoother.get(); states->encoder.reset(new AudioEncoderOpusImpl( - states->config, codec_inst.pltype, std::move(creator), + states->config, kDefaultOpusPayloadType, std::move(creator), std::move(bitrate_smoother))); return states; } @@ -436,12 +432,12 @@ TEST(AudioEncoderOpusTest, DoNotInvokeSetTargetBitrateIfOverheadUnknown) { auto states = CreateCodec(2); - states->encoder->OnReceivedUplinkBandwidth(kDefaultOpusSettings.rate * 2, + states->encoder->OnReceivedUplinkBandwidth(kDefaultOpusRate * 2, absl::nullopt); // Since |OnReceivedOverhead| has not been called, the codec bitrate should // not change. - EXPECT_EQ(kDefaultOpusSettings.rate, states->encoder->GetTargetBitrate()); + EXPECT_EQ(kDefaultOpusRate, states->encoder->GetTargetBitrate()); } TEST(AudioEncoderOpusTest, OverheadRemovedFromTargetAudioBitrate) { @@ -456,7 +452,7 @@ TEST(AudioEncoderOpusTest, OverheadRemovedFromTargetAudioBitrate) { constexpr int kTargetBitrateBps = 40000; states->encoder->OnReceivedUplinkBandwidth(kTargetBitrateBps, absl::nullopt); - int packet_rate = rtc::CheckedDivExact(48000, kDefaultOpusSettings.pacsize); + int packet_rate = rtc::CheckedDivExact(48000, kDefaultOpusPacSize); EXPECT_EQ(kTargetBitrateBps - 8 * static_cast(kOverheadBytesPerPacket) * packet_rate, states->encoder->GetTargetBitrate()); @@ -474,7 +470,7 @@ TEST(AudioEncoderOpusTest, BitrateBounded) { constexpr size_t kOverheadBytesPerPacket = 64; states->encoder->OnReceivedOverhead(kOverheadBytesPerPacket); - int packet_rate = rtc::CheckedDivExact(48000, kDefaultOpusSettings.pacsize); + int packet_rate = rtc::CheckedDivExact(48000, kDefaultOpusPacSize); // Set a target rate that is smaller than |kMinBitrateBps| when overhead is // subtracted. The eventual codec rate should be bounded by |kMinBitrateBps|. diff --git a/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc b/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc index 106ab16794..9445b1ee3e 100644 --- a/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc +++ b/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.cc @@ -10,7 +10,6 @@ #include "modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h" -#include "common_types.h" #include "modules/audio_coding/codecs/pcm16b/pcm16b.h" #include "rtc_base/checks.h" @@ -30,20 +29,6 @@ AudioEncoder::CodecType AudioEncoderPcm16B::GetCodecType() const { return CodecType::kOther; } -namespace { - -AudioEncoderPcm16B::Config CreateConfig(const CodecInst& codec_inst) { - AudioEncoderPcm16B::Config config; - config.num_channels = codec_inst.channels; - config.sample_rate_hz = codec_inst.plfreq; - config.frame_size_ms = rtc::CheckedDivExact( - codec_inst.pacsize, rtc::CheckedDivExact(config.sample_rate_hz, 1000)); - config.payload_type = codec_inst.pltype; - return config; -} - -} // namespace - bool AudioEncoderPcm16B::Config::IsOk() const { if ((sample_rate_hz != 8000) && (sample_rate_hz != 16000) && (sample_rate_hz != 32000) && (sample_rate_hz != 48000)) @@ -51,7 +36,4 @@ bool AudioEncoderPcm16B::Config::IsOk() const { return AudioEncoderPcm::Config::IsOk(); } -AudioEncoderPcm16B::AudioEncoderPcm16B(const CodecInst& codec_inst) - : AudioEncoderPcm16B(CreateConfig(codec_inst)) {} - } // namespace webrtc diff --git a/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h b/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h index d6fd6e169e..6a20843fcb 100644 --- a/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h +++ b/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h @@ -16,8 +16,6 @@ namespace webrtc { -struct CodecInst; - class AudioEncoderPcm16B final : public AudioEncoderPcm { public: struct Config : public AudioEncoderPcm::Config { @@ -30,7 +28,6 @@ class AudioEncoderPcm16B final : public AudioEncoderPcm { explicit AudioEncoderPcm16B(const Config& config) : AudioEncoderPcm(config, config.sample_rate_hz) {} - explicit AudioEncoderPcm16B(const CodecInst& codec_inst); protected: size_t EncodeCall(const int16_t* audio, diff --git a/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc b/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc index bbe3f19fb7..bcfc4a8fbc 100644 --- a/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc +++ b/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc @@ -16,6 +16,7 @@ #include #include "api/video_codecs/vp8_temporal_layers.h" +#include "rtc_base/checks.h" #include "test/field_trial.h" #include "test/gmock.h" #include "test/gtest.h" diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc index 9434b0b6e2..06fbae1aa3 100644 --- a/pc/peerconnection.cc +++ b/pc/peerconnection.cc @@ -18,6 +18,7 @@ #include #include "absl/memory/memory.h" +#include "absl/strings/match.h" #include "api/jsepicecandidate.h" #include "api/jsepsessiondescription.h" #include "api/mediastreamproxy.h"