private void releaseInputBufferInternal(I inputBuffer) { inputBuffer.clear(); availableInputBuffers[availableInputBufferCount++] = inputBuffer; }
private void clearFormatHolderAndInputBuffer() { formatHolder.format = null; inputBuffer.clear(); }
@Override public void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { if (isEnded) { return; } playbackPositionUs = positionUs; while (lastSamplePositionUs < positionUs + SOURCE_READAHEAD_US) { formatHolder.format = null; buffer.clear(); int result = readSource(formatHolder, buffer, false); if (result == C.RESULT_FORMAT_READ) { formatReadCount++; assertThat(expectedFormats).contains(formatHolder.format); onFormatChanged(formatHolder.format); } else if (result == C.RESULT_BUFFER_READ) { if (buffer.isEndOfStream()) { isEnded = true; return; } lastSamplePositionUs = buffer.timeUs; sampleBufferReadCount++; onBufferRead(); } else { Assertions.checkState(result == C.RESULT_NOTHING_READ); return; } } }
@Override public void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { // Keep reading available samples as long as the sample time is not too far into the future. while (!hasReadStreamToEnd() && lastTimestampUs < positionUs + SAMPLE_WINDOW_DURATION_US) { buffer.clear(); int result = readSource(formatHolder, buffer, /* formatRequired= */ false); if (result != C.RESULT_BUFFER_READ || buffer.isEndOfStream()) { return; } buffer.flip(); lastTimestampUs = buffer.timeUs; if (listener != null) { float[] rotation = parseMetadata(buffer.data); if (rotation != null) { Util.castNonNull(listener).onCameraMotion(lastTimestampUs - offsetUs, rotation); } } } }
|| (result == C.RESULT_NOTHING_READ && getBufferedPositionUs() == C.TIME_END_OF_SOURCE))) { buffer.clear(); buffer.setFlags(C.BUFFER_FLAG_END_OF_STREAM); sentEos = true;
@Override public void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { if (isEnded) { return; } playbackPositionUs = positionUs; while (lastSamplePositionUs < positionUs + SOURCE_READAHEAD_US) { formatHolder.format = null; buffer.clear(); int result = readSource(formatHolder, buffer, false); if (result == C.RESULT_FORMAT_READ) { formatReadCount++; assertThat(expectedFormats).contains(formatHolder.format); onFormatChanged(formatHolder.format); } else if (result == C.RESULT_BUFFER_READ) { if (buffer.isEndOfStream()) { isEnded = true; return; } lastSamplePositionUs = buffer.timeUs; sampleBufferReadCount++; onBufferRead(); } else { Assertions.checkState(result == C.RESULT_NOTHING_READ); return; } } }
flagsOnlyBuffer.clear(); int result = readSource(formatHolder, flagsOnlyBuffer, true); if (result == C.RESULT_FORMAT_READ) {
flagsOnlyBuffer.clear(); int result = readSource(formatHolder, flagsOnlyBuffer, true); if (result == C.RESULT_FORMAT_READ) {