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/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