Chromium Code Reviews| Index: webrtc/modules/audio_coding/acm2/acm_receiver.cc |
| diff --git a/webrtc/modules/audio_coding/acm2/acm_receiver.cc b/webrtc/modules/audio_coding/acm2/acm_receiver.cc |
| index 89eee00fc37edc10d715f1720ff193688d863b8d..2589bb8d25c2c1d0c247d3b8ee930d22a4a3114a 100644 |
| --- a/webrtc/modules/audio_coding/acm2/acm_receiver.cc |
| +++ b/webrtc/modules/audio_coding/acm2/acm_receiver.cc |
| @@ -98,6 +98,8 @@ int AcmReceiver::InsertPacket(const WebRtcRTPHeader& rtp_header, |
| } |
| } else { |
| last_audio_decoder_ = ci; |
| + last_audio_format_ = neteq_->GetDecoderFormat(ci->pltype); |
| + RTC_DCHECK(last_audio_format_); |
|
kwiberg-webrtc
2016/10/07 12:05:23
Are you sure this will always be the case? I seem
ossu
2016/10/07 12:21:59
That is no longer true, however you can avoid gett
|
| last_packet_sample_rate_hz_ = rtc::Optional<int>(ci->plfreq); |
| } |
| @@ -238,6 +240,7 @@ void AcmReceiver::RemoveAllCodecs() { |
| 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>(); |
| } |
| @@ -250,6 +253,7 @@ int AcmReceiver::RemoveCodec(uint8_t payload_type) { |
| } |
| 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; |
| @@ -272,6 +276,11 @@ int AcmReceiver::LastAudioCodec(CodecInst* codec) const { |
| 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. |