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(); |