decodemov: fixed a bug where the frame read occasionally hangs at the end of the playback

This commit is contained in:
minjaesong
2022-05-11 15:48:15 +09:00
parent 537651993e
commit 541d385ec6
2 changed files with 11 additions and 3 deletions

View File

@@ -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

View File

@@ -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;