Opened 13 years ago

Closed 13 years ago

Last modified 12 months ago

#3081 closed defect (fixed)

VORBIS: .sou and .bun file regressions

Reported by: eriktorbjorn Owned by: fingolfin
Priority: high Component: Engine: SCUMM
Keywords: Cc:
Game:

Description

latest SVN snapshot.

The recent Vorbis changes seem to have introduced regression with Ogg Vorbis compressed .bun and .sou files. Since these are probably caused by the same thing, I'm reporting them as one bug rather than two.

With .sou files, the first sound plays without problem. After that, it fails with a "WARNING: startTalkSound: SFX file is not open!" message.

Digital iMUSE simply crashes.

I don't understand exactly why yet, but it seems to be at least indirectly connected to vorbis.cpp's close_wrap() deleting (and thereby closing, I guess) the file.

I haven't checked if this is also true of MP3 and FLAC.

Ticket imported from: #1665707. Ticket imported from: bugs/3081.

Change History (7)

comment:1 by eriktorbjorn, 13 years ago

Owner: set to fingolfin

comment:2 by fingolfin, 13 years ago

Priority: normalhigh

comment:3 by fingolfin, 13 years ago

I actually rewrote the Vorbis code partially this morning. For me, things seem to work (well, monste.sog files at least -- didn't try .bun files yet). Does this resolve the bug? If not, could you give me a specific example where/how to reproduce it? Thanks!

comment:4 by eriktorbjorn, 13 years ago

I noticed your changes but I won't be able to try them for another few hours. I look forward to it.

If the problem still remains you can't really miss it though. The Curse of Monkey Island crashed after maybe a second or two on the difficulty selection screen. The Dig crashed immediately after pressing Escape in the opening SMUSH movie. I tried Valgrinding the CoMI case, and if I remember correctly the first thing it complained about was an invalid read at the _file->seek() line in BundleMgr::getFile(). I think that what it meant was that _file itself was invalid.

That, and the "SFX file not open" messages, is what led me to close_wrap() in vorbis.cpp, but by then I no longer had the time to investigate any further.

comment:5 by eriktorbjorn, 13 years ago

The regressions seem to be all gone now. Thanks!

comment:6 by eriktorbjorn, 13 years ago

Resolution: fixed
Status: newclosed

comment:7 by digitall, 12 months ago

Component: Engine: SCUMM
Note: See TracTickets for help on using tickets.