diff --git a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java
index 2532d7fc7f..50d7de6323 100644
--- a/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java
+++ b/demos/transformer/src/main/java/androidx/media3/demo/transformer/TransformerActivity.java
@@ -41,6 +41,7 @@ import androidx.media3.common.util.Log;
import androidx.media3.common.util.Util;
import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.util.DebugTextViewHelper;
+import androidx.media3.transformer.DebugViewProvider;
import androidx.media3.transformer.DefaultEncoderFactory;
import androidx.media3.transformer.GlEffect;
import androidx.media3.transformer.GlTextureProcessor;
@@ -417,7 +418,7 @@ public final class TransformerActivity extends AppCompatActivity {
Toast.makeText(getApplicationContext(), getString(messageResource), Toast.LENGTH_LONG).show();
}
- private final class DemoDebugViewProvider implements Transformer.DebugViewProvider {
+ private final class DemoDebugViewProvider implements DebugViewProvider {
private @MonotonicNonNull SurfaceView surfaceView;
private int width;
diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/GlEffectsFrameProcessorPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/GlEffectsFrameProcessorPixelTest.java
index 06512ca0e9..c6c9f6fc56 100644
--- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/GlEffectsFrameProcessorPixelTest.java
+++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/GlEffectsFrameProcessorPixelTest.java
@@ -378,7 +378,7 @@ public final class GlEffectsFrameProcessorPixelTest {
},
/* streamOffsetUs= */ 0L,
effects,
- Transformer.DebugViewProvider.NONE,
+ DebugViewProvider.NONE,
/* enableExperimentalHdrEditing= */ false));
glEffectsFrameProcessor.setInputFrameInfo(
new FrameInfo(inputWidth, inputHeight, pixelWidthHeightRatio));
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DebugViewProvider.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DebugViewProvider.java
new file mode 100644
index 0000000000..9ef2ecb4fb
--- /dev/null
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DebugViewProvider.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package androidx.media3.transformer;
+
+import android.view.SurfaceView;
+import androidx.annotation.Nullable;
+import androidx.media3.common.util.UnstableApi;
+
+/** Provider for views to show diagnostic information during a transformation, for debugging. */
+@UnstableApi
+public interface DebugViewProvider {
+
+ /** Debug view provider that doesn't show any debug info. */
+ DebugViewProvider NONE = (int width, int height) -> null;
+
+ /**
+ * Returns a new surface view to show a preview of transformer output with the given width/height
+ * in pixels, or {@code null} if no debug information should be shown.
+ *
+ *
This method may be called on an arbitrary thread.
+ */
+ @Nullable
+ SurfaceView getDebugPreviewSurfaceView(int width, int height);
+}
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FinalMatrixTransformationProcessorWrapper.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FinalMatrixTransformationProcessorWrapper.java
index a927c5ce3c..44b890d903 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/FinalMatrixTransformationProcessorWrapper.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FinalMatrixTransformationProcessorWrapper.java
@@ -59,7 +59,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
private final EGLDisplay eglDisplay;
private final EGLContext eglContext;
private final long streamOffsetUs;
- private final Transformer.DebugViewProvider debugViewProvider;
+ private final DebugViewProvider debugViewProvider;
private final FrameProcessor.Listener frameProcessorListener;
private final boolean enableExperimentalHdrEditing;
@@ -85,7 +85,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
ImmutableList matrixTransformations,
long streamOffsetUs,
FrameProcessor.Listener frameProcessorListener,
- Transformer.DebugViewProvider debugViewProvider,
+ DebugViewProvider debugViewProvider,
boolean enableExperimentalHdrEditing) {
this.context = context;
this.matrixTransformations = matrixTransformations;
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffectsFrameProcessor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffectsFrameProcessor.java
index af27f46a9f..ce418d8281 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffectsFrameProcessor.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/GlEffectsFrameProcessor.java
@@ -52,7 +52,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
* @param context A {@link Context}.
* @param listener A {@link Listener}.
* @param effects The {@link GlEffect GlEffects} to apply to each frame.
- * @param debugViewProvider A {@link Transformer.DebugViewProvider}.
+ * @param debugViewProvider A {@link DebugViewProvider}.
* @param enableExperimentalHdrEditing Whether to attempt to process the input as an HDR signal.
* @return A new instance.
* @throws FrameProcessingException If reading shader files fails, or an OpenGL error occurs while
@@ -63,7 +63,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
FrameProcessor.Listener listener,
long streamOffsetUs,
List effects,
- Transformer.DebugViewProvider debugViewProvider,
+ DebugViewProvider debugViewProvider,
boolean enableExperimentalHdrEditing)
throws FrameProcessingException {
@@ -105,7 +105,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
FrameProcessor.Listener listener,
long streamOffsetUs,
List effects,
- Transformer.DebugViewProvider debugViewProvider,
+ DebugViewProvider debugViewProvider,
boolean enableExperimentalHdrEditing,
ExecutorService singleThreadExecutorService)
throws GlUtil.GlException, FrameProcessingException {
@@ -181,7 +181,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
EGLContext eglContext,
long streamOffsetUs,
FrameProcessor.Listener listener,
- Transformer.DebugViewProvider debugViewProvider,
+ DebugViewProvider debugViewProvider,
boolean enableExperimentalHdrEditing)
throws FrameProcessingException {
ImmutableList.Builder textureProcessorListBuilder =
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java
index 7c3036437f..8332cbc4c5 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java
@@ -29,7 +29,6 @@ import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.os.ParcelFileDescriptor;
-import android.view.SurfaceView;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
@@ -495,22 +494,6 @@ public final class Transformer {
TransformationRequest fallbackTransformationRequest) {}
}
- /** Provider for views to show diagnostic information during transformation, for debugging. */
- public interface DebugViewProvider {
-
- /** Debug view provider that doesn't show any debug info. */
- DebugViewProvider NONE = (int width, int height) -> null;
-
- /**
- * Returns a new surface view to show a preview of transformer output with the given
- * width/height in pixels, or {@code null} if no debug information should be shown.
- *
- * This method may be called on an arbitrary thread.
- */
- @Nullable
- SurfaceView getDebugPreviewSurfaceView(int width, int height);
- }
-
/**
* Progress state. One of {@link #PROGRESS_STATE_WAITING_FOR_AVAILABILITY}, {@link
* #PROGRESS_STATE_AVAILABLE}, {@link #PROGRESS_STATE_UNAVAILABLE}, {@link
@@ -549,7 +532,7 @@ public final class Transformer {
private final ImmutableList videoEffects;
private final Looper looper;
private final Clock clock;
- private final Transformer.DebugViewProvider debugViewProvider;
+ private final DebugViewProvider debugViewProvider;
private final ListenerSet listeners;
@VisibleForTesting /* package */ final Codec.DecoderFactory decoderFactory;
@VisibleForTesting /* package */ final Codec.EncoderFactory encoderFactory;
@@ -573,7 +556,7 @@ public final class Transformer {
Clock clock,
Codec.EncoderFactory encoderFactory,
Codec.DecoderFactory decoderFactory,
- Transformer.DebugViewProvider debugViewProvider) {
+ DebugViewProvider debugViewProvider) {
checkState(!removeAudio || !removeVideo, "Audio and video cannot both be removed.");
this.context = context;
this.mediaSourceFactory = mediaSourceFactory;
@@ -850,7 +833,7 @@ public final class Transformer {
private final Codec.DecoderFactory decoderFactory;
private final FallbackListener fallbackListener;
private final AsyncErrorListener asyncErrorListener;
- private final Transformer.DebugViewProvider debugViewProvider;
+ private final DebugViewProvider debugViewProvider;
public TransformerRenderersFactory(
Context context,
@@ -864,7 +847,7 @@ public final class Transformer {
Codec.DecoderFactory decoderFactory,
FallbackListener fallbackListener,
AsyncErrorListener asyncErrorListener,
- Transformer.DebugViewProvider debugViewProvider) {
+ DebugViewProvider debugViewProvider) {
this.context = context;
this.muxerWrapper = muxerWrapper;
this.removeAudio = removeAudio;
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java
index 03902a400d..a9ae8307b2 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java
@@ -39,7 +39,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
private final ImmutableList effects;
private final Codec.EncoderFactory encoderFactory;
private final Codec.DecoderFactory decoderFactory;
- private final Transformer.DebugViewProvider debugViewProvider;
+ private final DebugViewProvider debugViewProvider;
private final DecoderInputBuffer decoderInputBuffer;
private @MonotonicNonNull SefSlowMotionFlattener sefSlowMotionFlattener;
@@ -55,7 +55,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
Codec.DecoderFactory decoderFactory,
Transformer.AsyncErrorListener asyncErrorListener,
FallbackListener fallbackListener,
- Transformer.DebugViewProvider debugViewProvider) {
+ DebugViewProvider debugViewProvider) {
super(
C.TRACK_TYPE_VIDEO,
muxerWrapper,
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java
index 44301842fb..2bd3311656 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java
@@ -60,7 +60,7 @@ import org.checkerframework.dataflow.qual.Pure;
List allowedOutputMimeTypes,
FallbackListener fallbackListener,
Transformer.AsyncErrorListener asyncErrorListener,
- Transformer.DebugViewProvider debugViewProvider)
+ DebugViewProvider debugViewProvider)
throws TransformationException {
decoderInputBuffer =
new DecoderInputBuffer(DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DISABLED);