summaryrefslogtreecommitdiff
path: root/orkaudio
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2005-12-06 17:27:50 +0000
committerHenri Herscher <henri@oreka.org>2005-12-06 17:27:50 +0000
commit57834e7e773ec0719b01ada6552674caa81adc61 (patch)
tree28a99e0122bb08dbdadd305ee182d0d7cb5b4fe2 /orkaudio
parentdf29199359505bcd1dfe84d4b06224ebcf4f3b8d (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.cpp3
-rw-r--r--orkaudio/BatchProcessing.cpp2
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.cpp5
-rw-r--r--orkaudio/audiofile/AudioFile.cpp5
-rw-r--r--orkaudio/audiofile/AudioFile.h2
-rw-r--r--orkaudio/audiofile/LibSndFileFile.cpp9
-rw-r--r--orkaudio/audiofile/PcmFile.cpp8
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";