From a82690a533fa5caf8f60ce4be3e7533c8ebbb0f9 Mon Sep 17 00:00:00 2001 From: kimvde Date: Mon, 27 Sep 2021 10:27:41 +0100 Subject: [PATCH] Use SurfaceTexture.getTimestamp PiperOrigin-RevId: 399139842 --- .../transformer/TransformerTranscodingVideoRenderer.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerTranscodingVideoRenderer.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerTranscodingVideoRenderer.java index 3e1da57bdf..7ed1afef1b 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerTranscodingVideoRenderer.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerTranscodingVideoRenderer.java @@ -71,7 +71,6 @@ import java.nio.ByteBuffer; @Nullable private GlUtil.Uniform decoderTextureTransformUniform; @Nullable private MediaCodecAdapterWrapper encoder; - private long nextEncoderTimeUs; /** Whether encoder's actual output format is obtained. */ private boolean hasEncoderActualOutputFormat; @@ -304,7 +303,6 @@ import java.nio.ByteBuffer; if (!isDecoderSurfacePopulated) { if (!waitingForPopulatedDecoderSurface) { if (decoder.getOutputBuffer() != null) { - nextEncoderTimeUs = checkNotNull(decoder.getOutputBufferInfo()).presentationTimeUs; decoder.releaseOutputBuffer(/* render= */ true); waitingForPopulatedDecoderSurface = true; } @@ -326,7 +324,8 @@ import java.nio.ByteBuffer; GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); EGLDisplay eglDisplay = checkNotNull(this.eglDisplay); EGLSurface eglSurface = checkNotNull(this.eglSurface); - EGLExt.eglPresentationTimeANDROID(eglDisplay, eglSurface, nextEncoderTimeUs * 1000L); + long decoderSurfaceTextureTimestampNs = decoderSurfaceTexture.getTimestamp(); + EGLExt.eglPresentationTimeANDROID(eglDisplay, eglSurface, decoderSurfaceTextureTimestampNs); EGL14.eglSwapBuffers(eglDisplay, eglSurface); isDecoderSurfacePopulated = false; return true;