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);