summaryrefslogtreecommitdiff
path: root/voice_engine/voe_file_impl.cc
diff options
context:
space:
mode:
authorhenrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2014-05-12 12:24:10 +0000
committerhenrika@webrtc.org <henrika@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2014-05-12 12:24:10 +0000
commit7f5e2973967c6ef5859334eb4ccac2c7c0020565 (patch)
tree5068c2576f3e4b180cde9617e4c893497ca04b87 /voice_engine/voe_file_impl.cc
parentd2632a025025efa1e5b56ff54941a217547dfde8 (diff)
downloadwebrtc-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.cc762
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