Remove component names from event strings.

PiperOrigin-RevId: 633212723
This commit is contained in:
samrobinson 2024-05-13 08:04:31 -07:00 committed by Copybara-Service
parent d52a32aadc
commit 04ab71a1d4
11 changed files with 112 additions and 147 deletions

View file

@ -20,8 +20,8 @@ import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Assertions.checkState;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_BITMAP_TEXTURE_MANAGER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_BITMAP_TEXTURE_MANAGER;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP;
import static androidx.media3.effect.DebugTraceUtil.EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS; import static androidx.media3.effect.DebugTraceUtil.EVENT_QUEUE_BITMAP;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_QUEUE_BITMAP; import static androidx.media3.effect.DebugTraceUtil.EVENT_SIGNAL_EOS;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import androidx.media3.common.C; import androidx.media3.common.C;
@ -113,9 +113,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
if (pendingBitmaps.isEmpty()) { if (pendingBitmaps.isEmpty()) {
checkNotNull(gainmapShaderProgram).signalEndOfCurrentInputStream(); checkNotNull(gainmapShaderProgram).signalEndOfCurrentInputStream();
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_BITMAP_TEXTURE_MANAGER, COMPONENT_BITMAP_TEXTURE_MANAGER, EVENT_SIGNAL_EOS, C.TIME_END_OF_SOURCE);
EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS,
C.TIME_END_OF_SOURCE);
} else { } else {
currentInputStreamEnded = true; currentInputStreamEnded = true;
} }
@ -163,7 +161,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
glObjectsProvider, checkNotNull(currentSdrGlTextureInfo), currentPresentationTimeUs); glObjectsProvider, checkNotNull(currentSdrGlTextureInfo), currentPresentationTimeUs);
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_VFP, COMPONENT_VFP,
EVENT_VFP_QUEUE_BITMAP, EVENT_QUEUE_BITMAP,
currentPresentationTimeUs, currentPresentationTimeUs,
/* extraFormat= */ "%dx%d", /* extraFormat= */ "%dx%d",
/* extraArgs...= */ currentFrameInfo.width, /* extraArgs...= */ currentFrameInfo.width,
@ -177,9 +175,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
// Only signal end of stream after all pending bitmaps are processed. // Only signal end of stream after all pending bitmaps are processed.
checkNotNull(gainmapShaderProgram).signalEndOfCurrentInputStream(); checkNotNull(gainmapShaderProgram).signalEndOfCurrentInputStream();
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_BITMAP_TEXTURE_MANAGER, COMPONENT_BITMAP_TEXTURE_MANAGER, EVENT_SIGNAL_EOS, C.TIME_END_OF_SOURCE);
EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS,
C.TIME_END_OF_SOURCE);
currentInputStreamEnded = false; currentInputStreamEnded = false;
} }
} }

View file

