Hide the internal AudioEncoderOpus class by giving it an "Impl" suffix
We've done this previously with the other audio encoders, but Opus had
to wait until all external users had been updated.
BUG=webrtc:7847
Change-Id: I70422d7b6c715f32a43bee88febcf6b6155e18b3
Reviewed-on: https://webrtc-review.googlesource.com/8000
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20424}
diff --git a/api/audio_codecs/opus/BUILD.gn b/api/audio_codecs/opus/BUILD.gn
index faa5956..9d07c95 100644
--- a/api/audio_codecs/opus/BUILD.gn
+++ b/api/audio_codecs/opus/BUILD.gn
@@ -30,12 +30,16 @@
}
rtc_source_set("audio_encoder_opus") {
- sources = [
+ public = [
"audio_encoder_opus.h",
]
+ sources = [
+ "audio_encoder_opus.cc",
+ ]
deps = [
":audio_encoder_opus_config",
"..:audio_codecs_api",
+ "../..:optional",
"../../../modules/audio_coding:webrtc_opus",
"../../../rtc_base:rtc_base_approved",
]
diff --git a/api/audio_codecs/opus/audio_encoder_opus.cc b/api/audio_codecs/opus/audio_encoder_opus.cc
new file mode 100644
index 0000000..603da6f
--- /dev/null
+++ b/api/audio_codecs/opus/audio_encoder_opus.cc
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+#include "api/audio_codecs/opus/audio_encoder_opus.h"
+
+#include "modules/audio_coding/codecs/opus/audio_encoder_opus.h"
+
+namespace webrtc {
+
+rtc::Optional<AudioEncoderOpusConfig> AudioEncoderOpus::SdpToConfig(
+ const SdpAudioFormat& format) {
+ return AudioEncoderOpusImpl::SdpToConfig(format);
+}
+
+void AudioEncoderOpus::AppendSupportedEncoders(
+ std::vector<AudioCodecSpec>* specs) {
+ AudioEncoderOpusImpl::AppendSupportedEncoders(specs);
+}
+
+AudioCodecInfo AudioEncoderOpus::QueryAudioEncoder(
+ const AudioEncoderOpusConfig& config) {
+ return AudioEncoderOpusImpl::QueryAudioEncoder(config);
+}
+
+std::unique_ptr<AudioEncoder> AudioEncoderOpus::MakeAudioEncoder(
+ const AudioEncoderOpusConfig& config,
+ int payload_type) {
+ return AudioEncoderOpusImpl::MakeAudioEncoder(config, payload_type);
+}
+
+} // namespace webrtc
diff --git a/api/audio_codecs/opus/audio_encoder_opus.h b/api/audio_codecs/opus/audio_encoder_opus.h
index 3108cbf..d348a17 100644
--- a/api/audio_codecs/opus/audio_encoder_opus.h
+++ b/api/audio_codecs/opus/audio_encoder_opus.h
@@ -11,20 +11,22 @@
#ifndef API_AUDIO_CODECS_OPUS_AUDIO_ENCODER_OPUS_H_
#define API_AUDIO_CODECS_OPUS_AUDIO_ENCODER_OPUS_H_
-#include "modules/audio_coding/codecs/opus/audio_encoder_opus.h"
+#include <memory>
+#include <vector>
+
+#include "api/audio_codecs/audio_encoder.h"
+#include "api/audio_codecs/audio_format.h"
+#include "api/audio_codecs/opus/audio_encoder_opus_config.h"
+#include "api/optional.h"
namespace webrtc {
// Opus encoder API for use as a template parameter to
// CreateAudioEncoderFactory<...>().
//
-// NOTE: At the moment, this struct actually resides in another file. This is a
-// temporary backwards compatibility hack; see
-// https://bugs.chromium.org/p/webrtc/issues/detail?id=7847
-//
// NOTE: This struct is still under development and may change without notice.
-/*
struct AudioEncoderOpus {
+ using Config = AudioEncoderOpusConfig;
static rtc::Optional<AudioEncoderOpusConfig> SdpToConfig(
const SdpAudioFormat& audio_format);
static void AppendSupportedEncoders(std::vector<AudioCodecSpec>* specs);
@@ -33,7 +35,6 @@
const AudioEncoderOpusConfig&,
int payload_type);
};
-*/
} // namespace webrtc