From 67900c3e8142059926831fdea7bb3b995ebf0ea4 Mon Sep 17 00:00:00 2001 From: claincly Date: Wed, 20 Sep 2023 06:09:20 -0700 Subject: [PATCH] Fix not setting videoEffect in CompositingVSP The current code only set the videoEffects when CVSP is initialized, which happens after `player.prepare()`. But it's valid that videoEffects are set before calling `prepare()`. PiperOrigin-RevId: 566941216 --- .../exoplayer/video/CompositingVideoSinkProvider.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java index 41c91238fd..64233e528d 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/CompositingVideoSinkProvider.java @@ -88,12 +88,14 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; try { videoSinkImpl = new VideoSinkImpl(context, videoFrameProcessorFactory, renderControl, sourceFormat); - if (videoFrameMetadataListener != null) { - videoSinkImpl.setVideoFrameMetadataListener(videoFrameMetadataListener); - } } catch (VideoFrameProcessingException e) { throw new VideoSink.VideoSinkException(e, sourceFormat); } + + if (videoFrameMetadataListener != null) { + videoSinkImpl.setVideoFrameMetadataListener(videoFrameMetadataListener); + } + videoSinkImpl.setVideoEffects(checkNotNull(videoEffects)); } /** Returns whether this provider is initialized for frame processing. */