Order DebugTraceUtil JSON output by each component.

PiperOrigin-RevId: 632193924
This commit is contained in:
samrobinson 2024-05-09 10:26:20 -07:00 committed by Copybara-Service
parent 753f607a81
commit fff68f1932

View File

@ -28,6 +28,7 @@ import androidx.media3.common.util.SystemClock;
import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util; import androidx.media3.common.util.Util;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import java.io.IOException; import java.io.IOException;
import java.io.StringWriter; import java.io.StringWriter;
import java.io.Writer; import java.io.Writer;
@ -116,34 +117,52 @@ public final class DebugTraceUtil {
public static final String EVENT_MUXER_TRACK_ENDED_AUDIO = "Muxer-TrackEnded_Audio"; public static final String EVENT_MUXER_TRACK_ENDED_AUDIO = "Muxer-TrackEnded_Audio";
public static final String EVENT_MUXER_TRACK_ENDED_VIDEO = "Muxer-TrackEnded_Video"; public static final String EVENT_MUXER_TRACK_ENDED_VIDEO = "Muxer-TrackEnded_Video";
/** List ordered based on expected event ordering. */ // TODO - b/339639306: Migrate COMPONENT_VIDEO usage to COMPONENT_ASSETLOADER.
private static final ImmutableList<String> EVENT_TYPES = private static final String COMPONENT_VIDEO = "Video";
ImmutableList.of(
EVENT_VIDEO_INPUT_FORMAT, private static final String COMPONENT_DECODER = "Decoder";
EVENT_DECODER_DECODED_FRAME, private static final String COMPONENT_VFP = "VFP";
EVENT_VFP_REGISTER_NEW_INPUT_STREAM, private static final String COMPONENT_EXTERNAL_TEXTURE_MANAGER = "ExternalTextureManager";
EVENT_VFP_SURFACE_TEXTURE_INPUT, private static final String COMPONENT_BITMAP_TEXTURE_MANAGER = "BitmapTextureManager";
EVENT_VFP_QUEUE_FRAME, private static final String COMPONENT_TEX_ID_TEXTURE_MANAGER = "TexIdTextureManager";
EVENT_VFP_QUEUE_BITMAP, private static final String COMPONENT_COMPOSITOR = "Compositor";
EVENT_VFP_QUEUE_TEXTURE, private static final String COMPONENT_ENCODER = "Encoder";
EVENT_VFP_RENDERED_TO_OUTPUT_SURFACE, private static final String COMPONENT_MUXER = "Muxer";
EVENT_VFP_OUTPUT_TEXTURE_RENDERED,
EVENT_COMPOSITOR_OUTPUT_TEXTURE_RENDERED, private static final ImmutableMap<String, List<String>> COMPONENTS_TO_EVENTS =
EVENT_ENCODER_ENCODED_FRAME, ImmutableMap.of(
EVENT_MUXER_CAN_WRITE_SAMPLE_VIDEO, COMPONENT_VIDEO, ImmutableList.of(EVENT_VIDEO_INPUT_FORMAT),
EVENT_MUXER_WRITE_SAMPLE_VIDEO, COMPONENT_DECODER,
EVENT_MUXER_CAN_WRITE_SAMPLE_AUDIO, ImmutableList.of(
EVENT_MUXER_WRITE_SAMPLE_AUDIO, EVENT_DECODER_DECODED_FRAME, EVENT_DECODER_RECEIVE_EOS, EVENT_DECODER_SIGNAL_EOS),
EVENT_DECODER_RECEIVE_EOS, COMPONENT_VFP,
EVENT_DECODER_SIGNAL_EOS, ImmutableList.of(
EVENT_VFP_RECEIVE_END_OF_INPUT, EVENT_VFP_REGISTER_NEW_INPUT_STREAM,
EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS, EVENT_VFP_SURFACE_TEXTURE_INPUT,
EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS, EVENT_VFP_QUEUE_FRAME,
EVENT_TEX_ID_TEXTURE_MANAGER_SIGNAL_EOS, EVENT_VFP_QUEUE_BITMAP,
EVENT_VFP_SIGNAL_ENDED, EVENT_VFP_QUEUE_TEXTURE,
EVENT_ENCODER_RECEIVE_EOS, EVENT_VFP_RENDERED_TO_OUTPUT_SURFACE,
EVENT_MUXER_TRACK_ENDED_AUDIO, EVENT_VFP_OUTPUT_TEXTURE_RENDERED,
EVENT_MUXER_TRACK_ENDED_VIDEO); EVENT_VFP_RECEIVE_END_OF_INPUT,
EVENT_VFP_SIGNAL_ENDED),
COMPONENT_EXTERNAL_TEXTURE_MANAGER,
ImmutableList.of(EVENT_EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOS),
COMPONENT_BITMAP_TEXTURE_MANAGER,
ImmutableList.of(EVENT_BITMAP_TEXTURE_MANAGER_SIGNAL_EOS),
COMPONENT_TEX_ID_TEXTURE_MANAGER,
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,
ImmutableList.of(
EVENT_MUXER_CAN_WRITE_SAMPLE_VIDEO,
EVENT_MUXER_WRITE_SAMPLE_VIDEO,
EVENT_MUXER_CAN_WRITE_SAMPLE_AUDIO,
EVENT_MUXER_WRITE_SAMPLE_AUDIO,
EVENT_MUXER_TRACK_ENDED_AUDIO,
EVENT_MUXER_TRACK_ENDED_VIDEO));
private static final int MAX_FIRST_LAST_LOGS = 10; private static final int MAX_FIRST_LAST_LOGS = 10;
@ -209,13 +228,15 @@ public final class DebugTraceUtil {
JsonWriter jsonWriter = new JsonWriter(stringWriter); JsonWriter jsonWriter = new JsonWriter(stringWriter);
try { try {
jsonWriter.beginObject(); jsonWriter.beginObject();
for (int i = 0; i < EVENT_TYPES.size(); i++) { for (Map.Entry<String, List<String>> componentToEvents : COMPONENTS_TO_EVENTS.entrySet()) {
String eventType = EVENT_TYPES.get(i); List<String> componentEvents = componentToEvents.getValue();
jsonWriter.name(eventType); for (String eventType : componentEvents) {
if (!events.containsKey(eventType)) { jsonWriter.name(eventType);
jsonWriter.value("No events"); if (!events.containsKey(eventType)) {
} else { jsonWriter.value("No events");
checkNotNull(events.get(eventType)).toJson(jsonWriter); } else {
checkNotNull(events.get(eventType)).toJson(jsonWriter);
}
} }
} }
jsonWriter.endObject(); jsonWriter.endObject();