mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
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_RECEIVE_EOS,
|
||||||
EVENT_SIGNAL_EOS,
|
EVENT_SIGNAL_EOS,
|
||||||
EVENT_SIGNAL_ENDED,
|
EVENT_SIGNAL_ENDED,
|
||||||
EVENT_CAN_WRITE_SAMPLE_AUDIO,
|
EVENT_CAN_WRITE_SAMPLE
|
||||||
EVENT_CAN_WRITE_SAMPLE_VIDEO,
|
|
||||||
EVENT_WRITE_SAMPLE_AUDIO,
|
|
||||||
EVENT_WRITE_SAMPLE_VIDEO,
|
|
||||||
EVENT_TRACK_ENDED_AUDIO,
|
|
||||||
EVENT_TRACK_ENDED_VIDEO
|
|
||||||
})
|
})
|
||||||
@Target(TYPE_USE)
|
@Target(TYPE_USE)
|
||||||
public @interface Event {}
|
public @interface Event {}
|
||||||
@ -106,12 +101,7 @@ public final class DebugTraceUtil {
|
|||||||
public static final String EVENT_RECEIVE_EOS = "ReceiveEOS";
|
public static final String EVENT_RECEIVE_EOS = "ReceiveEOS";
|
||||||
public static final String EVENT_SIGNAL_EOS = "SignalEOS";
|
public static final String EVENT_SIGNAL_EOS = "SignalEOS";
|
||||||
public static final String EVENT_SIGNAL_ENDED = "SignalEnded";
|
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 = "CanWriteSample";
|
||||||
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";
|
|
||||||
|
|
||||||
/** Components logged by {@link #logEvent}. */
|
/** Components logged by {@link #logEvent}. */
|
||||||
@Documented
|
@Documented
|
||||||
@ -216,12 +206,10 @@ public final class DebugTraceUtil {
|
|||||||
.put(
|
.put(
|
||||||
COMPONENT_MUXER,
|
COMPONENT_MUXER,
|
||||||
ImmutableList.of(
|
ImmutableList.of(
|
||||||
EVENT_CAN_WRITE_SAMPLE_VIDEO,
|
EVENT_INPUT_FORMAT,
|
||||||
EVENT_WRITE_SAMPLE_VIDEO,
|
EVENT_CAN_WRITE_SAMPLE,
|
||||||
EVENT_CAN_WRITE_SAMPLE_AUDIO,
|
EVENT_ACCEPTED_INPUT,
|
||||||
EVENT_WRITE_SAMPLE_AUDIO,
|
EVENT_INPUT_ENDED,
|
||||||
EVENT_TRACK_ENDED_AUDIO,
|
|
||||||
EVENT_TRACK_ENDED_VIDEO,
|
|
||||||
EVENT_OUTPUT_ENDED))
|
EVENT_OUTPUT_ENDED))
|
||||||
.buildOrThrow();
|
.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.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_CAN_WRITE_SAMPLE_AUDIO;
|
import static androidx.media3.effect.DebugTraceUtil.EVENT_ACCEPTED_INPUT;
|
||||||
import static androidx.media3.effect.DebugTraceUtil.EVENT_CAN_WRITE_SAMPLE_VIDEO;
|
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_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.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;
|
||||||
@ -484,6 +481,13 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
ensureMuxerInitialized();
|
ensureMuxerInitialized();
|
||||||
TrackInfo trackInfo = new TrackInfo(format, muxer.addTrack(format));
|
TrackInfo trackInfo = new TrackInfo(format, muxer.addTrack(format));
|
||||||
trackTypeToInfo.put(trackType, trackInfo);
|
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) {
|
if (format.metadata != null) {
|
||||||
for (int i = 0; i < format.metadata.length(); i++) {
|
for (int i = 0; i < format.metadata.length(); i++) {
|
||||||
@ -531,23 +535,20 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
checkArgument(contains(trackTypeToInfo, trackType));
|
checkArgument(contains(trackTypeToInfo, trackType));
|
||||||
TrackInfo trackInfo = trackTypeToInfo.get(trackType);
|
TrackInfo trackInfo = trackTypeToInfo.get(trackType);
|
||||||
boolean canWriteSample = canWriteSample(trackType, presentationTimeUs);
|
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) {
|
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) {
|
if (firstVideoPresentationTimeUs == C.TIME_UNSET) {
|
||||||
firstVideoPresentationTimeUs = presentationTimeUs;
|
firstVideoPresentationTimeUs = presentationTimeUs;
|
||||||
}
|
}
|
||||||
} else if (trackType == C.TRACK_TYPE_AUDIO) {
|
} else if (trackType == C.TRACK_TYPE_AUDIO) {
|
||||||
DebugTraceUtil.logEvent(
|
|
||||||
COMPONENT_MUXER,
|
|
||||||
EVENT_CAN_WRITE_SAMPLE_AUDIO,
|
|
||||||
presentationTimeUs,
|
|
||||||
/* extraFormat= */ "%s",
|
|
||||||
/* extraArgs...= */ canWriteSample);
|
|
||||||
if (dropSamplesBeforeFirstVideoSample
|
if (dropSamplesBeforeFirstVideoSample
|
||||||
&& contains(trackTypeToInfo, C.TRACK_TYPE_VIDEO)
|
&& contains(trackTypeToInfo, C.TRACK_TYPE_VIDEO)
|
||||||
&& firstVideoPresentationTimeUs != C.TIME_UNSET
|
&& firstVideoPresentationTimeUs != C.TIME_UNSET
|
||||||
@ -573,11 +574,13 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
presentationTimeUs,
|
presentationTimeUs,
|
||||||
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) {
|
|
||||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_WRITE_SAMPLE_VIDEO, presentationTimeUs);
|
DebugTraceUtil.logEvent(
|
||||||
} else if (trackType == C.TRACK_TYPE_AUDIO) {
|
COMPONENT_MUXER,
|
||||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_WRITE_SAMPLE_AUDIO, presentationTimeUs);
|
EVENT_ACCEPTED_INPUT,
|
||||||
}
|
presentationTimeUs,
|
||||||
|
/* extraFormat= */ "%s",
|
||||||
|
/* extraArgs...= */ Util.getTrackTypeString(trackType));
|
||||||
previousTrackType = trackType;
|
previousTrackType = trackType;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -597,11 +600,12 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
maxEndedTrackTimeUs = max(maxEndedTrackTimeUs, trackInfo.timeUs);
|
maxEndedTrackTimeUs = max(maxEndedTrackTimeUs, trackInfo.timeUs);
|
||||||
listener.onTrackEnded(
|
listener.onTrackEnded(
|
||||||
trackType, trackInfo.format, trackInfo.getAverageBitrate(), trackInfo.sampleCount);
|
trackType, trackInfo.format, trackInfo.getAverageBitrate(), trackInfo.sampleCount);
|
||||||
if (trackType == C.TRACK_TYPE_VIDEO) {
|
DebugTraceUtil.logEvent(
|
||||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_TRACK_ENDED_VIDEO, trackInfo.timeUs);
|
COMPONENT_MUXER,
|
||||||
} else if (trackType == C.TRACK_TYPE_AUDIO) {
|
EVENT_INPUT_ENDED,
|
||||||
DebugTraceUtil.logEvent(COMPONENT_MUXER, EVENT_TRACK_ENDED_AUDIO, trackInfo.timeUs);
|
trackInfo.timeUs,
|
||||||
}
|
/* extraFormat= */ "%s",
|
||||||
|
/* extraArgs...= */ Util.getTrackTypeString(trackType));
|
||||||
|
|
||||||
if (muxerMode == MUXER_MODE_MUX_PARTIAL) {
|
if (muxerMode == MUXER_MODE_MUX_PARTIAL) {
|
||||||
if (trackType == C.TRACK_TYPE_VIDEO) {
|
if (trackType == C.TRACK_TYPE_VIDEO) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user