@ -59,64 +59,50 @@ public final class DebugTraceUtil {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@StringDef({ @StringDef({
EVENT_VIDEO_INPUT_FORMAT, EVENT_INPUT_FORMAT,
EVENT_DECODER_DECODED_FRAME, EVENT_DECODED_FRAME,
EVENT_VFP_REGISTER_NEW_INPUT_STREAM, EVENT_ENCODED_FRAME,
EVENT_VFP_SURFACE_TEXTURE_INPUT, EVENT_REGISTER_NEW_INPUT_STREAM,
EVENT_VFP_QUEUE_FRAME, EVENT_SURFACE_TEXTURE_INPUT,
EVENT_VFP_QUEUE_BITMAP, EVENT_QUEUE_FRAME,
EVENT_VFP_QUEUE_TEXTURE, EVENT_QUEUE_BITMAP,
EVENT_VFP_RENDERED_TO_OUTPUT_SURFACE, EVENT_QUEUE_TEXTURE,
EVENT_VFP_OUTPUT_TEXTURE_RENDERED, EVENT_OUTPUT_TEXTURE_RENDERED,
EVENT_COMPOSITOR_OUTPUT_TEXTURE_RENDERED, EVENT_RENDERED_TO_OUTPUT_SURFACE,
EVENT_ENCODER_ENCODED_FRAME, EVENT_RECEIVE_END_OF_ALL_INPUT,
EVENT_MUXER_CAN_WRITE_SAMPLE_VIDEO, EVENT_RECEIVE_EOS,
EVENT_MUXER_WRITE_SAMPLE_VIDEO, EVENT_SIGNAL_EOS,
EVENT_MUXER_CAN_WRITE_SAMPLE_AUDIO, EVENT_SIGNAL_ENDED,
EVENT_MUXER_WRITE_SAMPLE_AUDIO, EVENT_CAN_WRITE_SAMPLE_AUDIO,
EVENT_DECODER_RECEIVE_EOS, EVENT_CAN_WRITE_SAMPLE_VIDEO,
EVENT_DECODER_SIGNAL_EOS, EVENT_WRITE_SAMPLE_AUDIO,
EVENT_VFP_RECEIVE_END_OF_INPUT, EVENT_WRITE_SAMPLE_VIDEO,
EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS, EVENT_TRACK_ENDED_AUDIO,
EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS, EVENT_TRACK_ENDED_VIDEO
EVENT_TEX_ID_TEXTURE_MANAGER_SIGNAL_EOS,
EVENT_VFP_SIGNAL_ENDED,
EVENT_ENCODER_RECEIVE_EOS,
EVENT_MUXER_TRACK_ENDED_AUDIO,
EVENT_MUXER_TRACK_ENDED_VIDEO
}) })
@Target(TYPE_USE) @Target(TYPE_USE)
public @interface Event {} public @interface Event {}
public static final String EVENT_VIDEO_INPUT_FORMAT = "VideoInputFormat"; public static final String EVENT_INPUT_FORMAT = "InputFormat";
public static final String EVENT_DECODER_DECODED_FRAME = "Decoder-DecodedFrame"; public static final String EVENT_DECODED_FRAME = "DecodedFrame";
public static final String EVENT_VFP_REGISTER_NEW_INPUT_STREAM = "VFP-RegisterNewInputStream"; public static final String EVENT_ENCODED_FRAME = "EncodedFrame";
public static final String EVENT_VFP_SURFACE_TEXTURE_INPUT = "VFP-SurfaceTextureInput"; public static final String EVENT_REGISTER_NEW_INPUT_STREAM = "RegisterNewInputStream";
public static final String EVENT_VFP_QUEUE_FRAME = "VFP-QueueFrame"; public static final String EVENT_SURFACE_TEXTURE_INPUT = "SurfaceTextureInput";
public static final String EVENT_VFP_QUEUE_BITMAP = "VFP-QueueBitmap"; public static final String EVENT_QUEUE_FRAME = "QueueFrame";
public static final String EVENT_VFP_QUEUE_TEXTURE = "VFP-QueueTexture"; public static final String EVENT_QUEUE_BITMAP = "QueueBitmap";
public static final String EVENT_VFP_RENDERED_TO_OUTPUT_SURFACE = "VFP-RenderedToOutputSurface"; public static final String EVENT_QUEUE_TEXTURE = "QueueTexture";
public static final String EVENT_VFP_OUTPUT_TEXTURE_RENDERED = "VFP-OutputTextureRendered"; public static final String EVENT_OUTPUT_TEXTURE_RENDERED = "OutputTextureRendered";
public static final String EVENT_COMPOSITOR_OUTPUT_TEXTURE_RENDERED = public static final String EVENT_RENDERED_TO_OUTPUT_SURFACE = "RenderedToOutputSurface";
"COMP-OutputTextureRendered"; public static final String EVENT_RECEIVE_END_OF_ALL_INPUT = "ReceiveEndOfAllInput";
public static final String EVENT_ENCODER_ENCODED_FRAME = "Encoder-EncodedFrame"; public static final String EVENT_RECEIVE_EOS = "ReceiveEOS";
public static final String EVENT_MUXER_CAN_WRITE_SAMPLE_VIDEO = "Muxer-CanWriteSample_Video"; public static final String EVENT_SIGNAL_EOS = "SignalEOS";
public static final String EVENT_MUXER_WRITE_SAMPLE_VIDEO = "Muxer-WriteSample_Video"; public static final String EVENT_SIGNAL_ENDED = "SignalEnded";
public static final String EVENT_MUXER_CAN_WRITE_SAMPLE_AUDIO = "Muxer-CanWriteSample_Audio"; public static final String EVENT_CAN_WRITE_SAMPLE_AUDIO = "CanWriteSample_Audio";
public static final String EVENT_MUXER_WRITE_SAMPLE_AUDIO = "Muxer-WriteSample_Audio"; public static final String EVENT_CAN_WRITE_SAMPLE_VIDEO = "CanWriteSample_Video";
public static final String EVENT_DECODER_RECEIVE_EOS = "Decoder-ReceiveEOS"; public static final String EVENT_WRITE_SAMPLE_AUDIO = "WriteSample_Audio";
public static final String EVENT_DECODER_SIGNAL_EOS = "Decoder-SignalEOS"; public static final String EVENT_WRITE_SAMPLE_VIDEO = "WriteSample_Video";
public static final String EVENT_VFP_RECEIVE_END_OF_INPUT = "VFP-ReceiveEndOfAllInput"; public static final String EVENT_TRACK_ENDED_AUDIO = "TrackEnded_Audio";
public static final String EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS = public static final String EVENT_TRACK_ENDED_VIDEO = "TrackEnded_Video";
"ExternalTextureManager-SignalEOS";
public static final String EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS =
"BitmapTextureManager-SignalEOS";
public static final String EVENT_TEX_ID_TEXTURE_MANAGER_SIGNAL_EOS =
"TexIdTextureManager-SignalEOS";
public static final String EVENT_VFP_SIGNAL_ENDED = "VFP-SignalEnded";
public static final String EVENT_ENCODER_RECEIVE_EOS = "Encoder-ReceiveEOS";
public static final String EVENT_MUXER_TRACK_ENDED_AUDIO = "Muxer-TrackEnded_Audio";
public static final String EVENT_MUXER_TRACK_ENDED_VIDEO = "Muxer-TrackEnded_Video";
/** Components logged by {@link #logEvent}. */ /** Components logged by {@link #logEvent}. */
@Documented @Documented
@ -150,38 +136,33 @@ public final class DebugTraceUtil {
// For a given component, events are in the rough expected order that they occur. // For a given component, events are in the rough expected order that they occur.
private static final ImmutableMap<@Component String, List<@Event String>> COMPONENTS_TO_EVENTS = private static final ImmutableMap<@Component String, List<@Event String>> COMPONENTS_TO_EVENTS =
ImmutableMap.of( ImmutableMap.of(
COMPONENT_VIDEO, ImmutableList.of(EVENT_VIDEO_INPUT_FORMAT), COMPONENT_VIDEO, ImmutableList.of(EVENT_INPUT_FORMAT),
COMPONENT_DECODER, COMPONENT_DECODER,
ImmutableList.of( ImmutableList.of(EVENT_DECODED_FRAME, EVENT_RECEIVE_EOS, EVENT_SIGNAL_EOS),
EVENT_DECODER_DECODED_FRAME, EVENT_DECODER_RECEIVE_EOS, EVENT_DECODER_SIGNAL_EOS),
COMPONENT_VFP, COMPONENT_VFP,
ImmutableList.of( ImmutableList.of(
EVENT_VFP_REGISTER_NEW_INPUT_STREAM, EVENT_REGISTER_NEW_INPUT_STREAM,
EVENT_VFP_SURFACE_TEXTURE_INPUT, EVENT_SURFACE_TEXTURE_INPUT,
EVENT_VFP_QUEUE_FRAME, EVENT_QUEUE_FRAME,
EVENT_VFP_QUEUE_BITMAP, EVENT_QUEUE_BITMAP,
EVENT_VFP_QUEUE_TEXTURE, EVENT_QUEUE_TEXTURE,
EVENT_VFP_RENDERED_TO_OUTPUT_SURFACE, EVENT_RENDERED_TO_OUTPUT_SURFACE,
EVENT_VFP_OUTPUT_TEXTURE_RENDERED, EVENT_OUTPUT_TEXTURE_RENDERED,
EVENT_VFP_RECEIVE_END_OF_INPUT, EVENT_RECEIVE_END_OF_ALL_INPUT,
EVENT_VFP_SIGNAL_ENDED), EVENT_SIGNAL_ENDED),
COMPONENT_EXTERNAL_TEXTURE_MANAGER, COMPONENT_EXTERNAL_TEXTURE_MANAGER, ImmutableList.of(EVENT_SIGNAL_EOS),
ImmutableList.of(EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS), COMPONENT_BITMAP_TEXTURE_MANAGER, ImmutableList.of(EVENT_SIGNAL_EOS),
COMPONENT_BITMAP_TEXTURE_MANAGER, COMPONENT_TEX_ID_TEXTURE_MANAGER, ImmutableList.of(EVENT_SIGNAL_EOS),
ImmutableList.of(EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS), COMPONENT_COMPOSITOR, ImmutableList.of(EVENT_OUTPUT_TEXTURE_RENDERED),
COMPONENT_TEX_ID_TEXTURE_MANAGER, COMPONENT_ENCODER, ImmutableList.of(EVENT_ENCODED_FRAME, EVENT_RECEIVE_EOS),
ImmutableList.of(EVENT_TEX_ID_TEXTURE_MANAGER_SIGNAL_EOS),
COMPONENT_COMPOSITOR, ImmutableList.of(EVENT_COMPOSITOR_OUTPUT_TEXTURE_RENDERED),
COMPONENT_ENCODER,
ImmutableList.of(EVENT_ENCODER_ENCODED_FRAME, EVENT_ENCODER_RECEIVE_EOS),
COMPONENT_MUXER, COMPONENT_MUXER,
ImmutableList.of( ImmutableList.of(
EVENT_MUXER_CAN_WRITE_SAMPLE_VIDEO, EVENT_CAN_WRITE_SAMPLE_VIDEO,
EVENT_MUXER_WRITE_SAMPLE_VIDEO, EVENT_WRITE_SAMPLE_VIDEO,
EVENT_MUXER_CAN_WRITE_SAMPLE_AUDIO, EVENT_CAN_WRITE_SAMPLE_AUDIO,
EVENT_MUXER_WRITE_SAMPLE_AUDIO, EVENT_WRITE_SAMPLE_AUDIO,
EVENT_MUXER_TRACK_ENDED_AUDIO, EVENT_TRACK_ENDED_AUDIO,
EVENT_MUXER_TRACK_ENDED_VIDEO)); EVENT_TRACK_ENDED_VIDEO));
private static final int MAX_FIRST_LAST_LOGS = 10; private static final int MAX_FIRST_LAST_LOGS = 10;

View file

@ -21,9 +21,9 @@ import static androidx.media3.common.util.Assertions.checkState;
import static androidx.media3.common.util.Assertions.checkStateNotNull; import static androidx.media3.common.util.Assertions.checkStateNotNull;
import static androidx.media3.common.util.Util.SDK_INT; import static androidx.media3.common.util.Util.SDK_INT;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_RECEIVE_END_OF_INPUT; import static androidx.media3.effect.DebugTraceUtil.EVENT_RECEIVE_END_OF_ALL_INPUT;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_REGISTER_NEW_INPUT_STREAM; import static androidx.media3.effect.DebugTraceUtil.EVENT_REGISTER_NEW_INPUT_STREAM;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_SIGNAL_ENDED; import static androidx.media3.effect.DebugTraceUtil.EVENT_SIGNAL_ENDED;
import static com.google.common.collect.Iterables.getFirst; import static com.google.common.collect.Iterables.getFirst;
import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.ElementType.TYPE_USE;
@ -427,7 +427,7 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor {
() -> { () -> {
if (inputStreamEnded) { if (inputStreamEnded) {
listenerExecutor.execute(listener::onEnded); listenerExecutor.execute(listener::onEnded);
DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_VFP_SIGNAL_ENDED, C.TIME_END_OF_SOURCE); DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_SIGNAL_ENDED, C.TIME_END_OF_SOURCE);
} else { } else {
synchronized (lock) { synchronized (lock) {
if (pendingInputStreamInfo != null) { if (pendingInputStreamInfo != null) {
@ -537,7 +537,7 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor {
// queued. // queued.
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_VFP, COMPONENT_VFP,
EVENT_VFP_REGISTER_NEW_INPUT_STREAM, EVENT_REGISTER_NEW_INPUT_STREAM,
/* presentationTimeUs= */ frameInfo.offsetToAddUs, /* presentationTimeUs= */ frameInfo.offsetToAddUs,
/* extraFormat= */ "InputType %s - %dx%d", /* extraFormat= */ "InputType %s - %dx%d",
/* extraArgs...= */ getInputTypeString(inputType), /* extraArgs...= */ getInputTypeString(inputType),
@ -622,7 +622,7 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor {
@Override @Override
public void signalEndOfInput() { public void signalEndOfInput() {
DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_VFP_RECEIVE_END_OF_INPUT, C.TIME_END_OF_SOURCE); DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_RECEIVE_END_OF_ALL_INPUT, C.TIME_END_OF_SOURCE);
checkState(!inputStreamEnded); checkState(!inputStreamEnded);
inputStreamEnded = true; inputStreamEnded = true;
inputSwitcher.signalEndOfInputStream(); inputSwitcher.signalEndOfInputStream();

View file

@ -21,9 +21,9 @@ import static androidx.media3.common.util.Assertions.checkStateNotNull;
import static androidx.media3.common.util.Util.isRunningOnEmulator; import static androidx.media3.common.util.Util.isRunningOnEmulator;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_EXTERNAL_TEXTURE_MANAGER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_EXTERNAL_TEXTURE_MANAGER;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP;
import static androidx.media3.effect.DebugTraceUtil.EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS; import static androidx.media3.effect.DebugTraceUtil.EVENT_QUEUE_FRAME;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_QUEUE_FRAME; import static androidx.media3.effect.DebugTraceUtil.EVENT_SIGNAL_EOS;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_SURFACE_TEXTURE_INPUT; import static androidx.media3.effect.DebugTraceUtil.EVENT_SURFACE_TEXTURE_INPUT;
import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.MILLISECONDS;
import android.graphics.SurfaceTexture; import android.graphics.SurfaceTexture;
@ -130,8 +130,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
unused -> unused ->
videoFrameProcessingTaskExecutor.submit( videoFrameProcessingTaskExecutor.submit(
() -> { () -> {
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_SURFACE_TEXTURE_INPUT, C.TIME_UNSET);
COMPONENT_VFP, EVENT_VFP_SURFACE_TEXTURE_INPUT, C.TIME_UNSET);
if (shouldRejectIncomingFrames) { if (shouldRejectIncomingFrames) {
surfaceTexture.updateTexImage(); surfaceTexture.updateTexImage();
Log.w( Log.w(
@ -206,9 +205,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
currentInputStreamEnded = false; currentInputStreamEnded = false;
checkNotNull(externalShaderProgram).signalEndOfCurrentInputStream(); checkNotNull(externalShaderProgram).signalEndOfCurrentInputStream();
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_EXTERNAL_TEXTURE_MANAGER, COMPONENT_EXTERNAL_TEXTURE_MANAGER, EVENT_SIGNAL_EOS, C.TIME_END_OF_SOURCE);
EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS,
C.TIME_END_OF_SOURCE);
cancelForceSignalEndOfStreamTimer(); cancelForceSignalEndOfStreamTimer();
} else { } else {
maybeQueueFrameToExternalShaderProgram(); maybeQueueFrameToExternalShaderProgram();
@ -253,9 +250,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
if (pendingFrames.isEmpty() && currentFrame == null) { if (pendingFrames.isEmpty() && currentFrame == null) {
checkNotNull(externalShaderProgram).signalEndOfCurrentInputStream(); checkNotNull(externalShaderProgram).signalEndOfCurrentInputStream();
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_EXTERNAL_TEXTURE_MANAGER, COMPONENT_EXTERNAL_TEXTURE_MANAGER, EVENT_SIGNAL_EOS, C.TIME_END_OF_SOURCE);
EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS,
C.TIME_END_OF_SOURCE);
cancelForceSignalEndOfStreamTimer(); cancelForceSignalEndOfStreamTimer();
} else { } else {
currentInputStreamEnded = true; currentInputStreamEnded = true;
@ -385,7 +380,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
if (!repeatLastRegisteredFrame) { if (!repeatLastRegisteredFrame) {
checkStateNotNull(pendingFrames.remove()); checkStateNotNull(pendingFrames.remove());
} }
DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_VFP_QUEUE_FRAME, presentationTimeUs); DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_QUEUE_FRAME, presentationTimeUs);
// If the queued frame is the last frame, end of stream will be signaled onInputFrameProcessed. // If the queued frame is the last frame, end of stream will be signaled onInputFrameProcessed.
} }
} }

View file

@ -18,7 +18,7 @@ package androidx.media3.effect;
import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Assertions.checkState;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_RENDERED_TO_OUTPUT_SURFACE; import static androidx.media3.effect.DebugTraceUtil.EVENT_RENDERED_TO_OUTPUT_SURFACE;
import static androidx.media3.effect.DefaultVideoFrameProcessor.WORKING_COLOR_SPACE_LINEAR; import static androidx.media3.effect.DefaultVideoFrameProcessor.WORKING_COLOR_SPACE_LINEAR;
import android.content.Context; import android.content.Context;
@ -391,8 +391,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
? System.nanoTime() ? System.nanoTime()
: renderTimeNs); : renderTimeNs);
EGL14.eglSwapBuffers(eglDisplay, outputEglSurface); EGL14.eglSwapBuffers(eglDisplay, outputEglSurface);
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_RENDERED_TO_OUTPUT_SURFACE, presentationTimeUs);
COMPONENT_VFP, EVENT_VFP_RENDERED_TO_OUTPUT_SURFACE, presentationTimeUs);
} }
private void renderFrameToOutputTexture(GlTextureInfo inputTexture, long presentationTimeUs) private void renderFrameToOutputTexture(GlTextureInfo inputTexture, long presentationTimeUs)

View file

@ -24,8 +24,7 @@ import static androidx.media3.common.util.Util.contains;
import static androidx.media3.common.util.Util.newSingleThreadScheduledExecutor; import static androidx.media3.common.util.Util.newSingleThreadScheduledExecutor;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_COMPOSITOR; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_COMPOSITOR;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP;
import static androidx.media3.effect.DebugTraceUtil.EVENT_COMPOSITOR_OUTPUT_TEXTURE_RENDERED; import static androidx.media3.effect.DebugTraceUtil.EVENT_OUTPUT_TEXTURE_RENDERED;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_OUTPUT_TEXTURE_RENDERED;
import static androidx.media3.effect.DefaultVideoFrameProcessor.WORKING_COLOR_SPACE_LINEAR; import static androidx.media3.effect.DefaultVideoFrameProcessor.WORKING_COLOR_SPACE_LINEAR;
import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.MILLISECONDS;
@ -321,7 +320,7 @@ public abstract class MultipleInputVideoGraph implements VideoGraph {
GlTextureProducer textureProducer, GlTextureProducer textureProducer,
GlTextureInfo texture, GlTextureInfo texture,
long presentationTimeUs) { long presentationTimeUs) {
DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_VFP_OUTPUT_TEXTURE_RENDERED, presentationTimeUs); DebugTraceUtil.logEvent(COMPONENT_VFP, EVENT_OUTPUT_TEXTURE_RENDERED, presentationTimeUs);
checkNotNull(videoCompositor) checkNotNull(videoCompositor)
.queueInputTexture( .queueInputTexture(
videoCompositorInputId, videoCompositorInputId,
@ -341,7 +340,7 @@ public abstract class MultipleInputVideoGraph implements VideoGraph {
checkStateNotNull(compositionVideoFrameProcessor); checkStateNotNull(compositionVideoFrameProcessor);
checkState(!compositorEnded); checkState(!compositorEnded);
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_COMPOSITOR, EVENT_COMPOSITOR_OUTPUT_TEXTURE_RENDERED, presentationTimeUs); COMPONENT_COMPOSITOR, EVENT_OUTPUT_TEXTURE_RENDERED, presentationTimeUs);
compositorOutputTextures.add( compositorOutputTextures.add(
new CompositorOutputTextureInfo(outputTexture, presentationTimeUs)); new CompositorOutputTextureInfo(outputTexture, presentationTimeUs));

View file

@ -18,8 +18,8 @@ package androidx.media3.effect;
import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_TEX_ID_TEXTURE_MANAGER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_TEX_ID_TEXTURE_MANAGER;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VFP;
import static androidx.media3.effect.DebugTraceUtil.EVENT_TEX_ID_TEXTURE_MANAGER_SIGNAL_EOS; import static androidx.media3.effect.DebugTraceUtil.EVENT_QUEUE_TEXTURE;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VFP_QUEUE_TEXTURE; import static androidx.media3.effect.DebugTraceUtil.EVENT_SIGNAL_EOS;
import android.opengl.GLES10; import android.opengl.GLES10;
import androidx.media3.common.C; import androidx.media3.common.C;
@ -91,7 +91,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
checkNotNull(frameConsumptionManager).queueInputFrame(inputTexture, presentationTimeUs); checkNotNull(frameConsumptionManager).queueInputFrame(inputTexture, presentationTimeUs);
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_VFP, COMPONENT_VFP,
EVENT_VFP_QUEUE_TEXTURE, EVENT_QUEUE_TEXTURE,
presentationTimeUs, presentationTimeUs,
/* extraFormat= */ "%dx%d", /* extraFormat= */ "%dx%d",
/* extraArgs...= */ frameInfo.width, /* extraArgs...= */ frameInfo.width,
@ -120,9 +120,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
() -> { () -> {
checkNotNull(frameConsumptionManager).signalEndOfCurrentStream(); checkNotNull(frameConsumptionManager).signalEndOfCurrentStream();
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_TEX_ID_TEXTURE_MANAGER, COMPONENT_TEX_ID_TEXTURE_MANAGER, EVENT_SIGNAL_EOS, C.TIME_END_OF_SOURCE);
EVENT_TEX_ID_TEXTURE_MANAGER_SIGNAL_EOS,
C.TIME_END_OF_SOURCE);
}); });
} }

