Migrate debug trace logs to track generic events for Muxer.
Track information is added to the details string where relevant. PiperOrigin-RevId: 635815866
This commit is contained in:
parent
44f2f5056f
commit
b6ce35d741
@ -78,12 +78,7 @@ public final class DebugTraceUtil {
|
||||
EVENT_RECEIVE_EOS,
|
||||
EVENT_SIGNAL_EOS,
|
||||
EVENT_SIGNAL_ENDED,
|
||||
EVENT_CAN_WRITE_SAMPLE_AUDIO,
|
||||
EVENT_CAN_WRITE_SAMPLE_VIDEO,
|
||||
EVENT_WRITE_SAMPLE_AUDIO,
|
||||
EVENT_WRITE_SAMPLE_VIDEO,
|
||||
EVENT_TRACK_ENDED_AUDIO,
|
||||
EVENT_TRACK_ENDED_VIDEO
|
||||
EVENT_CAN_WRITE_SAMPLE
|
||||
})
|
||||
@Target(TYPE_USE)
|
||||
public @interface Event {}
|
||||
@ -106,12 +101,7 @@ public final class DebugTraceUtil {
|
||||
public static final String EVENT_RECEIVE_EOS = "ReceiveEOS";
|
||||
public static final String EVENT_SIGNAL_EOS = "SignalEOS";
|
||||
public static final String EVENT_SIGNAL_ENDED = "SignalEnded";
|
||||
public static final String EVENT_CAN_WRITE_SAMPLE_AUDIO = "CanWriteSample_Audio";
|
||||
public static final String EVENT_CAN_WRITE_SAMPLE_VIDEO = "CanWriteSample_Video";
|
||||
public static final String EVENT_WRITE_SAMPLE_AUDIO = "WriteSample_Audio";
|
||||
public static final String EVENT_WRITE_SAMPLE_VIDEO = "WriteSample_Video";
|
||||
public static final String EVENT_TRACK_ENDED_AUDIO = "TrackEnded_Audio";
|
||||
public static final String EVENT_TRACK_ENDED_VIDEO = "TrackEnded_Video";
|
||||
public static final String EVENT_CAN_WRITE_SAMPLE = "CanWriteSample";
|
||||
|
||||
/** Components logged by {@link #logEvent}. */
|
||||
@Documented
|
||||
@ -216,12 +206,10 @@ public final class DebugTraceUtil {
|
||||
.put(
|
||||
COMPONENT_MUXER,
|
||||
ImmutableList.of(
|
||||
EVENT_CAN_WRITE_SAMPLE_VIDEO,
|
||||
EVENT_WRITE_SAMPLE_VIDEO,
|
||||
EVENT_CAN_WRITE_SAMPLE_AUDIO,
|
||||
EVENT_WRITE_SAMPLE_AUDIO,
|
||||
EVENT_TRACK_ENDED_AUDIO,
|
||||
EVENT_TRACK_ENDED_VIDEO,
|
||||
EVENT_INPUT_FORMAT,
|
||||
EVENT_CAN_WRITE_SAMPLE,
|
||||
EVENT_ACCEPTED_INPUT,
|
||||
EVENT_INPUT_ENDED,
|
||||
EVENT_OUTPUT_ENDED))
|
||||
.buildOrThrow();
|
||||
|
||||
|
@ -25,13 +25,10 @@ import static androidx.media3.common.util.Util.areEqual;
|
||||
import static androidx.media3.common.util.Util.contains;
|
||||
import static androidx.media3.common.util.Util.usToMs;
|
||||
import static androidx.media3.effect.DebugTraceUtil.COMPONENT_MUXER;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_CAN_WRITE_SAMPLE_AUDIO;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_CAN_WRITE_SAMPLE_VIDEO;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_ACCEPTED_INPUT;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_CAN_WRITE_SAMPLE;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_INPUT_ENDED;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_OUTPUT_ENDED;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_TRACK_ENDED_AUDIO;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_TRACK_ENDED_VIDEO;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_WRITE_SAMPLE_AUDIO;
|
||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_WRITE_SAMPLE_VIDEO;
|
||||
import static java.lang.Math.max;
|
||||
import static java.lang.annotation.ElementType.TYPE_USE;
|
||||
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||
@ -484,6 +481,13 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
ensureMuxerInitialized();
|
||||
TrackInfo trackInfo = new TrackInfo(format, muxer.addTrack(format));
|
||||
trackTypeToInfo.put(trackType, trackInfo);
|
||||
DebugTraceUtil.logEvent(
|
||||
COMPONENT_MUXER,
|
||||
DebugTraceUtil.EVENT_INPUT_FORMAT,
|
||||
C.TIME_UNSET,
|
||||
/* extraFormat= */ "%s:%s",
|
||||
/* extraArgs...= */ Util.getTrackTypeString(trackType),
|
||||
format);
|
||||
|
||||
if (format.metadata != null) {
|
||||
for (int i = 0; i < format.metadata.length(); i++) {
|
||||
@ -531,23 +535,20 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
checkArgument(contains(trackTypeToInfo, trackType));
|
||||
TrackInfo trackInfo = trackTypeToInfo.get(trackType);
|
||||
boolean canWriteSample = canWriteSample(trackType, presentationTimeUs);
|
||||
|
||||
DebugTraceUtil.logEvent(
|
||||
COMPONENT_MUXER,
|
||||
EVENT_CAN_WRITE_SAMPLE,
|
||||
presentationTimeUs,
|
||||
/* extraFormat= */ "%s:%s",
|
||||
/* extraArgs...= */ Util.getTrackTypeString(trackType),
|
||||
canWriteSample);
|
||||
|
||||
if (trackType == C.TRACK_TYPE_VIDEO) {
|
||||
DebugTraceUtil.logEvent(
|
||||
COMPONENT_MUXER,
|
||||
EVENT_CAN_WRITE_SAMPLE_VIDEO,
|
||||
presentationTimeUs,
|
||||
/* extraFormat= */ "%s",
|
||||
/* extraArgs...= */ canWriteSample);
|
||||
if (firstVideoPresentationTimeUs == C.TIME_UNSET) {
|
||||
firstVideoPresentationTimeUs = presentationTimeUs;
|
||||
}
|
||||
} else if (trackType == C.TRACK_TYPE_AUDIO) {
|
||||
DebugTraceUtil.logEvent(
|
||||
COMPONENT_MUXER,
|
||||
EVENT_CAN_WRITE_SAMPLE_AUDIO,
|
||||
presentationTimeUs,
|
||||
/* extraFormat= */ "%s",
|
||||
/* extraArgs...= */ canWriteSample);
|
||||
if (dropSamplesBeforeFirstVideoSample
|
||||
&& contains(trackTypeToInfo, C.TRACK_TYPE_VIDEO)
|
||||
&& firstVideoPresentationTimeUs != C.TIME_UNSET
|
||||
@ -573,11 +574,13 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
presentationTimeUs,
|
||||
TransformerUtil.getMediaCodecFlags(isKeyFrame ? C.BUFFER_FLAG_KEY_FRAME : 0));
|
||||
muxer.writeSampleData(trackInfo.trackToken, data, bufferInfo);
|
||||
if (trackType == C.TRACK_TYPE_VIDEO) {
|
||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_WRITE_SAMPLE_VIDEO, presentationTimeUs);
|
||||
} else if (trackType == C.TRACK_TYPE_AUDIO) {
|
||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_WRITE_SAMPLE_AUDIO, presentationTimeUs);
|
||||
}
|
||||
|
||||
DebugTraceUtil.logEvent(
|
||||
COMPONENT_MUXER,
|
||||
EVENT_ACCEPTED_INPUT,
|
||||
presentationTimeUs,
|
||||
/* extraFormat= */ "%s",
|
||||
/* extraArgs...= */ Util.getTrackTypeString(trackType));
|
||||
previousTrackType = trackType;
|
||||
return true;
|
||||
}
|
||||
@ -597,11 +600,12 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
maxEndedTrackTimeUs = max(maxEndedTrackTimeUs, trackInfo.timeUs);
|
||||
listener.onTrackEnded(
|
||||
trackType, trackInfo.format, trackInfo.getAverageBitrate(), trackInfo.sampleCount);
|
||||
if (trackType == C.TRACK_TYPE_VIDEO) {
|
||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_TRACK_ENDED_VIDEO, trackInfo.timeUs);
|
||||
} else if (trackType == C.TRACK_TYPE_AUDIO) {
|
||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_TRACK_ENDED_AUDIO, trackInfo.timeUs);
|
||||
}
|
||||
DebugTraceUtil.logEvent(
|
||||
COMPONENT_MUXER,
|
||||
EVENT_INPUT_ENDED,
|
||||
trackInfo.timeUs,
|
||||
/* extraFormat= */ "%s",
|
||||
/* extraArgs...= */ Util.getTrackTypeString(trackType));
|
||||
|
||||
if (muxerMode == MUXER_MODE_MUX_PARTIAL) {
|
||||
if (trackType == C.TRACK_TYPE_VIDEO) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user