Transformer: Add latest input format to DebugTraceUtil

This can provide more information to help debug muxer errors

PiperOrigin-RevId: 531521974
(cherry picked from commit 2736b118458c1ead0cbac2457700c1333f7c86c7)
This commit is contained in:
huangdarwin 2023-05-12 17:06:02 +01:00 committed by Tofunmi Adigun-Hameed
parent 932bed1f79
commit 2ab9c0c556
2 changed files with 15 additions and 1 deletions

View File

@ -17,7 +17,9 @@
package androidx.media3.effect;
import androidx.annotation.GuardedBy;
import androidx.annotation.Nullable;
import androidx.media3.common.C;
import androidx.media3.common.Format;
import androidx.media3.common.util.SystemClock;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
@ -68,6 +70,10 @@ public final class DebugTraceUtil {
@GuardedBy("DebugTraceUtil.class")
private static final Queue<Long> MUXER_TRACK_END_TIMES_MS = new ArrayDeque<>();
/** The input {@link Format} of the latest media item. */
@GuardedBy("DebugTraceUtil.class")
private static @Nullable Format latestVideoInputFormat = null;
/** The number of decoded frames. */
@GuardedBy("DebugTraceUtil.class")
private static int numberOfDecodedFrames = 0;
@ -91,6 +97,7 @@ public final class DebugTraceUtil {
private DebugTraceUtil() {}
public static synchronized void reset() {
latestVideoInputFormat = null;
numberOfDecodedFrames = 0;
numberOfFramesRenderedToVideoFrameProcessorInput = 0;
numberOfFramesRenderedToVideoFrameProcessorOutput = 0;
@ -105,6 +112,10 @@ public final class DebugTraceUtil {
MUXER_TRACK_END_TIMES_MS.clear();
}
public static synchronized void recordLatestVideoInputFormat(Format format) {
latestVideoInputFormat = format;
}
public static synchronized void recordDecodedFrame() {
numberOfDecodedFrames++;
}
@ -164,7 +175,9 @@ public final class DebugTraceUtil {
}
public static synchronized String generateTrace() {
return "Decoded: "
return "Video input format: "
+ latestVideoInputFormat
+ ", Decoded: "
+ numberOfDecodedFrames
+ ", Rendered to VFP: "
+ numberOfFramesRenderedToVideoFrameProcessorInput

View File

@ -71,6 +71,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
@Override
protected void onInputFormatRead(Format inputFormat) {
DebugTraceUtil.recordLatestVideoInputFormat(inputFormat);
if (flattenForSlowMotion) {
sefVideoSlowMotionFlattener = new SefSlowMotionFlattener(inputFormat);
}