Opus implementation of the AudioEncoderFactoryTemplate API
This was previously reverted, because external projects were using the
internal webrtc::AudioEncoderOpus class and broke when it was renamed.
This re-land avoids renaming it immediately, to give those projects
time to adapt. It also has to revert some of the changes I had made to the
Config struct, since that was also used by the same external projects.
BUG=webrtc:7831
Review-Url: https://codereview.webrtc.org/2948483002
Cr-Commit-Position: refs/heads/master@{#18852}
diff --git a/webrtc/api/audio_codecs/opus/BUILD.gn b/webrtc/api/audio_codecs/opus/BUILD.gn
new file mode 100644
index 0000000..b82f496
--- /dev/null
+++ b/webrtc/api/audio_codecs/opus/BUILD.gn
@@ -0,0 +1,42 @@
+# Copyright (c) 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("../../../webrtc.gni")
+if (is_android) {
+ import("//build/config/android/config.gni")
+ import("//build/config/android/rules.gni")
+}
+
+rtc_static_library("audio_encoder_opus_config") {
+ sources = [
+ "audio_encoder_opus_config.cc",
+ "audio_encoder_opus_config.h",
+ ]
+ deps = [
+ "../../../base:rtc_base_approved",
+ ]
+ defines = []
+ if (rtc_opus_variable_complexity) {
+ defines += [ "WEBRTC_OPUS_VARIABLE_COMPLEXITY=1" ]
+ } else {
+ defines += [ "WEBRTC_OPUS_VARIABLE_COMPLEXITY=0" ]
+ }
+}
+
+rtc_source_set("audio_encoder_opus") {
+ sources = [
+ "audio_encoder_opus.h",
+ ]
+ deps = [
+ ":audio_encoder_opus_config",
+ "..:audio_codecs_api",
+ "../../../base:protobuf_utils", # TODO(kwiberg): Why is this needed?
+ "../../../base:rtc_base_approved",
+ "../../../modules/audio_coding:webrtc_opus",
+ ]
+}