diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultCodec.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultCodec.java index 21bab97afb..8412329090 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultCodec.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultCodec.java @@ -207,7 +207,13 @@ public final class DefaultCodec implements Codec { public void releaseOutputBuffer(boolean render) throws TransformationException { outputBuffer = null; try { - mediaCodec.releaseOutputBuffer(outputBufferIndex, render); + if (render) { + mediaCodec.releaseOutputBuffer( + outputBufferIndex, + /* renderTimestampNs= */ checkStateNotNull(outputBufferInfo).presentationTimeUs * 1000); + } else { + mediaCodec.releaseOutputBuffer(outputBufferIndex, /* render= */ false); + } } catch (RuntimeException e) { throw createTransformationException(e); } diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FrameEditor.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FrameEditor.java index 207b716529..a425c0f239 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FrameEditor.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/FrameEditor.java @@ -325,8 +325,8 @@ import java.util.concurrent.atomic.AtomicInteger; glProgram.bindAttributesAndUniforms(); focusAndDrawQuad(eglSurface, outputWidth, outputHeight); - long surfaceTextureTimestampNs = inputSurfaceTexture.getTimestamp(); - EGLExt.eglPresentationTimeANDROID(eglDisplay, eglSurface, surfaceTextureTimestampNs); + long presentationTimeNs = inputSurfaceTexture.getTimestamp(); + EGLExt.eglPresentationTimeANDROID(eglDisplay, eglSurface, presentationTimeNs); EGL14.eglSwapBuffers(eglDisplay, eglSurface); if (debugPreviewEglSurface != null) {