From 587abc36e75f795eb299da7c8487958a991fa2c4 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 11 Aug 2009 20:11:17 +0000 Subject: fixed seeking git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1137 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmp/decoder.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp index 61cd602da..59439c7f0 100644 --- a/src/qmmp/decoder.cpp +++ b/src/qmmp/decoder.cpp @@ -307,6 +307,10 @@ void Decoder::run() seekAudio(_m_seekTime + _m_offset); _m_totalBytes = _m_seekTime * _m_freq * _m_bps * _m_chan / 8000; _m_seekTime = -1; + output()->recycler()->mutex()->lock (); + while(output()->recycler()->used() > 1) + output()->recycler()->done(); + output()->recycler()->mutex()->unlock (); } len = readAudio((char *)(_m_output_buf + _m_output_at), Qmmp::globalBufferSize() - _m_output_at); @@ -365,7 +369,8 @@ void Decoder::flush(bool final) output()->recycler()->mutex()->lock (); if(_m_seekTime >= 0) { - output()->recycler()->clear(); + while(output()->recycler()->used() > 1) + output()->recycler()->done(); output()->recycler()->mutex()->unlock (); _m_output_at = 0; break; -- cgit v1.2.3-13-gbd6f