Opened 18 years ago

Closed 18 years ago

Last modified 11 years ago

#433 closed defect (fixed)

DIG: "unexistant streamer"

Reported by: fingolfin Owned by: SF/ender
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: The Dig

Description

Using scummvm-new and the new Smush player, I get a lot of these warnings during the intro movie:

WARNING: Trying to stream to an unexistant streamer : 0! WARNING: Trying to stream to an unexistant streamer : 1!

Would seem to me that something is wrong there? It happens more often if my system is slow due to some heavy computations running at the same time.

Ticket imported from: #600427. Ticket imported from: bugs/433.

Change History (4)

comment:1 by SF/xtrochu, 18 years ago

This is mainly a synchronisation problem.

What happens is that because the smush player waits for a timer before starting to decode the next frame, it may append the new decoded sound samples to late to the mixer, i.e. after the channel has been marked as terminated and destroyed.

This is why you also can hear shoppy sound at the same time as this happens.

Now, one possible solution (the one I used for my own decoder) is to have the smush player wait not for a timer event, but wait for the mixer to be *nearly empty*. I don't really know how such an event could be set up in a way that is portable, but that should correct this problem.

One other issue is that the frame rate of Full Throttle movies are around 10 FPS, but for the dig it's around 12 or 15. Right now the timer event is set to 75 ms (13.33 FPS) so Full Throttle movie run too fast, so most sound overlap.

The proposed solution should also correct this issue.

comment:2 by SF/ender, 18 years ago

Resolution: fixed
Status: newclosed

comment:3 by SF/ender, 18 years ago

This has been mostly fixed by the latest CVS changes to SMUSH.

Remaining warnings() are simply just buffer underruns due to slow CD access, but should cause no major problems.

comment:4 by Kirben, 11 years ago

Owner: set to SF/ender
Note: See TracTickets for help on using tickets.