mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-07 19:51:51 +09:00
decodemov: fixed a bug where the frame read occasionally hangs at the end of the playback
This commit is contained in:
@@ -151,10 +151,10 @@ let fb2 = sys.malloc(FBUF_SIZE)
|
||||
let startTime = sys.nanoTime()
|
||||
|
||||
let decodefun = (type > 255) ? graphics.decodeIpf2 : graphics.decodeIpf1
|
||||
let framesRead = 0
|
||||
let breakReadLoop = false
|
||||
|
||||
while (framesRendered < frameCount) {
|
||||
// serial.println(`Frame #${framesRendered+1}`)
|
||||
|
||||
while (framesRendered < frameCount && !breakReadLoop) {
|
||||
let t1 = sys.nanoTime()
|
||||
|
||||
if (akku >= frameTime) {
|
||||
@@ -169,6 +169,13 @@ while (framesRendered < frameCount) {
|
||||
// skip frames if necessary
|
||||
while (frameUnit >= 1) {
|
||||
let payloadLen = readInt()
|
||||
|
||||
if (framesRead >= frameCount) {
|
||||
breakReadLoop = true
|
||||
break
|
||||
}
|
||||
|
||||
framesRead += 1
|
||||
let gzippedPtr = readBytes(payloadLen)
|
||||
framesRendered += 1
|
||||
|
||||
|
||||
@@ -455,6 +455,7 @@ shell.execute = function(line) {
|
||||
}
|
||||
}
|
||||
};
|
||||
shell.pipes = {}; // syntax: _G.shell.pipes[name] = contents; all pipes are named pipes just like in Windows
|
||||
Object.freeze(shell);
|
||||
_G.shell = shell;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user