| Index: webrtc/voice_engine/channel.cc
|
| diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc
|
| index 8992425b537b0e32d329a470d58fe50d2619171d..eeecc64acc20b131c960ada57e02f7573e1ce7eb 100644
|
| --- a/webrtc/voice_engine/channel.cc
|
| +++ b/webrtc/voice_engine/channel.cc
|
| @@ -628,17 +628,16 @@ Channel::NeededFrequency(int32_t id)
|
| return(highestNeeded);
|
| }
|
|
|
| -int32_t
|
| -Channel::CreateChannel(Channel*& channel,
|
| - int32_t channelId,
|
| - uint32_t instanceId,
|
| - const Config& config)
|
| -{
|
| +int32_t Channel::CreateChannel(Channel*& channel,
|
| + int32_t channelId,
|
| + uint32_t instanceId,
|
| + RtcEventLog* const event_log,
|
| + const Config& config) {
|
| WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(instanceId,channelId),
|
| "Channel::CreateChannel(channelId=%d, instanceId=%d)",
|
| channelId, instanceId);
|
|
|
| - channel = new Channel(channelId, instanceId, config);
|
| + channel = new Channel(channelId, instanceId, event_log, config);
|
| if (channel == NULL)
|
| {
|
| WEBRTC_TRACE(kTraceMemory, kTraceVoice,
|
| @@ -713,86 +712,92 @@ Channel::RecordFileEnded(int32_t id)
|
|
|
| Channel::Channel(int32_t channelId,
|
| uint32_t instanceId,
|
| - const Config& config) :
|
| - _fileCritSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
| - _callbackCritSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
| - volume_settings_critsect_(*CriticalSectionWrapper::CreateCriticalSection()),
|
| - _instanceId(instanceId),
|
| - _channelId(channelId),
|
| - rtp_header_parser_(RtpHeaderParser::Create()),
|
| - rtp_payload_registry_(
|
| - new RTPPayloadRegistry(RTPPayloadStrategy::CreateStrategy(true))),
|
| - rtp_receive_statistics_(ReceiveStatistics::Create(
|
| - Clock::GetRealTimeClock())),
|
| - rtp_receiver_(RtpReceiver::CreateAudioReceiver(
|
| - VoEModuleId(instanceId, channelId), Clock::GetRealTimeClock(), this,
|
| - this, this, rtp_payload_registry_.get())),
|
| - telephone_event_handler_(rtp_receiver_->GetTelephoneEventHandler()),
|
| - _outputAudioLevel(),
|
| - _externalTransport(false),
|
| - _inputFilePlayerPtr(NULL),
|
| - _outputFilePlayerPtr(NULL),
|
| - _outputFileRecorderPtr(NULL),
|
| - // Avoid conflict with other channels by adding 1024 - 1026,
|
| - // won't use as much as 1024 channels.
|
| - _inputFilePlayerId(VoEModuleId(instanceId, channelId) + 1024),
|
| - _outputFilePlayerId(VoEModuleId(instanceId, channelId) + 1025),
|
| - _outputFileRecorderId(VoEModuleId(instanceId, channelId) + 1026),
|
| - _outputFileRecording(false),
|
| - _inbandDtmfQueue(VoEModuleId(instanceId, channelId)),
|
| - _inbandDtmfGenerator(VoEModuleId(instanceId, channelId)),
|
| - _outputExternalMedia(false),
|
| - _inputExternalMediaCallbackPtr(NULL),
|
| - _outputExternalMediaCallbackPtr(NULL),
|
| - _timeStamp(0), // This is just an offset, RTP module will add it's own random offset
|
| - _sendTelephoneEventPayloadType(106),
|
| - ntp_estimator_(Clock::GetRealTimeClock()),
|
| - jitter_buffer_playout_timestamp_(0),
|
| - playout_timestamp_rtp_(0),
|
| - playout_timestamp_rtcp_(0),
|
| - playout_delay_ms_(0),
|
| - _numberOfDiscardedPackets(0),
|
| - send_sequence_number_(0),
|
| - ts_stats_lock_(CriticalSectionWrapper::CreateCriticalSection()),
|
| - rtp_ts_wraparound_handler_(new rtc::TimestampWrapAroundHandler()),
|
| - capture_start_rtp_time_stamp_(-1),
|
| - capture_start_ntp_time_ms_(-1),
|
| - _engineStatisticsPtr(NULL),
|
| - _outputMixerPtr(NULL),
|
| - _transmitMixerPtr(NULL),
|
| - _moduleProcessThreadPtr(NULL),
|
| - _audioDeviceModulePtr(NULL),
|
| - _voiceEngineObserverPtr(NULL),
|
| - _callbackCritSectPtr(NULL),
|
| - _transportPtr(NULL),
|
| - _rxVadObserverPtr(NULL),
|
| - _oldVadDecision(-1),
|
| - _sendFrameType(0),
|
| - _externalMixing(false),
|
| - _mixFileWithMicrophone(false),
|
| - _mute(false),
|
| - _panLeft(1.0f),
|
| - _panRight(1.0f),
|
| - _outputGain(1.0f),
|
| - _playOutbandDtmfEvent(false),
|
| - _playInbandDtmfEvent(false),
|
| - _lastLocalTimeStamp(0),
|
| - _lastPayloadType(0),
|
| - _includeAudioLevelIndication(false),
|
| - _outputSpeechType(AudioFrame::kNormalSpeech),
|
| - _average_jitter_buffer_delay_us(0),
|
| - least_required_delay_ms_(0),
|
| - _previousTimestamp(0),
|
| - _recPacketDelayMs(20),
|
| - _RxVadDetection(false),
|
| - _rxAgcIsEnabled(false),
|
| - _rxNsIsEnabled(false),
|
| - restored_packet_in_use_(false),
|
| - rtcp_observer_(new VoERtcpObserver(this)),
|
| - network_predictor_(new NetworkPredictor(Clock::GetRealTimeClock())),
|
| - assoc_send_channel_lock_(CriticalSectionWrapper::CreateCriticalSection()),
|
| - associate_send_channel_(ChannelOwner(nullptr))
|
| -{
|
| + RtcEventLog* const event_log,
|
| + const Config& config)
|
| + : _fileCritSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
| + _callbackCritSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
| + volume_settings_critsect_(
|
| + *CriticalSectionWrapper::CreateCriticalSection()),
|
| + _instanceId(instanceId),
|
| + _channelId(channelId),
|
| + rtp_header_parser_(RtpHeaderParser::Create()),
|
| + rtp_payload_registry_(
|
| + new RTPPayloadRegistry(RTPPayloadStrategy::CreateStrategy(true))),
|
| + rtp_receive_statistics_(
|
| + ReceiveStatistics::Create(Clock::GetRealTimeClock())),
|
| + rtp_receiver_(
|
| + RtpReceiver::CreateAudioReceiver(VoEModuleId(instanceId, channelId),
|
| + Clock::GetRealTimeClock(),
|
| + this,
|
| + this,
|
| + this,
|
| + rtp_payload_registry_.get())),
|
| + telephone_event_handler_(rtp_receiver_->GetTelephoneEventHandler()),
|
| + _outputAudioLevel(),
|
| + _externalTransport(false),
|
| + _inputFilePlayerPtr(NULL),
|
| + _outputFilePlayerPtr(NULL),
|
| + _outputFileRecorderPtr(NULL),
|
| + // Avoid conflict with other channels by adding 1024 - 1026,
|
| + // won't use as much as 1024 channels.
|
| + _inputFilePlayerId(VoEModuleId(instanceId, channelId) + 1024),
|
| + _outputFilePlayerId(VoEModuleId(instanceId, channelId) + 1025),
|
| + _outputFileRecorderId(VoEModuleId(instanceId, channelId) + 1026),
|
| + _outputFileRecording(false),
|
| + _inbandDtmfQueue(VoEModuleId(instanceId, channelId)),
|
| + _inbandDtmfGenerator(VoEModuleId(instanceId, channelId)),
|
| + _outputExternalMedia(false),
|
| + _inputExternalMediaCallbackPtr(NULL),
|
| + _outputExternalMediaCallbackPtr(NULL),
|
| + _timeStamp(0), // This is just an offset, RTP module will add it's own
|
| + // random offset
|
| + _sendTelephoneEventPayloadType(106),
|
| + ntp_estimator_(Clock::GetRealTimeClock()),
|
| + jitter_buffer_playout_timestamp_(0),
|
| + playout_timestamp_rtp_(0),
|
| + playout_timestamp_rtcp_(0),
|
| + playout_delay_ms_(0),
|
| + _numberOfDiscardedPackets(0),
|
| + send_sequence_number_(0),
|
| + ts_stats_lock_(CriticalSectionWrapper::CreateCriticalSection()),
|
| + rtp_ts_wraparound_handler_(new rtc::TimestampWrapAroundHandler()),
|
| + capture_start_rtp_time_stamp_(-1),
|
| + capture_start_ntp_time_ms_(-1),
|
| + _engineStatisticsPtr(NULL),
|
| + _outputMixerPtr(NULL),
|
| + _transmitMixerPtr(NULL),
|
| + _moduleProcessThreadPtr(NULL),
|
| + _audioDeviceModulePtr(NULL),
|
| + _voiceEngineObserverPtr(NULL),
|
| + _callbackCritSectPtr(NULL),
|
| + _transportPtr(NULL),
|
| + _rxVadObserverPtr(NULL),
|
| + _oldVadDecision(-1),
|
| + _sendFrameType(0),
|
| + _externalMixing(false),
|
| + _mixFileWithMicrophone(false),
|
| + _mute(false),
|
| + _panLeft(1.0f),
|
| + _panRight(1.0f),
|
| + _outputGain(1.0f),
|
| + _playOutbandDtmfEvent(false),
|
| + _playInbandDtmfEvent(false),
|
| + _lastLocalTimeStamp(0),
|
| + _lastPayloadType(0),
|
| + _includeAudioLevelIndication(false),
|
| + _outputSpeechType(AudioFrame::kNormalSpeech),
|
| + _average_jitter_buffer_delay_us(0),
|
| + least_required_delay_ms_(0),
|
| + _previousTimestamp(0),
|
| + _recPacketDelayMs(20),
|
| + _RxVadDetection(false),
|
| + _rxAgcIsEnabled(false),
|
| + _rxNsIsEnabled(false),
|
| + restored_packet_in_use_(false),
|
| + rtcp_observer_(new VoERtcpObserver(this)),
|
| + network_predictor_(new NetworkPredictor(Clock::GetRealTimeClock())),
|
| + assoc_send_channel_lock_(CriticalSectionWrapper::CreateCriticalSection()),
|
| + associate_send_channel_(ChannelOwner(nullptr)) {
|
| WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId,_channelId),
|
| "Channel::Channel() - ctor");
|
| AudioCodingModule::Config acm_config;
|
| @@ -805,6 +810,7 @@ Channel::Channel(int32_t channelId,
|
| }
|
| acm_config.neteq_config.enable_fast_accelerate =
|
| config.Get<NetEqFastAccelerate>().enabled;
|
| + acm_config.event_log = event_log;
|
| audio_coding_.reset(AudioCodingModule::Create(acm_config));
|
|
|
| _inbandDtmfQueue.ResetDtmf();
|
|
|