Release Android inflight state at decoder EOS before audio tail

This commit is contained in:
evgeny committed 2026-10-14 14:17:35 +02:00
1 parent 7b4dfc062a
commit 9ef18b6324
3 files changed
+15 -2

No files matched your search

@@ -95,4 +95,15 @@ class StreamDecodePumpTest {
codec.pump.step(120000, 200000)
assertEquals(4L, codec.pump.outputCount); assertEquals(120000L, codec.pump.decoderLeadUs)
}
@Test fun emptyEosReleasesTheBufferAndClearsInputsWithoutDisplayPictures() {
var finishing = false; var eof = false; var released = 0
val pump = StreamDecodePump<Frame>(submit = { true }, receive = {
if (finishing && !eof) { eof = true; StreamDecodePump.Output(0, 80000, eos = true, empty = true) } else null
}, release = { _, render -> assertFalse(render); released++ })
repeat(3) { i -> pump.offer(Frame(i * 40000L), i * 40000L); pump.step(0, i * 40000L) }
assertEquals(3, pump.inflight); finishing = true; pump.step(0, 120000)
assertTrue(pump.ended); assertEquals(0, pump.inflight); assertEquals(-1L, pump.oldestSubmittedPts)
assertEquals(1, released); pump.checkProgress(30_000_000, true)
}
}