Voe::Channel: Turned GetPlayoutFrequency into GetRtpTimestampRateHz.

This gets rid of a bit of codec-specific code in VoE.

BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2355483003
Cr-Commit-Position: refs/heads/master@{#14614}
diff --git a/webrtc/modules/audio_coding/acm2/acm_receiver.cc b/webrtc/modules/audio_coding/acm2/acm_receiver.cc
index 0b19310..73518b8 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receiver.cc
+++ b/webrtc/modules/audio_coding/acm2/acm_receiver.cc
@@ -98,6 +98,8 @@
       }
     } else {
       last_audio_decoder_ = ci;
+      last_audio_format_ = neteq_->GetDecoderFormat(ci->pltype);
+      RTC_DCHECK(last_audio_format_);
       last_packet_sample_rate_hz_ = rtc::Optional<int>(ci->plfreq);
     }
 
@@ -263,6 +265,7 @@
   rtc::CritScope lock(&crit_sect_);
   neteq_->RemoveAllPayloadTypes();
   last_audio_decoder_ = rtc::Optional<CodecInst>();
+  last_audio_format_ = rtc::Optional<SdpAudioFormat>();
   last_packet_sample_rate_hz_ = rtc::Optional<int>();
 }
 
@@ -275,6 +278,7 @@
   }
   if (last_audio_decoder_ && payload_type == last_audio_decoder_->pltype) {
     last_audio_decoder_ = rtc::Optional<CodecInst>();
+    last_audio_format_ = rtc::Optional<SdpAudioFormat>();
     last_packet_sample_rate_hz_ = rtc::Optional<int>();
   }
   return 0;
@@ -297,6 +301,11 @@
   return 0;
 }
 
+rtc::Optional<SdpAudioFormat> AcmReceiver::LastAudioFormat() const {
+  rtc::CritScope lock(&crit_sect_);
+  return last_audio_format_;
+}
+
 void AcmReceiver::GetNetworkStatistics(NetworkStatistics* acm_stat) {
   NetEqNetworkStatistics neteq_stat;
   // NetEq function always returns zero, so we don't check the return value.
diff --git a/webrtc/modules/audio_coding/acm2/acm_receiver.h b/webrtc/modules/audio_coding/acm2/acm_receiver.h
index a9550fb..6415074 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receiver.h
+++ b/webrtc/modules/audio_coding/acm2/acm_receiver.h
@@ -209,6 +209,8 @@
   //
   int LastAudioCodec(CodecInst* codec) const;
 
+  rtc::Optional<SdpAudioFormat> LastAudioFormat() const;
+
   //
   // Get a decoder given its registered payload-type.
   //
@@ -273,6 +275,7 @@
 
   rtc::CriticalSection crit_sect_;
   rtc::Optional<CodecInst> last_audio_decoder_ GUARDED_BY(crit_sect_);
+  rtc::Optional<SdpAudioFormat> last_audio_format_ GUARDED_BY(crit_sect_);
   ACMResampler resampler_ GUARDED_BY(crit_sect_);
   std::unique_ptr<int16_t[]> last_audio_buffer_ GUARDED_BY(crit_sect_);
   CallStatistics call_stats_ GUARDED_BY(crit_sect_);
diff --git a/webrtc/modules/audio_coding/acm2/audio_coding_module.cc b/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
index a845c01..ee1034b 100644
--- a/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
+++ b/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
@@ -138,6 +138,8 @@
   // Get current received codec.
   int ReceiveCodec(CodecInst* current_codec) const override;
 
+  rtc::Optional<SdpAudioFormat> ReceiveFormat() const override;
+
   // Incoming packet from network parsed and ready for decode.
   int IncomingPacket(const uint8_t* incoming_payload,
                      const size_t payload_length,
@@ -1087,6 +1089,11 @@
   return receiver_.LastAudioCodec(current_codec);
 }
 
+rtc::Optional<SdpAudioFormat> AudioCodingModuleImpl::ReceiveFormat() const {
+  rtc::CritScope lock(&acm_crit_sect_);
+  return receiver_.LastAudioFormat();
+}
+
 // Incoming packet from network parsed and ready for decode.
 int AudioCodingModuleImpl::IncomingPacket(const uint8_t* incoming_payload,
                                           const size_t payload_length,