diff options
author | Henri Herscher <henri@oreka.org> | 2005-12-06 17:27:50 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2005-12-06 17:27:50 +0000 |
commit | 57834e7e773ec0719b01ada6552674caa81adc61 (patch) | |
tree | 28a99e0122bb08dbdadd305ee182d0d7cb5b4fe2 /orkaudio | |
parent | df29199359505bcd1dfe84d4b06224ebcf4f3b8d (diff) |
Sample rate can now be different than 8KHz
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@94 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio')
-rw-r--r-- | orkaudio/AudioTape.cpp | 3 | ||||
-rw-r--r-- | orkaudio/BatchProcessing.cpp | 2 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 5 | ||||
-rw-r--r-- | orkaudio/audiofile/AudioFile.cpp | 5 | ||||
-rw-r--r-- | orkaudio/audiofile/AudioFile.h | 2 | ||||
-rw-r--r-- | orkaudio/audiofile/LibSndFileFile.cpp | 9 | ||||
-rw-r--r-- | orkaudio/audiofile/PcmFile.cpp | 8 |
7 files changed, 24 insertions, 10 deletions
diff --git a/orkaudio/AudioTape.cpp b/orkaudio/AudioTape.cpp index 05f2867..6c24641 100644 --- a/orkaudio/AudioTape.cpp +++ b/orkaudio/AudioTape.cpp @@ -138,7 +138,7 @@ void AudioTape::Write() { // A file format was successfully added to the tape, open it CStdString file = CONFIG.m_audioOutputPath + "/" + m_filePath + m_fileIdentifier; - m_audioFileRef->Open(file, AudioFile::WRITE); + m_audioFileRef->Open(file, AudioFile::WRITE, false, chunkRef->m_sampleRate); // determine what final extension the file will have after optional compression if(CONFIG.m_storageAudioFormat == FfNative) @@ -262,6 +262,7 @@ void AudioTape::GetMessage(MessageRef& msgRef) pTapeMsg->m_timestamp = m_endDate; } + pTapeMsg->m_recId = m_fileIdentifier; pTapeMsg->m_fileName = m_filePath + m_fileIdentifier + m_fileExtension; pTapeMsg-> m_stage = CaptureEvent::EventTypeToString(captureEventRef->m_type); pTapeMsg->m_capturePort = m_portId; diff --git a/orkaudio/BatchProcessing.cpp b/orkaudio/BatchProcessing.cpp index 130161c..fe73a3d 100644 --- a/orkaudio/BatchProcessing.cpp +++ b/orkaudio/BatchProcessing.cpp @@ -90,7 +90,7 @@ void BatchProcessing::ThreadHandler(void *args) outFileRef.reset(new LibSndFileFile(SF_FORMAT_GSM610 | SF_FORMAT_WAV)); } CStdString file = CONFIG.m_audioOutputPath + "/" + audioTapeRef->GetPath() + audioTapeRef->GetIdentifier(); - outFileRef->Open(file, AudioFile::WRITE); + outFileRef->Open(file, AudioFile::WRITE, false, fileRef->GetSampleRate()); while(fileRef->ReadChunkMono(chunkRef)) { diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp index 1283b35..b6890f4 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp @@ -263,11 +263,6 @@ void RtpSession::AddRtpPacket(RtpPacketInfoRef& rtpPacket) Start(); ReportMetadata(); } - - // send audio buffer - //AudioChunkRef chunkRef(new AudioChunk); - //chunkRef->SetBuffer(rtpPacket->m_payload, rtpPacket->m_payloadSize, AudioChunk::AlawAudio); - //g_audioChunkCallBack(chunkRef, m_ipAndPort); if(m_started) { diff --git a/orkaudio/audiofile/AudioFile.cpp b/orkaudio/audiofile/AudioFile.cpp index 377963b..848f55b 100644 --- a/orkaudio/audiofile/AudioFile.cpp +++ b/orkaudio/audiofile/AudioFile.cpp @@ -56,3 +56,8 @@ void AudioFile::Delete() { ACE_OS::unlink((PCSTR)m_filename); } + +int AudioFile::GetSampleRate() +{ + return m_sampleRate; +}
\ No newline at end of file diff --git a/orkaudio/audiofile/AudioFile.h b/orkaudio/audiofile/AudioFile.h index cd7d6f6..bc9cbcf 100644 --- a/orkaudio/audiofile/AudioFile.h +++ b/orkaudio/audiofile/AudioFile.h @@ -55,12 +55,14 @@ public: void MoveOrig(); void Delete(); virtual CStdString GetExtension() = 0; + virtual int GetSampleRate(); static void RecursiveMkdir(CStdString& path); protected: CStdString m_filename; fileOpenModeEnum m_mode; int m_numChunksWritten; + int m_sampleRate; }; typedef boost::shared_ptr<AudioFile> AudioFileRef; diff --git a/orkaudio/audiofile/LibSndFileFile.cpp b/orkaudio/audiofile/LibSndFileFile.cpp index cc5bf82..fbbf3cb 100644 --- a/orkaudio/audiofile/LibSndFileFile.cpp +++ b/orkaudio/audiofile/LibSndFileFile.cpp @@ -27,6 +27,7 @@ LibSndFileFile::LibSndFileFile(int fileFormat) m_pFile = NULL; m_numChunksWritten = 0; m_mode = READ; + m_sampleRate = 0; } LibSndFileFile::~LibSndFileFile() @@ -42,7 +43,11 @@ void LibSndFileFile::Open(CStdString& filename, fileOpenModeEnum mode, bool ster } m_mode = mode; stereo ? m_fileInfo.channels = 2 : m_fileInfo.channels = 1; - m_fileInfo.samplerate = sampleRate; + if(m_sampleRate == 0) + { + m_sampleRate = sampleRate; + m_fileInfo.samplerate = sampleRate; + } if( (mode==WRITE) && !sf_format_check(&m_fileInfo)) { @@ -98,7 +103,7 @@ int LibSndFileFile::ReadChunkMono(AudioChunkRef& chunk) chunk.reset(new AudioChunk()); short temp[8000]; numRead = sf_read_short(m_pFile, temp, 8000); - chunk->SetBuffer(temp, sizeof(short)*numRead, AudioChunk::PcmAudio); + chunk->SetBuffer(temp, sizeof(short)*numRead, AudioChunk::PcmAudio, 0, 0, m_sampleRate); } else { diff --git a/orkaudio/audiofile/PcmFile.cpp b/orkaudio/audiofile/PcmFile.cpp index 93f4743..0acfb3f 100644 --- a/orkaudio/audiofile/PcmFile.cpp +++ b/orkaudio/audiofile/PcmFile.cpp @@ -18,6 +18,7 @@ PcmFile::PcmFile() m_stream = NULL; m_mode = READ; m_numChunksWritten = 0; + m_sampleRate = 0; } PcmFile::~PcmFile() @@ -61,7 +62,7 @@ int PcmFile::ReadChunkMono(AudioChunkRef& chunkRef) chunkRef.reset(new AudioChunk()); short temp[PCM_FILE_DEFAULT_CHUNK_NUM_SAMPLES]; numRead = ACE_OS::fread(temp, sizeof(short), PCM_FILE_DEFAULT_CHUNK_NUM_SAMPLES, m_stream); - chunkRef->SetBuffer(temp, sizeof(short)*numRead, AudioChunk::PcmAudio); + chunkRef->SetBuffer(temp, sizeof(short)*numRead, AudioChunk::PcmAudio, 0, 0, m_sampleRate); } else { @@ -73,6 +74,11 @@ int PcmFile::ReadChunkMono(AudioChunkRef& chunkRef) void PcmFile::Open(CStdString& filename, fileOpenModeEnum mode, bool stereo, int sampleRate) { + if(m_sampleRate == 0) + { + m_sampleRate = sampleRate; + } + if(!m_filename.Equals(filename)) { m_filename = filename + ".pcm"; |