From 2f5a72a1657d581506069403b802718a03f15df0 Mon Sep 17 00:00:00 2001 From: claincly Date: Mon, 24 Feb 2025 07:23:36 -0800 Subject: [PATCH] Add javadoc to clarify using bitmap PiperOrigin-RevId: 730441676 --- .../java/androidx/media3/common/VideoFrameProcessor.java | 3 +++ .../androidx/media3/effect/DefaultVideoFrameProcessor.java | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/libraries/common/src/main/java/androidx/media3/common/VideoFrameProcessor.java b/libraries/common/src/main/java/androidx/media3/common/VideoFrameProcessor.java index 7b44416b70..0fd8358668 100644 --- a/libraries/common/src/main/java/androidx/media3/common/VideoFrameProcessor.java +++ b/libraries/common/src/main/java/androidx/media3/common/VideoFrameProcessor.java @@ -207,6 +207,9 @@ public interface VideoFrameProcessor { *

Can be called many times after {@link #registerInputStream registering the input stream} to * put multiple frames in the same input stream. * + *

An implementation could {@link Bitmap#recycle} the passed in {@link Bitmap}, so it may not + * be suitable for reuse. + * * @param inputBitmap The {@link Bitmap} queued to the {@code VideoFrameProcessor}. * @param timestampIterator A {@link TimestampIterator} generating the exact timestamps that the * bitmap should be shown at. diff --git a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java index aefc55b53e..aab2c047fe 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java @@ -566,6 +566,12 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor { inputSwitcher.setInputDefaultBufferSize(width, height); } + /** + * {@inheritDoc} + * + *

The passed in {@link Bitmap} argument cannot be reused after this method returns {@code + * true}, as it will be {@linkplain Bitmap#recycle recycled} by the processing pipeline. + */ @Override public boolean queueInputBitmap(Bitmap inputBitmap, TimestampIterator timestampIterator) { checkState(!inputStreamEnded);