From 75f29b6997a58adac0ab15fef08035a343b68f4b Mon Sep 17 00:00:00 2001 From: kimvde Date: Wed, 23 Oct 2024 07:00:57 -0700 Subject: [PATCH] Implement DefaultVideoSink.render() PiperOrigin-RevId: 688948682 --- .../media3/exoplayer/video/DefaultVideoSink.java | 9 +++++++-- .../exoplayer/video/PlaybackVideoGraphWrapper.java | 11 +++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java index 52342d2db9..1f8796586a 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/DefaultVideoSink.java @@ -21,6 +21,7 @@ import androidx.media3.common.Effect; import androidx.media3.common.Format; import androidx.media3.common.util.Size; import androidx.media3.common.util.TimestampIterator; +import androidx.media3.exoplayer.ExoPlaybackException; import java.util.List; import java.util.concurrent.Executor; @@ -177,8 +178,12 @@ import java.util.concurrent.Executor; } @Override - public void render(long positionUs, long elapsedRealtimeUs) { - throw new UnsupportedOperationException(); + public void render(long positionUs, long elapsedRealtimeUs) throws VideoSinkException { + try { + videoFrameRenderControl.render(positionUs, elapsedRealtimeUs); + } catch (ExoPlaybackException e) { + throw new VideoSinkException(e, inputFormat); + } } @Override diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java index 67d9d1dfb7..ed7329ea95 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java @@ -444,8 +444,8 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video * @param elapsedRealtimeUs {@link android.os.SystemClock#elapsedRealtime()} in microseconds, * taken approximately at the time the playback position was {@code positionUs}. */ - private void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { - videoFrameRenderControl.render(positionUs, elapsedRealtimeUs); + private void render(long positionUs, long elapsedRealtimeUs) throws VideoSink.VideoSinkException { + defaultVideoSink.render(positionUs, elapsedRealtimeUs); } private void flush(boolean resetPosition) { @@ -806,12 +806,7 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video @Override public void render(long positionUs, long elapsedRealtimeUs) throws VideoSinkException { - try { - PlaybackVideoGraphWrapper.this.render(positionUs, elapsedRealtimeUs); - } catch (ExoPlaybackException e) { - throw new VideoSinkException( - e, inputFormat != null ? inputFormat : new Format.Builder().build()); - } + PlaybackVideoGraphWrapper.this.render(positionUs, elapsedRealtimeUs); } @Override