correction

git-svn-id: svn://elaine/murooma/trunk@78 d8a302eb-03bc-478d-80e4-98257eca68ef
This commit is contained in:
(no author) 2014-07-07 17:17:01 +00:00
parent 36e0ffe7ee
commit dc918a0553

View file

@ -94,36 +94,33 @@ timeval Stream::getNextPlayerChunk(short* outputBuffer, int correction)
} }
*/ */
if (correction != 0) if (correction > 0)
{ {
std::cerr << "Correction: " << correction << "\n"; std::cerr << "Correction: " << correction << "\n";
size_t idxCorrection(0); size_t idxCorrection(0);
size_t idx(0); size_t idx(chunk->idx);
for (size_t n=0; n<PLAYER_CHUNK_SIZE/2; ++n) for (size_t n=0; n<PLAYER_CHUNK_SIZE/2; ++n)
{ {
idx = n;
if (correction > 0) if (correction > 0)
idx = 2*n; idx += 4;
else if (correction < 0) else if ((correction < 0) && (n % 4 == 0))
idx = 0.5*n; idx += 2;
// idx -= idxCorrection; if (idx >= WIRE_CHUNK_SIZE)
if (chunk->idx + idx + 1 - idxCorrection >= WIRE_CHUNK_SIZE)
{ {
idxCorrection = idx;
chunks.pop_front(); chunks.pop_front();
delete chunk; delete chunk;
chunk = getNextChunk(); chunk = getNextChunk();
idx = 0;
} }
*(outputBuffer + 2*n) = chunk->payload[idx];
*(outputBuffer + 2*n) = chunk->payload[chunk->idx + idx - idxCorrection]; *(outputBuffer + 2*n+1) = chunk->payload[idx + 1];
*(outputBuffer + 2*n+1) = chunk->payload[chunk->idx + idx+1 - idxCorrection];
} }
if (correction > 0) // if (correction > 0)
addMs(chunk, -PLAYER_CHUNK_MS*2); // addMs(chunk, -PLAYER_CHUNK_MS*2);
else if (correction < 0) // else if (correction < 0)
addMs(chunk, -PLAYER_CHUNK_MS*0.5); // addMs(chunk, -PLAYER_CHUNK_MS*0.5);
chunk->idx = chunk->idx + idx+2 - idxCorrection; chunk->idx = idx+2;
if (chunk->idx >= WIRE_CHUNK_SIZE) if (chunk->idx >= WIRE_CHUNK_SIZE)
{ {
// mutex.lock(); // mutex.lock();