git-svn-id: svn://elaine/murooma/trunk@203 d8a302eb-03bc-478d-80e4-98257eca68ef
This commit is contained in:
(no author) 2014-08-21 21:24:14 +00:00
parent f521230f41
commit f269b6deb8

View file

@ -123,7 +123,7 @@ void Stream::resetBuffers()
void Stream::getPlayerChunk(void* outputBuffer, double outputBufferDacTime, unsigned long framesPerBuffer) void Stream::getPlayerChunk(void* outputBuffer, double outputBufferDacTime, unsigned long framesPerBuffer)
{ {
//cout << "framesPerBuffer: " << framesPerBuffer << "\tms: " << framesPerBuffer*2 / PLAYER_CHUNK_MS_SIZE << "\t" << PLAYER_CHUNK_SIZE << "\n"; //cout << "framesPerBuffer: " << framesPerBuffer << "\tms: " << framesPerBuffer*2 / PLAYER_CHUNK_MS_SIZE << "\t" << PLAYER_CHUNK_SIZE << "\n";
int msBuffer = floor(framesPerBuffer / (hz_/1000)); // int msBuffer = floor(framesPerBuffer / (hz_/1000));
//cout << msBuffer << " ms, " << framesPerBuffer << "\n"; //cout << msBuffer << " ms, " << framesPerBuffer << "\n";
int ticks = 0; int ticks = 0;
long currentTick = getTickCount(); long currentTick = getTickCount();
@ -142,27 +142,27 @@ void Stream::getPlayerChunk(void* outputBuffer, double outputBufferDacTime, unsi
if (sleep != 0) if (sleep != 0)
{ {
resetBuffers(); resetBuffers();
if (sleep < -20) if (sleep < -10)
{ {
sleep = Chunk::getAge(getSilentPlayerChunk(outputBuffer, framesPerBuffer)) - bufferMs + latencyMs; sleep = Chunk::getAge(getSilentPlayerChunk(outputBuffer, framesPerBuffer)) - bufferMs + latencyMs;
std::cerr << "Sleep: " << sleep << ", chunks: " << chunks.size() << "\n"; std::cerr << "Sleep: " << sleep << ", chunks: " << chunks.size() << "\n";
// std::clog << kLogNotice << "sleep: " << sleep << std::endl; // std::clog << kLogNotice << "sleep: " << sleep << std::endl;
if (sleep > -msBuffer/2) // if (sleep > -msBuffer/2)
sleep = 0; // sleep = 0;
return; return;
} }
else if (sleep > 20) else if (sleep > 10)
{ {
// std::clog << kLogNotice << "sleep: " << sleep << std::endl; // std::clog << kLogNotice << "sleep: " << sleep << std::endl;
while (true) while (true)
{ {
int age = Chunk::getAge(getNextPlayerChunk(outputBuffer, framesPerBuffer)) - bufferMs + latencyMs; sleep = Chunk::getAge(getNextPlayerChunk(outputBuffer, framesPerBuffer)) - bufferMs + latencyMs;
usleep(100); usleep(100);
// std::clog << kLogNotice << "age: " << age << std::endl; // std::clog << kLogNotice << "age: " << age << std::endl;
if (age < 0) if (sleep < 0)
break; break;
} }
sleep = 0; // sleep = 0;
return; return;
} }
else if (sleep < 0) else if (sleep < 0)