summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-08-01 14:55:23 +0000
committerHenri Herscher <henri@oreka.org>2006-08-01 14:55:23 +0000
commit3ce7841e81e44a21c0aaad0881c104699f871c3f (patch)
tree61341474d5b78f17b11573c14c1909c6d19adf29
parent7eb2bf35a3e972fa4cfdad4560945296b86f2550 (diff)
Applying changeset 305 from 0.5 to trunk:
Fixed RtpMixer memory leak when a silence buffer was created. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@324 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/filters/rtpmixer/RtpMixer.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/orkaudio/filters/rtpmixer/RtpMixer.cpp b/orkaudio/filters/rtpmixer/RtpMixer.cpp
index d5c8067..eaa76a8 100644
--- a/orkaudio/filters/rtpmixer/RtpMixer.cpp
+++ b/orkaudio/filters/rtpmixer/RtpMixer.cpp
@@ -333,18 +333,14 @@ void RtpMixer::CreateShipment(size_t silenceSize)
if (silenceSize)
{
byteSize = silenceSize*2;
- char* silenceBuffer = (char*)calloc(byteSize, 1);
- if (silenceBuffer)
- {
- AudioChunkRef chunk(new AudioChunk());
- AudioChunkDetails details;
- details.m_encoding = PcmAudio;
- chunk->SetBuffer((void*)silenceBuffer, byteSize, details);
- m_outputQueue.push(chunk);
- m_shippedSamples += silenceSize;
- m_readPtr = CircularPointerAddOffset(m_readPtr ,silenceSize);
- m_readTimestamp += silenceSize;
- }
+ AudioChunkRef chunk(new AudioChunk());
+ AudioChunkDetails details;
+ details.m_encoding = PcmAudio;
+ chunk->CreateBuffer(byteSize, details);
+ m_outputQueue.push(chunk);
+ m_shippedSamples += silenceSize;
+ m_readPtr = CircularPointerAddOffset(m_readPtr ,silenceSize);
+ m_readTimestamp += silenceSize;
debug.Format("Ship %d silence samples, rd:%x rdts:%u", silenceSize, m_readPtr, m_readTimestamp);
LOG4CXX_DEBUG(m_log, debug);
}