| Index: voice_engine/output_mixer.cc
|
| diff --git a/voice_engine/output_mixer.cc b/voice_engine/output_mixer.cc
|
| index b90dc3e8dc7c79c7cee0e0f007e248a34bbe0354..8d1e31d35c54df4363a3ab56c12435350f235835 100644
|
| --- a/voice_engine/output_mixer.cc
|
| +++ b/voice_engine/output_mixer.cc
|
| @@ -12,7 +12,6 @@
|
|
|
| #include "modules/audio_processing/include/audio_processing.h"
|
| #include "rtc_base/format_macros.h"
|
| -#include "system_wrappers/include/file_wrapper.h"
|
| #include "system_wrappers/include/trace.h"
|
| #include "voice_engine/statistics.h"
|
| #include "voice_engine/utility.h"
|
| @@ -33,45 +32,6 @@ OutputMixer::NewMixedAudio(int32_t id,
|
| _audioFrame.id_ = id;
|
| }
|
|
|
| -void OutputMixer::PlayNotification(int32_t id, uint32_t durationMs)
|
| -{
|
| - WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::PlayNotification(id=%d, durationMs=%d)",
|
| - id, durationMs);
|
| - // Not implement yet
|
| -}
|
| -
|
| -void OutputMixer::RecordNotification(int32_t id,
|
| - uint32_t durationMs)
|
| -{
|
| - WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::RecordNotification(id=%d, durationMs=%d)",
|
| - id, durationMs);
|
| -
|
| - // Not implement yet
|
| -}
|
| -
|
| -void OutputMixer::PlayFileEnded(int32_t id)
|
| -{
|
| - WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::PlayFileEnded(id=%d)", id);
|
| -
|
| - // not needed
|
| -}
|
| -
|
| -void OutputMixer::RecordFileEnded(int32_t id)
|
| -{
|
| - WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::RecordFileEnded(id=%d)", id);
|
| - assert(id == _instanceId);
|
| -
|
| - rtc::CritScope cs(&_fileCritSect);
|
| - _outputFileRecording = false;
|
| - WEBRTC_TRACE(kTraceStateInfo, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::RecordFileEnded() =>"
|
| - "output file recorder module is shutdown");
|
| -}
|
| -
|
| int32_t
|
| OutputMixer::Create(OutputMixer*& mixer, uint32_t instanceId)
|
| {
|
| @@ -91,8 +51,7 @@ OutputMixer::Create(OutputMixer*& mixer, uint32_t instanceId)
|
| OutputMixer::OutputMixer(uint32_t instanceId) :
|
| _mixerModule(*AudioConferenceMixer::Create(instanceId)),
|
| _instanceId(instanceId),
|
| - _mixingFrequencyHz(8000),
|
| - _outputFileRecording(false)
|
| + _mixingFrequencyHz(8000)
|
| {
|
| WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId,-1),
|
| "OutputMixer::OutputMixer() - ctor");
|
| @@ -119,13 +78,6 @@ OutputMixer::~OutputMixer()
|
| {
|
| WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_instanceId,-1),
|
| "OutputMixer::~OutputMixer() - dtor");
|
| - {
|
| - rtc::CritScope cs(&_fileCritSect);
|
| - if (output_file_recorder_) {
|
| - output_file_recorder_->RegisterModuleFileCallback(NULL);
|
| - output_file_recorder_->StopRecording();
|
| - }
|
| - }
|
| _mixerModule.UnRegisterMixedStreamCallback();
|
| delete &_mixerModule;
|
| }
|
| @@ -156,13 +108,6 @@ OutputMixer::SetMixabilityStatus(MixerParticipant& participant,
|
| return _mixerModule.SetMixabilityStatus(&participant, mixable);
|
| }
|
|
|
| -int32_t
|
| -OutputMixer::SetAnonymousMixabilityStatus(MixerParticipant& participant,
|
| - bool mixable)
|
| -{
|
| - return _mixerModule.SetAnonymousMixabilityStatus(&participant, mixable);
|
| -}
|
| -
|
| int32_t
|
| OutputMixer::MixActiveChannels()
|
| {
|
| @@ -170,179 +115,6 @@ OutputMixer::MixActiveChannels()
|
| return 0;
|
| }
|
|
|
| -int OutputMixer::StartRecordingPlayout(const char* fileName,
|
| - const CodecInst* codecInst)
|
| -{
|
| - WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::StartRecordingPlayout(fileName=%s)", fileName);
|
| -
|
| - if (_outputFileRecording)
|
| - {
|
| - WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId,-1),
|
| - "StartRecordingPlayout() is already recording");
|
| - return 0;
|
| - }
|
| -
|
| - FileFormats format;
|
| - const uint32_t notificationTime(0);
|
| - CodecInst dummyCodec={100,"L16",16000,320,1,320000};
|
| -
|
| - if ((codecInst != NULL) &&
|
| - ((codecInst->channels < 1) || (codecInst->channels > 2)))
|
| - {
|
| - _engineStatisticsPtr->SetLastError(
|
| - VE_BAD_ARGUMENT, kTraceError,
|
| - "StartRecordingPlayout() invalid compression");
|
| - return(-1);
|
| - }
|
| - if(codecInst == NULL)
|
| - {
|
| - format = kFileFormatPcm16kHzFile;
|
| - codecInst=&dummyCodec;
|
| - }
|
| - else if((STR_CASE_CMP(codecInst->plname,"L16") == 0) ||
|
| - (STR_CASE_CMP(codecInst->plname,"PCMU") == 0) ||
|
| - (STR_CASE_CMP(codecInst->plname,"PCMA") == 0))
|
| - {
|
| - format = kFileFormatWavFile;
|
| - }
|
| - else
|
| - {
|
| - format = kFileFormatCompressedFile;
|
| - }
|
| -
|
| - rtc::CritScope cs(&_fileCritSect);
|
| -
|
| - // Destroy the old instance
|
| - if (output_file_recorder_) {
|
| - output_file_recorder_->RegisterModuleFileCallback(NULL);
|
| - output_file_recorder_.reset();
|
| - }
|
| -
|
| - output_file_recorder_ = FileRecorder::CreateFileRecorder(
|
| - _instanceId, (const FileFormats)format);
|
| - if (!output_file_recorder_) {
|
| - _engineStatisticsPtr->SetLastError(
|
| - VE_INVALID_ARGUMENT, kTraceError,
|
| - "StartRecordingPlayout() fileRecorder format isnot correct");
|
| - return -1;
|
| - }
|
| -
|
| - if (output_file_recorder_->StartRecordingAudioFile(
|
| - fileName, (const CodecInst&)*codecInst, notificationTime) != 0) {
|
| - _engineStatisticsPtr->SetLastError(
|
| - VE_BAD_FILE, kTraceError,
|
| - "StartRecordingAudioFile() failed to start file recording");
|
| - output_file_recorder_->StopRecording();
|
| - output_file_recorder_.reset();
|
| - return -1;
|
| - }
|
| - output_file_recorder_->RegisterModuleFileCallback(this);
|
| - _outputFileRecording = true;
|
| -
|
| - return 0;
|
| -}
|
| -
|
| -int OutputMixer::StartRecordingPlayout(OutStream* stream,
|
| - const CodecInst* codecInst)
|
| -{
|
| - WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::StartRecordingPlayout()");
|
| -
|
| - if (_outputFileRecording)
|
| - {
|
| - WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId,-1),
|
| - "StartRecordingPlayout() is already recording");
|
| - return 0;
|
| - }
|
| -
|
| - FileFormats format;
|
| - const uint32_t notificationTime(0);
|
| - CodecInst dummyCodec={100,"L16",16000,320,1,320000};
|
| -
|
| - if (codecInst != NULL && codecInst->channels != 1)
|
| - {
|
| - _engineStatisticsPtr->SetLastError(
|
| - VE_BAD_ARGUMENT, kTraceError,
|
| - "StartRecordingPlayout() invalid compression");
|
| - return(-1);
|
| - }
|
| - if(codecInst == NULL)
|
| - {
|
| - format = kFileFormatPcm16kHzFile;
|
| - codecInst=&dummyCodec;
|
| - }
|
| - else if((STR_CASE_CMP(codecInst->plname,"L16") == 0) ||
|
| - (STR_CASE_CMP(codecInst->plname,"PCMU") == 0) ||
|
| - (STR_CASE_CMP(codecInst->plname,"PCMA") == 0))
|
| - {
|
| - format = kFileFormatWavFile;
|
| - }
|
| - else
|
| - {
|
| - format = kFileFormatCompressedFile;
|
| - }
|
| -
|
| - rtc::CritScope cs(&_fileCritSect);
|
| -
|
| - // Destroy the old instance
|
| - if (output_file_recorder_) {
|
| - output_file_recorder_->RegisterModuleFileCallback(NULL);
|
| - output_file_recorder_.reset();
|
| - }
|
| -
|
| - output_file_recorder_ = FileRecorder::CreateFileRecorder(
|
| - _instanceId, (const FileFormats)format);
|
| - if (!output_file_recorder_) {
|
| - _engineStatisticsPtr->SetLastError(
|
| - VE_INVALID_ARGUMENT, kTraceError,
|
| - "StartRecordingPlayout() fileRecorder format isnot correct");
|
| - return -1;
|
| - }
|
| -
|
| - if (output_file_recorder_->StartRecordingAudioFile(stream, *codecInst,
|
| - notificationTime) != 0) {
|
| - _engineStatisticsPtr->SetLastError(
|
| - VE_BAD_FILE, kTraceError,
|
| - "StartRecordingAudioFile() failed to start file recording");
|
| - output_file_recorder_->StopRecording();
|
| - output_file_recorder_.reset();
|
| - return -1;
|
| - }
|
| -
|
| - output_file_recorder_->RegisterModuleFileCallback(this);
|
| - _outputFileRecording = true;
|
| -
|
| - return 0;
|
| -}
|
| -
|
| -int OutputMixer::StopRecordingPlayout()
|
| -{
|
| - WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId,-1),
|
| - "OutputMixer::StopRecordingPlayout()");
|
| -
|
| - if (!_outputFileRecording)
|
| - {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_instanceId,-1),
|
| - "StopRecordingPlayout() file isnot recording");
|
| - return -1;
|
| - }
|
| -
|
| - rtc::CritScope cs(&_fileCritSect);
|
| -
|
| - if (output_file_recorder_->StopRecording() != 0) {
|
| - _engineStatisticsPtr->SetLastError(
|
| - VE_STOP_RECORDING_FAILED, kTraceError,
|
| - "StopRecording(), could not stop recording");
|
| - return -1;
|
| - }
|
| - output_file_recorder_->RegisterModuleFileCallback(NULL);
|
| - output_file_recorder_.reset();
|
| - _outputFileRecording = false;
|
| -
|
| - return 0;
|
| -}
|
| -
|
| int OutputMixer::GetMixedAudio(int sample_rate_hz,
|
| size_t num_channels,
|
| AudioFrame* frame) {
|
| @@ -351,13 +123,6 @@ int OutputMixer::GetMixedAudio(int sample_rate_hz,
|
| "OutputMixer::GetMixedAudio(sample_rate_hz=%d, num_channels=%" PRIuS ")",
|
| sample_rate_hz, num_channels);
|
|
|
| - // --- Record playout if enabled
|
| - {
|
| - rtc::CritScope cs(&_fileCritSect);
|
| - if (_outputFileRecording && output_file_recorder_)
|
| - output_file_recorder_->RecordAudioToFile(_audioFrame);
|
| - }
|
| -
|
| frame->num_channels_ = num_channels;
|
| frame->sample_rate_hz_ = sample_rate_hz;
|
| // TODO(andrew): Ideally the downmixing would occur much earlier, in
|
|
|