Moved creation of AudioDecoderFactory to inside PeerConnectionFactory.

CreatePeerConnectionFactory does not yet expose the ability to set the
factory from the outside.

Added notry due to android_dbg being broken.

NOTRY=True
BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/1991233004
Cr-Commit-Position: refs/heads/master@{#13112}
diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc
index 95b08e7..b78d73a 100644
--- a/webrtc/media/engine/webrtcvoiceengine.cc
+++ b/webrtc/media/engine/webrtcvoiceengine.cc
@@ -520,14 +520,18 @@
   return WebRtcVoiceCodecs::ToCodecInst(in, out);
 }
 
-WebRtcVoiceEngine::WebRtcVoiceEngine(webrtc::AudioDeviceModule* adm)
-    : WebRtcVoiceEngine(adm, new VoEWrapper()) {
+WebRtcVoiceEngine::WebRtcVoiceEngine(
+    webrtc::AudioDeviceModule* adm,
+    const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory)
+    : WebRtcVoiceEngine(adm, decoder_factory, new VoEWrapper()) {
   audio_state_ = webrtc::AudioState::Create(MakeAudioStateConfig(voe()));
 }
 
-WebRtcVoiceEngine::WebRtcVoiceEngine(webrtc::AudioDeviceModule* adm,
-                                     VoEWrapper* voe_wrapper)
-    : adm_(adm), voe_wrapper_(voe_wrapper) {
+WebRtcVoiceEngine::WebRtcVoiceEngine(
+    webrtc::AudioDeviceModule* adm,
+    const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory,
+    VoEWrapper* voe_wrapper)
+    : adm_(adm), decoder_factory_(decoder_factory), voe_wrapper_(voe_wrapper) {
   RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
   LOG(LS_INFO) << "WebRtcVoiceEngine::WebRtcVoiceEngine";
   RTC_DCHECK(voe_wrapper);
@@ -547,7 +551,8 @@
   webrtc::Trace::SetTraceCallback(this);
   webrtc::Trace::set_level_filter(kElevatedTraceFilter);
   LOG(LS_INFO) << webrtc::VoiceEngine::GetVersionString();
-  RTC_CHECK_EQ(0, voe_wrapper_->base()->Init(adm_.get()));
+  RTC_CHECK_EQ(0, voe_wrapper_->base()->Init(adm_.get(), nullptr,
+                                             decoder_factory_));
   webrtc::Trace::set_level_filter(kDefaultTraceFilter);
 
   // No ADM supplied? Get the default one from VoE.
@@ -1275,14 +1280,16 @@
 
 class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
  public:
-  WebRtcAudioReceiveStream(int ch,
-                           uint32_t remote_ssrc,
-                           uint32_t local_ssrc,
-                           bool use_transport_cc,
-                           const std::string& sync_group,
-                           const std::vector<webrtc::RtpExtension>& extensions,
-                           webrtc::Call* call,
-                           webrtc::Transport* rtcp_send_transport)
+  WebRtcAudioReceiveStream(
+      int ch,
+      uint32_t remote_ssrc,
+      uint32_t local_ssrc,
+      bool use_transport_cc,
+      const std::string& sync_group,
+      const std::vector<webrtc::RtpExtension>& extensions,
+      webrtc::Call* call,
+      webrtc::Transport* rtcp_send_transport,
+      const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory)
       : call_(call), config_() {
     RTC_DCHECK_GE(ch, 0);
     RTC_DCHECK(call);
@@ -1291,6 +1298,7 @@
     config_.rtcp_send_transport = rtcp_send_transport;
     config_.voe_channel_id = ch;
     config_.sync_group = sync_group;
+    config_.decoder_factory = decoder_factory;
     RecreateAudioReceiveStream(use_transport_cc, extensions);
   }
 
@@ -2168,7 +2176,8 @@
       ssrc, new WebRtcAudioReceiveStream(channel, ssrc, receiver_reports_ssrc_,
                                          recv_transport_cc_enabled_,
                                          sp.sync_label, recv_rtp_extensions_,
-                                         call_, this)));
+                                         call_, this,
+                                         engine()->decoder_factory_)));
 
   SetNack(channel, send_codec_spec_.nack_enabled);
   SetPlayout(channel, playout_);