| Index: webrtc/audio/audio_receive_stream.cc
|
| diff --git a/webrtc/audio/audio_receive_stream.cc b/webrtc/audio/audio_receive_stream.cc
|
| index 34197c3ff7fd011b02864e91dc9c6e29d425753f..8caac6f87e628c96237f9162af7f9b964230cda0 100644
|
| --- a/webrtc/audio/audio_receive_stream.cc
|
| +++ b/webrtc/audio/audio_receive_stream.cc
|
| @@ -12,6 +12,7 @@
|
|
|
| #include <string>
|
|
|
| +#include "webrtc/audio/audio_state.h"
|
| #include "webrtc/audio/conversion.h"
|
| #include "webrtc/base/checks.h"
|
| #include "webrtc/base/logging.h"
|
| @@ -60,19 +61,18 @@ std::string AudioReceiveStream::Config::ToString() const {
|
|
|
| namespace internal {
|
| AudioReceiveStream::AudioReceiveStream(
|
| - RemoteBitrateEstimator* remote_bitrate_estimator,
|
| - const webrtc::AudioReceiveStream::Config& config,
|
| - VoiceEngine* voice_engine)
|
| + RemoteBitrateEstimator* remote_bitrate_estimator,
|
| + const webrtc::AudioReceiveStream::Config& config,
|
| + const rtc::scoped_refptr<webrtc::AudioState>& audio_state)
|
| : remote_bitrate_estimator_(remote_bitrate_estimator),
|
| config_(config),
|
| - voice_engine_(voice_engine),
|
| - voe_base_(voice_engine),
|
| + audio_state_(audio_state),
|
| rtp_header_parser_(RtpHeaderParser::Create()) {
|
| LOG(LS_INFO) << "AudioReceiveStream: " << config_.ToString();
|
| - RTC_DCHECK(config.voe_channel_id != -1);
|
| - RTC_DCHECK(remote_bitrate_estimator_ != nullptr);
|
| - RTC_DCHECK(voice_engine_ != nullptr);
|
| - RTC_DCHECK(rtp_header_parser_ != nullptr);
|
| + RTC_DCHECK_NE(config_.voe_channel_id, -1);
|
| + RTC_DCHECK(remote_bitrate_estimator_);
|
| + RTC_DCHECK(audio_state_.get());
|
| + RTC_DCHECK(rtp_header_parser_);
|
| for (const auto& ext : config.rtp.extensions) {
|
| // One-byte-extension local identifiers are in the range 1-14 inclusive.
|
| RTC_DCHECK_GE(ext.id, 1);
|
| @@ -101,11 +101,14 @@ webrtc::AudioReceiveStream::Stats AudioReceiveStream::GetStats() const {
|
| RTC_DCHECK(thread_checker_.CalledOnValidThread());
|
| webrtc::AudioReceiveStream::Stats stats;
|
| stats.remote_ssrc = config_.rtp.remote_ssrc;
|
| - ScopedVoEInterface<VoECodec> codec(voice_engine_);
|
| - ScopedVoEInterface<VoENetEqStats> neteq(voice_engine_);
|
| - ScopedVoEInterface<VoERTP_RTCP> rtp(voice_engine_);
|
| - ScopedVoEInterface<VoEVideoSync> sync(voice_engine_);
|
| - ScopedVoEInterface<VoEVolumeControl> volume(voice_engine_);
|
| + internal::AudioState* audio_state =
|
| + static_cast<internal::AudioState*>(audio_state_.get());
|
| + VoiceEngine* voice_engine = audio_state->voice_engine();
|
| + ScopedVoEInterface<VoECodec> codec(voice_engine);
|
| + ScopedVoEInterface<VoENetEqStats> neteq(voice_engine);
|
| + ScopedVoEInterface<VoERTP_RTCP> rtp(voice_engine);
|
| + ScopedVoEInterface<VoEVideoSync> sync(voice_engine);
|
| + ScopedVoEInterface<VoEVolumeControl> volume(voice_engine);
|
| unsigned int ssrc = 0;
|
| webrtc::CallStatistics call_stats = {0};
|
| webrtc::CodecInst codec_inst = {0};
|
| @@ -132,13 +135,12 @@ webrtc::AudioReceiveStream::Stats AudioReceiveStream::GetStats() const {
|
| int playout_buffer_delay_ms = 0;
|
| sync->GetDelayEstimate(config_.voe_channel_id, &jitter_buffer_delay_ms,
|
| &playout_buffer_delay_ms);
|
| - stats.delay_estimate_ms =
|
| - jitter_buffer_delay_ms + playout_buffer_delay_ms;
|
| + stats.delay_estimate_ms = jitter_buffer_delay_ms + playout_buffer_delay_ms;
|
| }
|
| {
|
| unsigned int level = 0;
|
| - if (volume->GetSpeechOutputLevelFullRange(config_.voe_channel_id, level)
|
| - != -1) {
|
| + if (volume->GetSpeechOutputLevelFullRange(config_.voe_channel_id, level) !=
|
| + -1) {
|
| stats.audio_level = static_cast<int32_t>(level);
|
| }
|
| }
|
| @@ -157,8 +159,7 @@ webrtc::AudioReceiveStream::Stats AudioReceiveStream::GetStats() const {
|
|
|
| webrtc::AudioDecodingCallStats ds;
|
| if (neteq->GetDecodingCallStatistics(config_.voe_channel_id, &ds) != -1) {
|
| - stats.decoding_calls_to_silence_generator =
|
| - ds.calls_to_silence_generator;
|
| + stats.decoding_calls_to_silence_generator = ds.calls_to_silence_generator;
|
| stats.decoding_calls_to_neteq = ds.calls_to_neteq;
|
| stats.decoding_normal = ds.decoded_normal;
|
| stats.decoding_plc = ds.decoded_plc;
|
|
|