Add logging for ExtTexMgr
- Number of frames from SurfaceTexture that is sent downstream - Times ExtTexMgr signaled end of current input stream PiperOrigin-RevId: 534487842
This commit is contained in:
parent
7c477589e5
commit
d584a772e3
@ -49,6 +49,14 @@ public final class DebugTraceUtil {
|
|||||||
private static final Queue<Long> VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS =
|
private static final Queue<Long> VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS =
|
||||||
new ArrayDeque<>();
|
new ArrayDeque<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The timestamps at which {@code ExternalTextureManager} signalled end of current input stream,
|
||||||
|
* in milliseconds.
|
||||||
|
*/
|
||||||
|
@GuardedBy("DebugTraceUtil.class")
|
||||||
|
private static final Queue<Long> EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOCIS_TIMES_MS =
|
||||||
|
new ArrayDeque<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The timestamps at which {@code VideoFrameProcessor} signalled end of stream, in milliseconds.
|
* The timestamps at which {@code VideoFrameProcessor} signalled end of stream, in milliseconds.
|
||||||
*/
|
*/
|
||||||
@ -82,6 +90,13 @@ public final class DebugTraceUtil {
|
|||||||
@GuardedBy("DebugTraceUtil.class")
|
@GuardedBy("DebugTraceUtil.class")
|
||||||
private static int numberOfFramesRenderedToVideoFrameProcessorInput = 0;
|
private static int numberOfFramesRenderedToVideoFrameProcessorInput = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of frames sent to the {@link GlShaderProgram} after they arrive on {@code
|
||||||
|
* VideoFrameProcessor}'s input surface.
|
||||||
|
*/
|
||||||
|
@GuardedBy("DebugTraceUtil.class")
|
||||||
|
private static int numberOfFramesDequeuedFromVideoProcessorInput = 0;
|
||||||
|
|
||||||
/** The number of frames rendered to {@code VideoFrameProcessor}'s output. */
|
/** The number of frames rendered to {@code VideoFrameProcessor}'s output. */
|
||||||
@GuardedBy("DebugTraceUtil.class")
|
@GuardedBy("DebugTraceUtil.class")
|
||||||
private static int numberOfFramesRenderedToVideoFrameProcessorOutput = 0;
|
private static int numberOfFramesRenderedToVideoFrameProcessorOutput = 0;
|
||||||
@ -100,12 +115,14 @@ public final class DebugTraceUtil {
|
|||||||
latestVideoInputFormat = null;
|
latestVideoInputFormat = null;
|
||||||
numberOfDecodedFrames = 0;
|
numberOfDecodedFrames = 0;
|
||||||
numberOfFramesRenderedToVideoFrameProcessorInput = 0;
|
numberOfFramesRenderedToVideoFrameProcessorInput = 0;
|
||||||
|
numberOfFramesDequeuedFromVideoProcessorInput = 0;
|
||||||
numberOfFramesRenderedToVideoFrameProcessorOutput = 0;
|
numberOfFramesRenderedToVideoFrameProcessorOutput = 0;
|
||||||
numberOfEncodedFrames = 0;
|
numberOfEncodedFrames = 0;
|
||||||
numberOfMuxedFrames = 0;
|
numberOfMuxedFrames = 0;
|
||||||
DECODER_RECEIVE_EOS_TIMES_MS.clear();
|
DECODER_RECEIVE_EOS_TIMES_MS.clear();
|
||||||
DECODER_SIGNAL_EOS_TIMES_MS.clear();
|
DECODER_SIGNAL_EOS_TIMES_MS.clear();
|
||||||
VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS.clear();
|
VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS.clear();
|
||||||
|
EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOCIS_TIMES_MS.clear();
|
||||||
VIDEO_FRAME_PROCESSOR_SIGNAL_EOS_TIMES_MS.clear();
|
VIDEO_FRAME_PROCESSOR_SIGNAL_EOS_TIMES_MS.clear();
|
||||||
ENCODER_RECEIVE_EOS_TIMES_MS.clear();
|
ENCODER_RECEIVE_EOS_TIMES_MS.clear();
|
||||||
MUXER_CAN_WRITE_VIDEO_SAMPLE.clear();
|
MUXER_CAN_WRITE_VIDEO_SAMPLE.clear();
|
||||||
@ -124,6 +141,10 @@ public final class DebugTraceUtil {
|
|||||||
numberOfFramesRenderedToVideoFrameProcessorInput++;
|
numberOfFramesRenderedToVideoFrameProcessorInput++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static synchronized void recordFrameDequeuedFromVideoFrameProcessorInput() {
|
||||||
|
numberOfFramesDequeuedFromVideoProcessorInput++;
|
||||||
|
}
|
||||||
|
|
||||||
public static synchronized void recordFrameRenderedToVideoFrameProcessorOutput() {
|
public static synchronized void recordFrameRenderedToVideoFrameProcessorOutput() {
|
||||||
numberOfFramesRenderedToVideoFrameProcessorOutput++;
|
numberOfFramesRenderedToVideoFrameProcessorOutput++;
|
||||||
}
|
}
|
||||||
@ -150,6 +171,10 @@ public final class DebugTraceUtil {
|
|||||||
VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS.add(SystemClock.DEFAULT.elapsedRealtime());
|
VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS.add(SystemClock.DEFAULT.elapsedRealtime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static synchronized void recordExternalInputManagerSignalEndOfCurrentInputStream() {
|
||||||
|
EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOCIS_TIMES_MS.add(SystemClock.DEFAULT.elapsedRealtime());
|
||||||
|
}
|
||||||
|
|
||||||
public static synchronized void recordVideoFrameProcessorSignalEos() {
|
public static synchronized void recordVideoFrameProcessorSignalEos() {
|
||||||
VIDEO_FRAME_PROCESSOR_SIGNAL_EOS_TIMES_MS.add(SystemClock.DEFAULT.elapsedRealtime());
|
VIDEO_FRAME_PROCESSOR_SIGNAL_EOS_TIMES_MS.add(SystemClock.DEFAULT.elapsedRealtime());
|
||||||
}
|
}
|
||||||
@ -181,6 +206,8 @@ public final class DebugTraceUtil {
|
|||||||
+ numberOfDecodedFrames
|
+ numberOfDecodedFrames
|
||||||
+ ", Rendered to VFP: "
|
+ ", Rendered to VFP: "
|
||||||
+ numberOfFramesRenderedToVideoFrameProcessorInput
|
+ numberOfFramesRenderedToVideoFrameProcessorInput
|
||||||
|
+ ", Rendered to GlSP: "
|
||||||
|
+ numberOfFramesDequeuedFromVideoProcessorInput
|
||||||
+ ", Rendered to encoder: "
|
+ ", Rendered to encoder: "
|
||||||
+ numberOfFramesRenderedToVideoFrameProcessorOutput
|
+ numberOfFramesRenderedToVideoFrameProcessorOutput
|
||||||
+ ", Encoded: "
|
+ ", Encoded: "
|
||||||
@ -193,6 +220,8 @@ public final class DebugTraceUtil {
|
|||||||
+ generateString(DECODER_SIGNAL_EOS_TIMES_MS)
|
+ generateString(DECODER_SIGNAL_EOS_TIMES_MS)
|
||||||
+ ", VFP receive EOS: "
|
+ ", VFP receive EOS: "
|
||||||
+ generateString(VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS)
|
+ generateString(VIDEO_FRAME_PROCESSOR_RECEIVE_DECODER_EOS_TIMES_MS)
|
||||||
|
+ ", VFP ExtTexMgr signal EndOfCurrentInputStream: "
|
||||||
|
+ generateString(EXTERNAL_TEXTURE_MANAGER_SIGNAL_EOCIS_TIMES_MS)
|
||||||
+ ", VFP signal EOS: "
|
+ ", VFP signal EOS: "
|
||||||
+ generateString(VIDEO_FRAME_PROCESSOR_SIGNAL_EOS_TIMES_MS)
|
+ generateString(VIDEO_FRAME_PROCESSOR_SIGNAL_EOS_TIMES_MS)
|
||||||
+ ", Encoder receive EOS: "
|
+ ", Encoder receive EOS: "
|
||||||
|
@ -137,6 +137,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
// Reset because there could be further input streams after the current one ends.
|
// Reset because there could be further input streams after the current one ends.
|
||||||
currentInputStreamEnded = false;
|
currentInputStreamEnded = false;
|
||||||
externalShaderProgram.signalEndOfCurrentInputStream();
|
externalShaderProgram.signalEndOfCurrentInputStream();
|
||||||
|
DebugTraceUtil.recordExternalInputManagerSignalEndOfCurrentInputStream();
|
||||||
} else {
|
} else {
|
||||||
maybeQueueFrameToExternalShaderProgram();
|
maybeQueueFrameToExternalShaderProgram();
|
||||||
}
|
}
|
||||||
@ -183,6 +184,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
() -> {
|
() -> {
|
||||||
if (pendingFrames.isEmpty() && currentFrame == null) {
|
if (pendingFrames.isEmpty() && currentFrame == null) {
|
||||||
externalShaderProgram.signalEndOfCurrentInputStream();
|
externalShaderProgram.signalEndOfCurrentInputStream();
|
||||||
|
DebugTraceUtil.recordExternalInputManagerSignalEndOfCurrentInputStream();
|
||||||
} else {
|
} else {
|
||||||
currentInputStreamEnded = true;
|
currentInputStreamEnded = true;
|
||||||
}
|
}
|
||||||
@ -251,6 +253,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
currentFrame.height),
|
currentFrame.height),
|
||||||
presentationTimeUs);
|
presentationTimeUs);
|
||||||
checkStateNotNull(pendingFrames.remove());
|
checkStateNotNull(pendingFrames.remove());
|
||||||
|
DebugTraceUtil.recordFrameDequeuedFromVideoFrameProcessorInput();
|
||||||
// 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.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user