|
|
|
@ -29,6 +29,8 @@ internal class CallAudioTrace(private val id: Long, private val emit: (String, S |
|
|
|
private var stoppedSince = -1L |
|
|
|
private var stoppedSince = -1L |
|
|
|
private var underrunAt = -10_000_000L |
|
|
|
private var underrunAt = -10_000_000L |
|
|
|
private var faults = 0 |
|
|
|
private var faults = 0 |
|
|
|
|
|
|
|
private var reportedDeviceUnderruns = 0L |
|
|
|
|
|
|
|
private var reportedJbUnderruns = 0L |
|
|
|
|
|
|
|
|
|
|
|
@Synchronized fun record(row: LongArray) { |
|
|
|
@Synchronized fun record(row: LongArray) { |
|
|
|
if (!enabled) return |
|
|
|
if (!enabled) return |
|
|
|
@ -51,6 +53,8 @@ internal class CallAudioTrace(private val id: Long, private val emit: (String, S |
|
|
|
if (!enabled) { |
|
|
|
if (!enabled) { |
|
|
|
history.clear(); summary.clear(); previous = null; eventAt = -1 |
|
|
|
history.clear(); summary.clear(); previous = null; eventAt = -1 |
|
|
|
faults = 0; highSince = -1; stoppedSince = -1; underrunAt = -10_000_000 |
|
|
|
faults = 0; highSince = -1; stoppedSince = -1; underrunAt = -10_000_000 |
|
|
|
|
|
|
|
lastDump = -10_000_000; suppressed = 0 |
|
|
|
|
|
|
|
reportedDeviceUnderruns = 0; reportedJbUnderruns = 0 |
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
if (overflow > 0) emit("WARN", "audio trace call=$id reporter overrun lost=$overflow") |
|
|
|
if (overflow > 0) emit("WARN", "audio trace call=$id reporter overrun lost=$overflow") |
|
|
|
@ -108,10 +112,12 @@ internal class CallAudioTrace(private val id: Long, private val emit: (String, S |
|
|
|
"route=${last[1]}/${last[2]} min/avg/max queueUs=${range(::queued)} " + |
|
|
|
"route=${last[1]}/${last[2]} min/avg/max queueUs=${range(::queued)} " + |
|
|
|
"jbMs=${range { it[16] + it[17] }} reserveMs=${range { it[18] }} spreadMs=${range { it[19] }} " + |
|
|
|
"jbMs=${range { it[16] + it[17] }} reserveMs=${range { it[18] }} spreadMs=${range { it[19] }} " + |
|
|
|
"pullUs=${range { it[5] }} writeUs=${range { it[6] }} wakeLateUs=${range { it[7] }} " + |
|
|
|
"pullUs=${range { it[5] }} writeUs=${range { it[6] }} wakeLateUs=${range { it[7] }} " + |
|
|
|
"tempo=${last[21]} deviceUnderruns=${last[9]} jbUnderruns=${last[22]} " + |
|
|
|
"tempo=${last[21]} deviceUnderruns=${last[9]} deviceUnderDelta=${last[9] - reportedDeviceUnderruns} " + |
|
|
|
|
|
|
|
"jbUnderruns=${last[22]} jbUnderDelta=${last[22] - reportedJbUnderruns} " + |
|
|
|
"zeroWrites=${summary.sumOf { it[8] }} missingPcm=${summary.sumOf { (960 - it[20]).coerceAtLeast(0) }} " + |
|
|
|
"zeroWrites=${summary.sumOf { it[8] }} missingPcm=${summary.sumOf { (960 - it[20]).coerceAtLeast(0) }} " + |
|
|
|
"stamp=${last[12]}@${last[13]} readUs=${last[14]} ok=${last[15]} " + |
|
|
|
"stamp=${last[12]}@${last[13]} readUs=${last[14]} ok=${last[15]} " + |
|
|
|
"buffer=${last[10]} start=${last[11]} fault=$faults suppressed=$suppressed") |
|
|
|
"buffer=${last[10]} start=${last[11]} fault=$faults suppressed=$suppressed") |
|
|
|
|
|
|
|
reportedDeviceUnderruns = last[9]; reportedJbUnderruns = last[22] |
|
|
|
summary.clear() |
|
|
|
summary.clear() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|