@Override public int read(byte[] buf, int offset, int length) { // int diff = (int) (ringBuffer.getTotalWritten() - ringBuffer.getTotalRead()); // if ( diff > info.rate * info.channels * 2){ // System.out.println("Warning: more than 1 second lag for audio. Adjusting.."); // ringBuffer.skip( diff ); // } // if (masterClock != null) // sync(); int r = ringBuffer.read(buf, offset, length); if (r <= 0) { // // put silence for (int i = 0; i < length; i++) { buf[offset + i] = 0x0; } return length; } else { lastPtsRead = System.nanoTime(); } return r; }