diff options
author | henrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-05-12 12:24:10 +0000 |
---|---|---|
committer | henrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-05-12 12:24:10 +0000 |
commit | 7f5e2973967c6ef5859334eb4ccac2c7c0020565 (patch) | |
tree | 5068c2576f3e4b180cde9617e4c893497ca04b87 /voice_engine/voe_file_impl.cc | |
parent | d2632a025025efa1e5b56ff54941a217547dfde8 (diff) | |
download | webrtc-7f5e2973967c6ef5859334eb4ccac2c7c0020565.tar.gz |
Removes parts of the webrtc::VoEFile sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14429004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@6103 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'voice_engine/voe_file_impl.cc')
-rw-r--r-- | voice_engine/voe_file_impl.cc | 762 |
1 files changed, 0 insertions, 762 deletions
diff --git a/voice_engine/voe_file_impl.cc b/voice_engine/voe_file_impl.cc index d8779c81..95e9d21b 100644 --- a/voice_engine/voe_file_impl.cc +++ b/voice_engine/voe_file_impl.cc @@ -164,27 +164,6 @@ int VoEFileImpl::IsPlayingFileLocally(int channel) return channelPtr->IsPlayingFileLocally(); } -int VoEFileImpl::ScaleLocalFilePlayout(int channel, float scale) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ScaleLocalFilePlayout(channel=%d, scale=%5.3f)", - channel, scale); - if (!_shared->statistics().Initialized()) - { - _shared->SetLastError(VE_NOT_INITED, kTraceError); - return -1; - } - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel); - voe::Channel* channelPtr = ch.channel(); - if (channelPtr == NULL) - { - _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError, - "StopPlayingFileLocally() failed to locate channel"); - return -1; - } - return channelPtr->ScaleLocalFilePlayout(scale); -} - int VoEFileImpl::StartPlayingFileAsMicrophone(int channel, const char fileNameUTF8[1024], bool loop, @@ -395,36 +374,6 @@ int VoEFileImpl::IsPlayingFileAsMicrophone(int channel) } } -int VoEFileImpl::ScaleFileAsMicrophonePlayout(int channel, float scale) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ScaleFileAsMicrophonePlayout(channel=%d, scale=%5.3f)", - channel, scale); - - if (!_shared->statistics().Initialized()) - { - _shared->SetLastError(VE_NOT_INITED, kTraceError); - return -1; - } - if (channel == -1) - { - return _shared->transmit_mixer()->ScaleFileAsMicrophonePlayout(scale); - } - else - { - // Stop adding file after demultiplexing <=> affects one channel only - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel); - voe::Channel* channelPtr = ch.channel(); - if (channelPtr == NULL) - { - _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError, - "IsPlayingFileAsMicrophone() failed to locate channel"); - return -1; - } - return channelPtr->ScaleFileAsMicrophonePlayout(scale); - } -} - int VoEFileImpl::StartRecordingPlayout( int channel, const char* fileNameUTF8, CodecInst* compression, int maxSizeBytes) @@ -642,717 +591,6 @@ int VoEFileImpl::StopRecordingMicrophone() return err; } -// TODO(andrew): a cursory inspection suggests there's a large amount of -// overlap in these convert functions which could be refactored to a helper. -int VoEFileImpl::ConvertPCMToWAV(const char* fileNameInUTF8, - const char* fileNameOutUTF8) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertPCMToWAV(fileNameInUTF8=%s, fileNameOutUTF8=%s)", - fileNameInUTF8, fileNameOutUTF8); - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer( - -1, - kFileFormatPcm16kHzFile)); - - int res=playerObj.StartPlayingFile(fileNameInUTF8,false,0,1.0,0,0, NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToWAV failed to create player object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder( - -1, kFileFormatWavFile)); - - CodecInst codecInst; - strncpy(codecInst.plname,"L16",32); - codecInst.channels = 1; - codecInst.rate = 256000; - codecInst.plfreq = 16000; - codecInst.pltype = 94; - codecInst.pacsize = 160; - - res = recObj.StartRecordingAudioFile(fileNameOutUTF8,codecInst,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToWAV failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, - frequency, AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertPCMToWAV failed during conversion (write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - -int VoEFileImpl::ConvertPCMToWAV(InStream* streamIn, OutStream* streamOut) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertPCMToWAV(streamIn, streamOut)"); - - if ((streamIn == NULL) || (streamOut == NULL)) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), "invalid stream handles"); - return (-1); - } - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer(-1, - kFileFormatPcm16kHzFile)); - int res = playerObj.StartPlayingFile(*streamIn,0,1.0,0,0,NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToWAV failed to create player object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder(-1, - kFileFormatWavFile)); - CodecInst codecInst; - strncpy(codecInst.plname, "L16", 32); - codecInst.channels = 1; - codecInst.rate = 256000; - codecInst.plfreq = 16000; - codecInst.pltype = 94; - codecInst.pacsize = 160; - res = recObj.StartRecordingAudioFile(*streamOut,codecInst,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToWAV failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, frequency, - AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertPCMToWAV failed during conversion (write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - -int VoEFileImpl::ConvertWAVToPCM(const char* fileNameInUTF8, - const char* fileNameOutUTF8) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertWAVToPCM(fileNameInUTF8=%s, fileNameOutUTF8=%s)", - fileNameInUTF8, fileNameOutUTF8); - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer(-1, - kFileFormatWavFile)); - int res = playerObj.StartPlayingFile(fileNameInUTF8,false,0,1.0,0,0,NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertWAVToPCM failed to create player object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder( - -1, kFileFormatPcm16kHzFile)); - - CodecInst codecInst; - strncpy(codecInst.plname,"L16",32); - codecInst.channels = 1; - codecInst.rate = 256000; - codecInst.plfreq = 16000; - codecInst.pltype = 94; - codecInst.pacsize = 160; - - res = recObj.StartRecordingAudioFile(fileNameOutUTF8,codecInst,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertWAVToPCM failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, - frequency, AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertWAVToPCM failed during conversion (write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - -int VoEFileImpl::ConvertWAVToPCM(InStream* streamIn, OutStream* streamOut) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertWAVToPCM(streamIn, streamOut)"); - - if ((streamIn == NULL) || (streamOut == NULL)) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), "invalid stream handles"); - return (-1); - } - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer(-1, - kFileFormatWavFile)); - int res = playerObj.StartPlayingFile(*streamIn,0,1.0,0,0,NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertWAVToPCM failed to create player object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder( - -1, kFileFormatPcm16kHzFile)); - - CodecInst codecInst; - strncpy(codecInst.plname,"L16",32); - codecInst.channels = 1; - codecInst.rate = 256000; - codecInst.plfreq = 16000; - codecInst.pltype = 94; - codecInst.pacsize = 160; - - res = recObj.StartRecordingAudioFile(*streamOut,codecInst,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertWAVToPCM failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, frequency, - AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertWAVToPCM failed during conversion (write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - -int VoEFileImpl::ConvertPCMToCompressed(const char* fileNameInUTF8, - const char* fileNameOutUTF8, - CodecInst* compression) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertPCMToCompressed(fileNameInUTF8=%s, fileNameOutUTF8=%s" - ", compression)", fileNameInUTF8, fileNameOutUTF8); - WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1), - " compression: plname=%s, plfreq=%d, pacsize=%d", - compression->plname, compression->plfreq, - compression->pacsize); - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer( - -1, - kFileFormatPcm16kHzFile)); - int res = playerObj.StartPlayingFile(fileNameInUTF8,false,0,1.0,0,0, NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToCompressed failed to create player object"); - // Clean up and shutdown the file player - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder( - -1, - kFileFormatCompressedFile)); - res = recObj.StartRecordingAudioFile(fileNameOutUTF8, *compression,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToCompressed failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, - frequency, AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertPCMToCompressed failed during conversion " - "(write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - -int VoEFileImpl::ConvertPCMToCompressed(InStream* streamIn, - OutStream* streamOut, - CodecInst* compression) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertPCMToCompressed(streamIn, streamOut, compression)"); - - if ((streamIn == NULL) || (streamOut == NULL)) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), "invalid stream handles"); - return (-1); - } - - WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1), - " compression: plname=%s, plfreq=%d, pacsize=%d", - compression->plname, compression->plfreq, - compression->pacsize); - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer( - -1, kFileFormatPcm16kHzFile)); - - int res = playerObj.StartPlayingFile(*streamIn,0,1.0,0,0,NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToCompressed failed to create player object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder( - -1, kFileFormatCompressedFile)); - res = recObj.StartRecordingAudioFile(*streamOut,*compression,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertPCMToCompressed failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, - frequency, AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertPCMToCompressed failed during conversion " - "(write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - -int VoEFileImpl::ConvertCompressedToPCM(const char* fileNameInUTF8, - const char* fileNameOutUTF8) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertCompressedToPCM(fileNameInUTF8=%s," - " fileNameOutUTF8=%s)", - fileNameInUTF8, fileNameOutUTF8); - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer( - -1, kFileFormatCompressedFile)); - - int res = playerObj.StartPlayingFile(fileNameInUTF8,false,0,1.0,0,0,NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertCompressedToPCM failed to create player object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder( - -1, kFileFormatPcm16kHzFile)); - - CodecInst codecInst; - strncpy(codecInst.plname,"L16",32); - codecInst.channels = 1; - codecInst.rate = 256000; - codecInst.plfreq = 16000; - codecInst.pltype = 94; - codecInst.pacsize = 160; - - res = recObj.StartRecordingAudioFile(fileNameOutUTF8,codecInst,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertCompressedToPCM failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, - frequency, - AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertCompressedToPCM failed during conversion " - "(write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - -int VoEFileImpl::ConvertCompressedToPCM(InStream* streamIn, - OutStream* streamOut) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "ConvertCompressedToPCM(file, file);"); - - if ((streamIn == NULL) || (streamOut == NULL)) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), "invalid stream handles"); - return (-1); - } - - // Create file player object - FilePlayer& playerObj(*FilePlayer::CreateFilePlayer( - -1, kFileFormatCompressedFile)); - int res; - - res = playerObj.StartPlayingFile(*streamIn,0,1.0,0,0,NULL); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertCompressedToPCM failed to create player object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - return -1; - } - - // Create file recorder object - FileRecorder& recObj(*FileRecorder::CreateFileRecorder( - -1, kFileFormatPcm16kHzFile)); - - CodecInst codecInst; - strncpy(codecInst.plname,"L16",32); - codecInst.channels = 1; - codecInst.rate = 256000; - codecInst.plfreq = 16000; - codecInst.pltype = 94; - codecInst.pacsize = 160; - - res = recObj.StartRecordingAudioFile(*streamOut,codecInst,0); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "ConvertCompressedToPCM failed to create recorder object"); - playerObj.StopPlayingFile(); - FilePlayer::DestroyFilePlayer(&playerObj); - recObj.StopRecording(); - FileRecorder::DestroyFileRecorder(&recObj); - return -1; - } - - // Run throught the file - AudioFrame audioFrame; - int16_t decodedData[160]; - int decLength=0; - const uint32_t frequency = 16000; - - while(!playerObj.Get10msAudioFromFile(decodedData,decLength,frequency)) - { - if(decLength!=frequency/100) - { - // This is an OK way to end - break; - } - audioFrame.UpdateFrame(-1, 0, decodedData, - (uint16_t)decLength, - frequency, - AudioFrame::kNormalSpeech, - AudioFrame::kVadActive); - - res=recObj.RecordAudioToFile(audioFrame); - if(res) - { - WEBRTC_TRACE(kTraceError, kTraceVoice, - VoEId(_shared->instance_id(), -1), - "ConvertCompressedToPCM failed during conversion " - "(write frame)"); - } - } - - playerObj.StopPlayingFile(); - recObj.StopRecording(); - FilePlayer::DestroyFilePlayer(&playerObj); - FileRecorder::DestroyFileRecorder(&recObj); - - return res; -} - - -int VoEFileImpl::GetFileDuration(const char* fileNameUTF8, - int& durationMs, - FileFormats format) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "GetFileDuration(fileNameUTF8=%s, format=%d)", - fileNameUTF8, format); - - // Create a dummy file module for this - MediaFile * fileModule=MediaFile::CreateMediaFile(-1); - - // Temp container of the right format - uint32_t duration; - int res=fileModule->FileDurationMs(fileNameUTF8,duration,format); - if (res) - { - _shared->SetLastError(VE_BAD_FILE, kTraceError, - "GetFileDuration() failed measure file duration"); - return -1; - } - durationMs = duration; - MediaFile::DestroyMediaFile(fileModule); - fileModule = NULL; - - return(res); -} - -int VoEFileImpl::GetPlaybackPosition(int channel, int& positionMs) -{ - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1), - "GetPlaybackPosition(channel=%d)", channel); - - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel); - voe::Channel* channelPtr = ch.channel(); - if (channelPtr == NULL) - { - _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError, - "GetPlaybackPosition() failed to locate channel"); - return -1; - } - return channelPtr->GetLocalPlayoutPosition(positionMs); -} - #endif // #ifdef WEBRTC_VOICE_ENGINE_FILE_API } // namespace webrtc |