correction

git-svn-id: svn://elaine/murooma/trunk@93 d8a302eb-03bc-478d-80e4-98257eca68ef
This commit is contained in:
(no author) 2014-07-10 20:15:25 +00:00
parent 948111f0c6
commit 0c2cb12d15

View file

@ -60,7 +60,6 @@ timeval Stream::getNextPlayerChunk(short* outputBuffer, int correction)
// age = getAge(*chunk) + outputBufferDacTime*1000 - bufferMs; // age = getAge(*chunk) + outputBufferDacTime*1000 - bufferMs;
// std::cerr << "age: " << age << " \tidx: " << chunk->idx << "\n"; // std::cerr << "age: " << age << " \tidx: " << chunk->idx << "\n";
size_t missing = PLAYER_CHUNK_SIZE;// + correction*PLAYER_CHUNK_MS_SIZE;
/* double factor = (double)PLAYER_CHUNK_MS / (double)(PLAYER_CHUNK_MS + correction); /* double factor = (double)PLAYER_CHUNK_MS / (double)(PLAYER_CHUNK_MS + correction);
size_t idx(0); size_t idx(0);
size_t idxCorrection(0); size_t idxCorrection(0);
@ -143,6 +142,7 @@ timeval Stream::getNextPlayerChunk(short* outputBuffer, int correction)
} }
size_t missing = PLAYER_CHUNK_SIZE;// + correction*PLAYER_CHUNK_MS_SIZE;
if (chunk->idx + PLAYER_CHUNK_SIZE > WIRE_CHUNK_SIZE) if (chunk->idx + PLAYER_CHUNK_SIZE > WIRE_CHUNK_SIZE)
{ {
//std::cerr << "chunk->idx + PLAYER_CHUNK_SIZE >= WIRE_CHUNK_SIZE: " << chunk->idx + PLAYER_CHUNK_SIZE << " >= " << WIRE_CHUNK_SIZE << "\n"; //std::cerr << "chunk->idx + PLAYER_CHUNK_SIZE >= WIRE_CHUNK_SIZE: " << chunk->idx + PLAYER_CHUNK_SIZE << " >= " << WIRE_CHUNK_SIZE << "\n";
@ -160,7 +160,9 @@ timeval Stream::getNextPlayerChunk(short* outputBuffer, int correction)
if (outputBuffer != NULL) if (outputBuffer != NULL)
memcpy((outputBuffer + PLAYER_CHUNK_SIZE - missing), &chunk->payload[chunk->idx], sizeof(int16_t)*missing); memcpy((outputBuffer + PLAYER_CHUNK_SIZE - missing), &chunk->payload[chunk->idx], sizeof(int16_t)*missing);
addMs(chunk, -PLAYER_CHUNK_MS); timeval nextTv = tv;
addMs(nextTv, PLAYER_CHUNK_MS);
setTimeval(chunk, nextTv);
chunk->idx += missing; chunk->idx += missing;
if (chunk->idx >= WIRE_CHUNK_SIZE) if (chunk->idx >= WIRE_CHUNK_SIZE)
{ {
@ -201,7 +203,7 @@ void Stream::getChunk(short* outputBuffer, double outputBufferDacTime, unsigned
} }
int correction(0); int correction(0);
/* if (pBuffer->full() && (abs(median) <= PLAYER_CHUNK_MS)) if (pBuffer->full() && (abs(median) <= PLAYER_CHUNK_MS))
{ {
if (median >= PLAYER_CHUNK_MS / 2) if (median >= PLAYER_CHUNK_MS / 2)
correction = 1; correction = 1;
@ -213,7 +215,7 @@ void Stream::getChunk(short* outputBuffer, double outputBufferDacTime, unsigned
pShortBuffer->clear(); pShortBuffer->clear();
} }
} }
*/
timeval tv = getNextPlayerChunk(outputBuffer, correction); timeval tv = getNextPlayerChunk(outputBuffer, correction);
int age = getAge(tv) - bufferMs + outputBufferDacTime*1000; int age = getAge(tv) - bufferMs + outputBufferDacTime*1000;
pBuffer->add(age); pBuffer->add(age);