fix up seeking

This commit is contained in:
Glenn Maynard
2006-12-21 05:26:24 +00:00
parent 8f67314017
commit 1b60b0a86d
@@ -167,14 +167,15 @@ int RageSoundSplitterImpl::ReadBuffer()
if( iMinFrameRequested > m_iBufferPositionFrames ) if( iMinFrameRequested > m_iBufferPositionFrames )
{ {
int iEraseFrames = iMinFrameRequested - m_iBufferPositionFrames; int iEraseFrames = iMinFrameRequested - m_iBufferPositionFrames;
iEraseFrames = min( iEraseFrames, (int) m_sBuffer.size() );
m_sBuffer.erase( 0, iEraseFrames * sizeof(int16_t) * m_pSource->GetNumChannels() ); m_sBuffer.erase( 0, iEraseFrames * sizeof(int16_t) * m_pSource->GetNumChannels() );
m_iBufferPositionFrames += iEraseFrames; m_iBufferPositionFrames += iEraseFrames;
} }
if( iMinFrameRequested != m_iBufferPositionFrames ) if( iMinFrameRequested != m_iBufferPositionFrames )
{ {
int iFrame = m_pSource->SetPosition( iMinFrameRequested ); m_pSource->SetPosition( iMinFrameRequested );
m_iBufferPositionFrames = iFrame; m_iBufferPositionFrames = iMinFrameRequested;
m_sBuffer.clear(); m_sBuffer.clear();
} }