diff --git a/chunk.h b/chunk.h index 6266c365..3d8cb0b8 100644 --- a/chunk.h +++ b/chunk.h @@ -1,7 +1,7 @@ #ifndef CHUNK_H #define CHUNK_H -#define MS (50) +#define MS (40) //44100 / 20 = 2205 #define SAMPLE_RATE (44100) #define SIZE (SAMPLE_RATE*4*MS/1000) diff --git a/client.cpp b/client.cpp index cd6572ce..6b3e4a4f 100644 --- a/client.cpp +++ b/client.cpp @@ -209,6 +209,7 @@ static int patestCallback( const void *inputBuffer, void *outputBuffer, std::cerr << "median > bufferMs + MS (" << median << " > " << bufferMs + MS << "), dropping chunk\n"; buffer.clear(); chunks->pop_front(); + usleep((median - (bufferMs + MS)) * 1000); delete chunk; } else if (buffer.full() && (median + MS < bufferMs)) @@ -217,7 +218,7 @@ static int patestCallback( const void *inputBuffer, void *outputBuffer, buffer.clear(); chunk = new Chunk(); memset(&(chunk->payload[0]), 0, SIZE); - usleep(10 * 1000); + usleep((bufferMs - (median + MS)) * 1000); break; } else