Index: webrtc/voice_engine/transmit_mixer.cc |
diff --git a/webrtc/voice_engine/transmit_mixer.cc b/webrtc/voice_engine/transmit_mixer.cc |
index be6297287b8bef28e06b654923f2d2c8be483669..ef446aa89269f3a29413a1b958427a98e72c3d1d 100644 |
--- a/webrtc/voice_engine/transmit_mixer.cc |
+++ b/webrtc/voice_engine/transmit_mixer.cc |
@@ -182,9 +182,6 @@ TransmitMixer::TransmitMixer(uint32_t instanceId) : |
audioproc_(NULL), |
_voiceEngineObserverPtr(NULL), |
_processThreadPtr(NULL), |
- _filePlayerPtr(NULL), |
- _fileRecorderPtr(NULL), |
- _fileCallRecorderPtr(NULL), |
// Avoid conflict with other channels by adding 1024 - 1026, |
// won't use as much as 1024 channels. |
_filePlayerId(instanceId + 1024), |
@@ -225,26 +222,17 @@ TransmitMixer::~TransmitMixer() |
DeRegisterExternalMediaProcessing(kRecordingPreprocessing); |
{ |
rtc::CritScope cs(&_critSect); |
- if (_fileRecorderPtr) |
- { |
- _fileRecorderPtr->RegisterModuleFileCallback(NULL); |
- _fileRecorderPtr->StopRecording(); |
- FileRecorder::DestroyFileRecorder(_fileRecorderPtr); |
- _fileRecorderPtr = NULL; |
+ if (file_recorder_) { |
+ file_recorder_->RegisterModuleFileCallback(NULL); |
+ file_recorder_->StopRecording(); |
} |
- if (_fileCallRecorderPtr) |
- { |
- _fileCallRecorderPtr->RegisterModuleFileCallback(NULL); |
- _fileCallRecorderPtr->StopRecording(); |
- FileRecorder::DestroyFileRecorder(_fileCallRecorderPtr); |
- _fileCallRecorderPtr = NULL; |
+ if (file_call_recorder_) { |
+ file_call_recorder_->RegisterModuleFileCallback(NULL); |
+ file_call_recorder_->StopRecording(); |
} |
- if (_filePlayerPtr) |
- { |
- _filePlayerPtr->RegisterModuleFileCallback(NULL); |
- _filePlayerPtr->StopPlayingFile(); |
- FilePlayer::DestroyFilePlayer(_filePlayerPtr); |
- _filePlayerPtr = NULL; |
+ if (file_player_) { |
+ file_player_->RegisterModuleFileCallback(NULL); |
+ file_player_->StopPlayingFile(); |
} |
} |
} |
@@ -496,47 +484,36 @@ int TransmitMixer::StartPlayingFileAsMicrophone(const char* fileName, |
rtc::CritScope cs(&_critSect); |
// Destroy the old instance |
- if (_filePlayerPtr) |
- { |
- _filePlayerPtr->RegisterModuleFileCallback(NULL); |
- FilePlayer::DestroyFilePlayer(_filePlayerPtr); |
- _filePlayerPtr = NULL; |
+ if (file_player_) { |
+ file_player_->RegisterModuleFileCallback(NULL); |
+ file_player_.reset(); |
} |
// Dynamically create the instance |
- _filePlayerPtr |
- = FilePlayer::CreateFilePlayer(_filePlayerId, |
- (const FileFormats) format); |
+ file_player_ = |
+ FilePlayer::NewFilePlayer(_filePlayerId, (const FileFormats)format); |
- if (_filePlayerPtr == NULL) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_INVALID_ARGUMENT, kTraceError, |
- "StartPlayingFileAsMicrophone() filePlayer format isnot correct"); |
- return -1; |
+ if (!file_player_) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_INVALID_ARGUMENT, kTraceError, |
+ "StartPlayingFileAsMicrophone() filePlayer format isnot correct"); |
+ return -1; |
} |
const uint32_t notificationTime(0); |
- if (_filePlayerPtr->StartPlayingFile( |
- fileName, |
- loop, |
- startPosition, |
- volumeScaling, |
- notificationTime, |
- stopPosition, |
- (const CodecInst*) codecInst) != 0) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_BAD_FILE, kTraceError, |
- "StartPlayingFile() failed to start file playout"); |
- _filePlayerPtr->StopPlayingFile(); |
- FilePlayer::DestroyFilePlayer(_filePlayerPtr); |
- _filePlayerPtr = NULL; |
- return -1; |
+ if (file_player_->StartPlayingFile( |
+ fileName, loop, startPosition, volumeScaling, notificationTime, |
+ stopPosition, (const CodecInst*)codecInst) != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_BAD_FILE, kTraceError, |
+ "StartPlayingFile() failed to start file playout"); |
+ file_player_->StopPlayingFile(); |
+ file_player_.reset(); |
+ return -1; |
} |
- _filePlayerPtr->RegisterModuleFileCallback(this); |
+ file_player_->RegisterModuleFileCallback(this); |
_filePlaying = true; |
return 0; |
@@ -573,45 +550,35 @@ int TransmitMixer::StartPlayingFileAsMicrophone(InStream* stream, |
rtc::CritScope cs(&_critSect); |
// Destroy the old instance |
- if (_filePlayerPtr) |
- { |
- _filePlayerPtr->RegisterModuleFileCallback(NULL); |
- FilePlayer::DestroyFilePlayer(_filePlayerPtr); |
- _filePlayerPtr = NULL; |
+ if (file_player_) { |
+ file_player_->RegisterModuleFileCallback(NULL); |
+ file_player_.reset(); |
} |
// Dynamically create the instance |
- _filePlayerPtr |
- = FilePlayer::CreateFilePlayer(_filePlayerId, |
- (const FileFormats) format); |
+ file_player_ = |
+ FilePlayer::NewFilePlayer(_filePlayerId, (const FileFormats)format); |
- if (_filePlayerPtr == NULL) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_INVALID_ARGUMENT, kTraceWarning, |
- "StartPlayingFileAsMicrophone() filePlayer format isnot correct"); |
- return -1; |
+ if (!file_player_) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_INVALID_ARGUMENT, kTraceWarning, |
+ "StartPlayingFileAsMicrophone() filePlayer format isnot correct"); |
+ return -1; |
} |
const uint32_t notificationTime(0); |
- if (_filePlayerPtr->StartPlayingFile( |
- (InStream&) *stream, |
- startPosition, |
- volumeScaling, |
- notificationTime, |
- stopPosition, |
- (const CodecInst*) codecInst) != 0) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_BAD_FILE, kTraceError, |
- "StartPlayingFile() failed to start file playout"); |
- _filePlayerPtr->StopPlayingFile(); |
- FilePlayer::DestroyFilePlayer(_filePlayerPtr); |
- _filePlayerPtr = NULL; |
- return -1; |
- } |
- _filePlayerPtr->RegisterModuleFileCallback(this); |
+ if (file_player_->StartPlayingFile( |
+ (InStream&)*stream, startPosition, volumeScaling, notificationTime, |
+ stopPosition, (const CodecInst*)codecInst) != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_BAD_FILE, kTraceError, |
+ "StartPlayingFile() failed to start file playout"); |
+ file_player_->StopPlayingFile(); |
+ file_player_.reset(); |
+ return -1; |
+ } |
+ file_player_->RegisterModuleFileCallback(this); |
_filePlaying = true; |
return 0; |
@@ -629,17 +596,15 @@ int TransmitMixer::StopPlayingFileAsMicrophone() |
rtc::CritScope cs(&_critSect); |
- if (_filePlayerPtr->StopPlayingFile() != 0) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_CANNOT_STOP_PLAYOUT, kTraceError, |
- "StopPlayingFile() couldnot stop playing file"); |
- return -1; |
+ if (file_player_->StopPlayingFile() != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_CANNOT_STOP_PLAYOUT, kTraceError, |
+ "StopPlayingFile() couldnot stop playing file"); |
+ return -1; |
} |
- _filePlayerPtr->RegisterModuleFileCallback(NULL); |
- FilePlayer::DestroyFilePlayer(_filePlayerPtr); |
- _filePlayerPtr = NULL; |
+ file_player_->RegisterModuleFileCallback(NULL); |
+ file_player_.reset(); |
_filePlaying = false; |
return 0; |
@@ -694,38 +659,30 @@ int TransmitMixer::StartRecordingMicrophone(const char* fileName, |
} |
// Destroy the old instance |
- if (_fileRecorderPtr) |
- { |
- _fileRecorderPtr->RegisterModuleFileCallback(NULL); |
- FileRecorder::DestroyFileRecorder(_fileRecorderPtr); |
- _fileRecorderPtr = NULL; |
- } |
- |
- _fileRecorderPtr = |
- FileRecorder::CreateFileRecorder(_fileRecorderId, |
- (const FileFormats) format); |
- if (_fileRecorderPtr == NULL) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_INVALID_ARGUMENT, kTraceError, |
- "StartRecordingMicrophone() fileRecorder format isnot correct"); |
- return -1; |
- } |
- |
- if (_fileRecorderPtr->StartRecordingAudioFile( |
- fileName, |
- (const CodecInst&) *codecInst, |
- notificationTime) != 0) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_BAD_FILE, kTraceError, |
- "StartRecordingAudioFile() failed to start file recording"); |
- _fileRecorderPtr->StopRecording(); |
- FileRecorder::DestroyFileRecorder(_fileRecorderPtr); |
- _fileRecorderPtr = NULL; |
- return -1; |
- } |
- _fileRecorderPtr->RegisterModuleFileCallback(this); |
+ if (file_recorder_) { |
+ file_recorder_->RegisterModuleFileCallback(NULL); |
+ file_recorder_.reset(); |
+ } |
+ |
+ file_recorder_ = FileRecorder::CreateFileRecorder( |
+ _fileRecorderId, (const FileFormats)format); |
+ if (!file_recorder_) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_INVALID_ARGUMENT, kTraceError, |
+ "StartRecordingMicrophone() fileRecorder format isnot correct"); |
+ return -1; |
+ } |
+ |
+ if (file_recorder_->StartRecordingAudioFile( |
+ fileName, (const CodecInst&)*codecInst, notificationTime) != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_BAD_FILE, kTraceError, |
+ "StartRecordingAudioFile() failed to start file recording"); |
+ file_recorder_->StopRecording(); |
+ file_recorder_.reset(); |
+ return -1; |
+ } |
+ file_recorder_->RegisterModuleFileCallback(this); |
_fileRecording = true; |
return 0; |
@@ -772,37 +729,31 @@ int TransmitMixer::StartRecordingMicrophone(OutStream* stream, |
} |
// Destroy the old instance |
- if (_fileRecorderPtr) |
- { |
- _fileRecorderPtr->RegisterModuleFileCallback(NULL); |
- FileRecorder::DestroyFileRecorder(_fileRecorderPtr); |
- _fileRecorderPtr = NULL; |
+ if (file_recorder_) { |
+ file_recorder_->RegisterModuleFileCallback(NULL); |
+ file_recorder_.reset(); |
} |
- _fileRecorderPtr = |
- FileRecorder::CreateFileRecorder(_fileRecorderId, |
- (const FileFormats) format); |
- if (_fileRecorderPtr == NULL) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_INVALID_ARGUMENT, kTraceError, |
- "StartRecordingMicrophone() fileRecorder format isnot correct"); |
- return -1; |
+ file_recorder_ = FileRecorder::CreateFileRecorder( |
+ _fileRecorderId, (const FileFormats)format); |
+ if (!file_recorder_) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_INVALID_ARGUMENT, kTraceError, |
+ "StartRecordingMicrophone() fileRecorder format isnot correct"); |
+ return -1; |
} |
- if (_fileRecorderPtr->StartRecordingAudioFile(*stream, |
- *codecInst, |
- notificationTime) != 0) |
- { |
- _engineStatisticsPtr->SetLastError(VE_BAD_FILE, kTraceError, |
- "StartRecordingAudioFile() failed to start file recording"); |
- _fileRecorderPtr->StopRecording(); |
- FileRecorder::DestroyFileRecorder(_fileRecorderPtr); |
- _fileRecorderPtr = NULL; |
- return -1; |
+ if (file_recorder_->StartRecordingAudioFile(*stream, *codecInst, |
+ notificationTime) != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_BAD_FILE, kTraceError, |
+ "StartRecordingAudioFile() failed to start file recording"); |
+ file_recorder_->StopRecording(); |
+ file_recorder_.reset(); |
+ return -1; |
} |
- _fileRecorderPtr->RegisterModuleFileCallback(this); |
+ file_recorder_->RegisterModuleFileCallback(this); |
_fileRecording = true; |
return 0; |
@@ -823,16 +774,14 @@ int TransmitMixer::StopRecordingMicrophone() |
return 0; |
} |
- if (_fileRecorderPtr->StopRecording() != 0) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_STOP_RECORDING_FAILED, kTraceError, |
- "StopRecording(), could not stop recording"); |
- return -1; |
+ if (file_recorder_->StopRecording() != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_STOP_RECORDING_FAILED, kTraceError, |
+ "StopRecording(), could not stop recording"); |
+ return -1; |
} |
- _fileRecorderPtr->RegisterModuleFileCallback(NULL); |
- FileRecorder::DestroyFileRecorder(_fileRecorderPtr); |
- _fileRecorderPtr = NULL; |
+ file_recorder_->RegisterModuleFileCallback(NULL); |
+ file_recorder_.reset(); |
_fileRecording = false; |
return 0; |
@@ -879,38 +828,30 @@ int TransmitMixer::StartRecordingCall(const char* fileName, |
rtc::CritScope cs(&_critSect); |
// Destroy the old instance |
- if (_fileCallRecorderPtr) |
- { |
- _fileCallRecorderPtr->RegisterModuleFileCallback(NULL); |
- FileRecorder::DestroyFileRecorder(_fileCallRecorderPtr); |
- _fileCallRecorderPtr = NULL; |
- } |
- |
- _fileCallRecorderPtr |
- = FileRecorder::CreateFileRecorder(_fileCallRecorderId, |
- (const FileFormats) format); |
- if (_fileCallRecorderPtr == NULL) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_INVALID_ARGUMENT, kTraceError, |
- "StartRecordingCall() fileRecorder format isnot correct"); |
- return -1; |
- } |
- |
- if (_fileCallRecorderPtr->StartRecordingAudioFile( |
- fileName, |
- (const CodecInst&) *codecInst, |
- notificationTime) != 0) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_BAD_FILE, kTraceError, |
- "StartRecordingAudioFile() failed to start file recording"); |
- _fileCallRecorderPtr->StopRecording(); |
- FileRecorder::DestroyFileRecorder(_fileCallRecorderPtr); |
- _fileCallRecorderPtr = NULL; |
- return -1; |
- } |
- _fileCallRecorderPtr->RegisterModuleFileCallback(this); |
+ if (file_call_recorder_) { |
+ file_call_recorder_->RegisterModuleFileCallback(NULL); |
+ file_call_recorder_.reset(); |
+ } |
+ |
+ file_call_recorder_ = FileRecorder::CreateFileRecorder( |
+ _fileCallRecorderId, (const FileFormats)format); |
+ if (!file_call_recorder_) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_INVALID_ARGUMENT, kTraceError, |
+ "StartRecordingCall() fileRecorder format isnot correct"); |
+ return -1; |
+ } |
+ |
+ if (file_call_recorder_->StartRecordingAudioFile( |
+ fileName, (const CodecInst&)*codecInst, notificationTime) != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_BAD_FILE, kTraceError, |
+ "StartRecordingAudioFile() failed to start file recording"); |
+ file_call_recorder_->StopRecording(); |
+ file_call_recorder_.reset(); |
+ return -1; |
+ } |
+ file_call_recorder_->RegisterModuleFileCallback(this); |
_fileCallRecording = true; |
return 0; |
@@ -957,37 +898,31 @@ int TransmitMixer::StartRecordingCall(OutStream* stream, |
rtc::CritScope cs(&_critSect); |
// Destroy the old instance |
- if (_fileCallRecorderPtr) |
- { |
- _fileCallRecorderPtr->RegisterModuleFileCallback(NULL); |
- FileRecorder::DestroyFileRecorder(_fileCallRecorderPtr); |
- _fileCallRecorderPtr = NULL; |
+ if (file_call_recorder_) { |
+ file_call_recorder_->RegisterModuleFileCallback(NULL); |
+ file_call_recorder_.reset(); |
} |
- _fileCallRecorderPtr = |
- FileRecorder::CreateFileRecorder(_fileCallRecorderId, |
- (const FileFormats) format); |
- if (_fileCallRecorderPtr == NULL) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_INVALID_ARGUMENT, kTraceError, |
- "StartRecordingCall() fileRecorder format isnot correct"); |
- return -1; |
+ file_call_recorder_ = FileRecorder::CreateFileRecorder( |
+ _fileCallRecorderId, (const FileFormats)format); |
+ if (!file_call_recorder_) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_INVALID_ARGUMENT, kTraceError, |
+ "StartRecordingCall() fileRecorder format isnot correct"); |
+ return -1; |
} |
- if (_fileCallRecorderPtr->StartRecordingAudioFile(*stream, |
- *codecInst, |
- notificationTime) != 0) |
- { |
- _engineStatisticsPtr->SetLastError(VE_BAD_FILE, kTraceError, |
- "StartRecordingAudioFile() failed to start file recording"); |
- _fileCallRecorderPtr->StopRecording(); |
- FileRecorder::DestroyFileRecorder(_fileCallRecorderPtr); |
- _fileCallRecorderPtr = NULL; |
- return -1; |
+ if (file_call_recorder_->StartRecordingAudioFile(*stream, *codecInst, |
+ notificationTime) != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_BAD_FILE, kTraceError, |
+ "StartRecordingAudioFile() failed to start file recording"); |
+ file_call_recorder_->StopRecording(); |
+ file_call_recorder_.reset(); |
+ return -1; |
} |
- _fileCallRecorderPtr->RegisterModuleFileCallback(this); |
+ file_call_recorder_->RegisterModuleFileCallback(this); |
_fileCallRecording = true; |
return 0; |
@@ -1007,17 +942,15 @@ int TransmitMixer::StopRecordingCall() |
rtc::CritScope cs(&_critSect); |
- if (_fileCallRecorderPtr->StopRecording() != 0) |
- { |
- _engineStatisticsPtr->SetLastError( |
- VE_STOP_RECORDING_FAILED, kTraceError, |
- "StopRecording(), could not stop recording"); |
- return -1; |
+ if (file_call_recorder_->StopRecording() != 0) { |
+ _engineStatisticsPtr->SetLastError( |
+ VE_STOP_RECORDING_FAILED, kTraceError, |
+ "StopRecording(), could not stop recording"); |
+ return -1; |
} |
- _fileCallRecorderPtr->RegisterModuleFileCallback(NULL); |
- FileRecorder::DestroyFileRecorder(_fileCallRecorderPtr); |
- _fileCallRecorderPtr = NULL; |
+ file_call_recorder_->RegisterModuleFileCallback(NULL); |
+ file_call_recorder_.reset(); |
_fileCallRecording = false; |
return 0; |
@@ -1131,20 +1064,18 @@ int32_t TransmitMixer::RecordAudioToFile( |
uint32_t mixingFrequency) |
{ |
rtc::CritScope cs(&_critSect); |
- if (_fileRecorderPtr == NULL) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), |
- "TransmitMixer::RecordAudioToFile() filerecorder doesnot" |
- "exist"); |
- return -1; |
+ if (!file_recorder_) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), |
+ "TransmitMixer::RecordAudioToFile() filerecorder doesnot" |
+ "exist"); |
+ return -1; |
} |
- if (_fileRecorderPtr->RecordAudioToFile(_audioFrame) != 0) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), |
- "TransmitMixer::RecordAudioToFile() file recording" |
- "failed"); |
- return -1; |
+ if (file_recorder_->RecordAudioToFile(_audioFrame) != 0) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), |
+ "TransmitMixer::RecordAudioToFile() file recording" |
+ "failed"); |
+ return -1; |
} |
return 0; |
@@ -1158,23 +1089,19 @@ int32_t TransmitMixer::MixOrReplaceAudioWithFile( |
size_t fileSamples(0); |
{ |
rtc::CritScope cs(&_critSect); |
- if (_filePlayerPtr == NULL) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceVoice, |
- VoEId(_instanceId, -1), |
- "TransmitMixer::MixOrReplaceAudioWithFile()" |
- "fileplayer doesnot exist"); |
- return -1; |
+ if (!file_player_) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), |
+ "TransmitMixer::MixOrReplaceAudioWithFile()" |
+ "fileplayer doesnot exist"); |
+ return -1; |
} |
- if (_filePlayerPtr->Get10msAudioFromFile(fileBuffer.get(), |
- fileSamples, |
- mixingFrequency) == -1) |
- { |
- WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), |
- "TransmitMixer::MixOrReplaceAudioWithFile() file" |
- " mixing failed"); |
- return -1; |
+ if (file_player_->Get10msAudioFromFile(fileBuffer.get(), fileSamples, |
+ mixingFrequency) == -1) { |
+ WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, -1), |
+ "TransmitMixer::MixOrReplaceAudioWithFile() file" |
+ " mixing failed"); |
+ return -1; |
} |
} |