View file

@ -23,8 +23,7 @@ import static androidx.media3.common.util.Assertions.checkStateNotNull;
import static androidx.media3.common.util.Util.SDK_INT; import static androidx.media3.common.util.Util.SDK_INT;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_DECODER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_DECODER;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_ENCODER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_ENCODER;
import static androidx.media3.effect.DebugTraceUtil.EVENT_DECODER_RECEIVE_EOS; import static androidx.media3.effect.DebugTraceUtil.EVENT_RECEIVE_EOS;
import static androidx.media3.effect.DebugTraceUtil.EVENT_ENCODER_RECEIVE_EOS;
import android.content.Context; import android.content.Context;
import android.media.MediaCodec; import android.media.MediaCodec;
@ -224,8 +223,7 @@ public final class DefaultCodec implements Codec {
if (isDecoder) { if (isDecoder) {
if (isVideo) { if (isVideo) {
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(COMPONENT_DECODER, EVENT_RECEIVE_EOS, C.TIME_END_OF_SOURCE);
COMPONENT_DECODER, EVENT_DECODER_RECEIVE_EOS, C.TIME_END_OF_SOURCE);
} }
// EOS buffer on the decoder input should never carry data. // EOS buffer on the decoder input should never carry data.
checkState(inputBuffer.data == null || !inputBuffer.data.hasRemaining()); checkState(inputBuffer.data == null || !inputBuffer.data.hasRemaining());
@ -246,7 +244,7 @@ public final class DefaultCodec implements Codec {
@Override @Override
public void signalEndOfInputStream() throws ExportException { public void signalEndOfInputStream() throws ExportException {
DebugTraceUtil.logEvent(COMPONENT_ENCODER, EVENT_ENCODER_RECEIVE_EOS, C.TIME_END_OF_SOURCE); DebugTraceUtil.logEvent(COMPONENT_ENCODER, EVENT_RECEIVE_EOS, C.TIME_END_OF_SOURCE);
try { try {
mediaCodec.signalEndOfInputStream(); mediaCodec.signalEndOfInputStream();
} catch (RuntimeException e) { } catch (RuntimeException e) {

View file

@ -19,9 +19,9 @@ import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.common.util.Assertions.checkStateNotNull; import static androidx.media3.common.util.Assertions.checkStateNotNull;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_DECODER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_DECODER;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VIDEO; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_VIDEO;
import static androidx.media3.effect.DebugTraceUtil.EVENT_DECODER_DECODED_FRAME; import static androidx.media3.effect.DebugTraceUtil.EVENT_DECODED_FRAME;
import static androidx.media3.effect.DebugTraceUtil.EVENT_DECODER_SIGNAL_EOS; import static androidx.media3.effect.DebugTraceUtil.EVENT_INPUT_FORMAT;
import static androidx.media3.effect.DebugTraceUtil.EVENT_VIDEO_INPUT_FORMAT; import static androidx.media3.effect.DebugTraceUtil.EVENT_SIGNAL_EOS;
import static androidx.media3.transformer.TransformerUtil.getDecoderOutputColor; import static androidx.media3.transformer.TransformerUtil.getDecoderOutputColor;
import android.media.MediaCodec; import android.media.MediaCodec;
@ -92,7 +92,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
protected void onInputFormatRead(Format inputFormat) { protected void onInputFormatRead(Format inputFormat) {
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_VIDEO, COMPONENT_VIDEO,
EVENT_VIDEO_INPUT_FORMAT, EVENT_INPUT_FORMAT,
C.TIME_UNSET, C.TIME_UNSET,
/* extraFormat= */ "%s", /* extraFormat= */ "%s",
/* extraArgs...= */ inputFormat); /* extraArgs...= */ inputFormat);
@ -157,7 +157,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
@RequiresNonNull({"sampleConsumer", "decoder"}) @RequiresNonNull({"sampleConsumer", "decoder"})
protected boolean feedConsumerFromDecoder() throws ExportException { protected boolean feedConsumerFromDecoder() throws ExportException {
if (decoder.isEnded()) { if (decoder.isEnded()) {
DebugTraceUtil.logEvent(COMPONENT_DECODER, EVENT_DECODER_SIGNAL_EOS, C.TIME_END_OF_SOURCE); DebugTraceUtil.logEvent(COMPONENT_DECODER, EVENT_SIGNAL_EOS, C.TIME_END_OF_SOURCE);
sampleConsumer.signalEndOfVideoInput(); sampleConsumer.signalEndOfVideoInput();
isEnded = true; isEnded = true;
return false; return false;
@ -184,7 +184,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
} }
decoder.releaseOutputBuffer(presentationTimeUs); decoder.releaseOutputBuffer(presentationTimeUs);
DebugTraceUtil.logEvent(COMPONENT_DECODER, EVENT_DECODER_DECODED_FRAME, presentationTimeUs); DebugTraceUtil.logEvent(COMPONENT_DECODER, EVENT_DECODED_FRAME, presentationTimeUs);
return true; return true;
} }

View file

@ -25,12 +25,12 @@ import static androidx.media3.common.util.Util.areEqual;
import static androidx.media3.common.util.Util.contains; import static androidx.media3.common.util.Util.contains;
import static androidx.media3.common.util.Util.usToMs; import static androidx.media3.common.util.Util.usToMs;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_MUXER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_MUXER;
import static androidx.media3.effect.DebugTraceUtil.EVENT_MUXER_CAN_WRITE_SAMPLE_AUDIO; import static androidx.media3.effect.DebugTraceUtil.EVENT_CAN_WRITE_SAMPLE_AUDIO;
import static androidx.media3.effect.DebugTraceUtil.EVENT_MUXER_CAN_WRITE_SAMPLE_VIDEO; import static androidx.media3.effect.DebugTraceUtil.EVENT_CAN_WRITE_SAMPLE_VIDEO;
import static androidx.media3.effect.DebugTraceUtil.EVENT_MUXER_TRACK_ENDED_AUDIO; import static androidx.media3.effect.DebugTraceUtil.EVENT_TRACK_ENDED_AUDIO;
import static androidx.media3.effect.DebugTraceUtil.EVENT_MUXER_TRACK_ENDED_VIDEO; import static androidx.media3.effect.DebugTraceUtil.EVENT_TRACK_ENDED_VIDEO;
import static androidx.media3.effect.DebugTraceUtil.EVENT_MUXER_WRITE_SAMPLE_AUDIO; import static androidx.media3.effect.DebugTraceUtil.EVENT_WRITE_SAMPLE_AUDIO;
import static androidx.media3.effect.DebugTraceUtil.EVENT_MUXER_WRITE_SAMPLE_VIDEO; import static androidx.media3.effect.DebugTraceUtil.EVENT_WRITE_SAMPLE_VIDEO;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.ElementType.TYPE_USE;
import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.MILLISECONDS;
@ -533,7 +533,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
if (trackType == C.TRACK_TYPE_VIDEO) { if (trackType == C.TRACK_TYPE_VIDEO) {
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_MUXER, COMPONENT_MUXER,
EVENT_MUXER_CAN_WRITE_SAMPLE_VIDEO, EVENT_CAN_WRITE_SAMPLE_VIDEO,
presentationTimeUs, presentationTimeUs,
/* extraFormat= */ "%s", /* extraFormat= */ "%s",
/* extraArgs...= */ canWriteSample); /* extraArgs...= */ canWriteSample);
@ -543,7 +543,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
} else if (trackType == C.TRACK_TYPE_AUDIO) { } else if (trackType == C.TRACK_TYPE_AUDIO) {
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(
COMPONENT_MUXER, COMPONENT_MUXER,
EVENT_MUXER_CAN_WRITE_SAMPLE_AUDIO, EVENT_CAN_WRITE_SAMPLE_AUDIO,
presentationTimeUs, presentationTimeUs,
/* extraFormat= */ "%s", /* extraFormat= */ "%s",
/* extraArgs...= */ canWriteSample); /* extraArgs...= */ canWriteSample);
@ -573,9 +573,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
TransformerUtil.getMediaCodecFlags(isKeyFrame ? C.BUFFER_FLAG_KEY_FRAME : 0)); TransformerUtil.getMediaCodecFlags(isKeyFrame ? C.BUFFER_FLAG_KEY_FRAME : 0));
muxer.writeSampleData(trackInfo.trackToken, data, bufferInfo); muxer.writeSampleData(trackInfo.trackToken, data, bufferInfo);
if (trackType == C.TRACK_TYPE_VIDEO) { if (trackType == C.TRACK_TYPE_VIDEO) {
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_MUXER_WRITE_SAMPLE_VIDEO, presentationTimeUs); DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_WRITE_SAMPLE_VIDEO, presentationTimeUs);
} else if (trackType == C.TRACK_TYPE_AUDIO) { } else if (trackType == C.TRACK_TYPE_AUDIO) {
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_MUXER_WRITE_SAMPLE_AUDIO, presentationTimeUs); DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_WRITE_SAMPLE_AUDIO, presentationTimeUs);
} }
previousTrackType = trackType; previousTrackType = trackType;
return true; return true;
@ -597,9 +597,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
listener.onTrackEnded( listener.onTrackEnded(
trackType, trackInfo.format, trackInfo.getAverageBitrate(), trackInfo.sampleCount); trackType, trackInfo.format, trackInfo.getAverageBitrate(), trackInfo.sampleCount);
if (trackType == C.TRACK_TYPE_VIDEO) { if (trackType == C.TRACK_TYPE_VIDEO) {
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_MUXER_TRACK_ENDED_VIDEO, trackInfo.timeUs); DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_TRACK_ENDED_VIDEO, trackInfo.timeUs);
} else if (trackType == C.TRACK_TYPE_AUDIO) { } else if (trackType == C.TRACK_TYPE_AUDIO) {
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_MUXER_TRACK_ENDED_AUDIO, trackInfo.timeUs); DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_TRACK_ENDED_AUDIO, trackInfo.timeUs);
} }
if (muxerMode == MUXER_MODE_MUX_PARTIAL) { if (muxerMode == MUXER_MODE_MUX_PARTIAL) {

View file

@ -25,7 +25,7 @@ import static androidx.media3.common.ColorInfo.isTransferHdr;
import static androidx.media3.common.util.Assertions.checkArgument; import static androidx.media3.common.util.Assertions.checkArgument;
import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_ENCODER; import static androidx.media3.effect.DebugTraceUtil.COMPONENT_ENCODER;
import static androidx.media3.effect.DebugTraceUtil.EVENT_ENCODER_ENCODED_FRAME; import static androidx.media3.effect.DebugTraceUtil.EVENT_ENCODED_FRAME;
import static androidx.media3.transformer.Composition.HDR_MODE_KEEP_HDR; import static androidx.media3.transformer.Composition.HDR_MODE_KEEP_HDR;
import static androidx.media3.transformer.Composition.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL; import static androidx.media3.transformer.Composition.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL;
import static androidx.media3.transformer.TransformerUtil.getOutputMimeTypeAndHdrModeAfterFallback; import static androidx.media3.transformer.TransformerUtil.getOutputMimeTypeAndHdrModeAfterFallback;
@ -195,8 +195,7 @@ import org.checkerframework.dataflow.qual.Pure;
hasMuxedTimestampZero = true; hasMuxedTimestampZero = true;
} }
} }
DebugTraceUtil.logEvent( DebugTraceUtil.logEvent(COMPONENT_ENCODER, EVENT_ENCODED_FRAME, bufferInfo.presentationTimeUs);
COMPONENT_ENCODER, EVENT_ENCODER_ENCODED_FRAME, bufferInfo.presentationTimeUs);
encoderOutputBuffer.timeUs = bufferInfo.presentationTimeUs; encoderOutputBuffer.timeUs = bufferInfo.presentationTimeUs;
encoderOutputBuffer.setFlags(bufferInfo.flags); encoderOutputBuffer.setFlags(bufferInfo.flags);
return encoderOutputBuffer; return encoderOutputBuffer;