I'm working on some cross-platform code that plays back QuickTime
movies in my application and I'm seeing a crash in a call to
DisposeGWorld.
It only fails on Windows - at least so far - and only under certain
circumstances. For instance, I'm trying to play back an H264 movie on a
system that only has QT 6.x installed and (naturally) the movie size
that I'm given back is mostly 0x0 although I do sometimes see the QT
Loading animation and the size changes to 160x120.
The function that processes opening movies needs to handle this and
looks for a change in size and when it finds one, disposes of the old
GWorld if present, creates a new one of the right size and continues.
If I leave the DisposeGWorld in there, at some point, I crash in the
call the NewGWorldFromPtr, even though all the params are valid.
I'm very careful when I delete the GWorld - I save the old one, save
the pointer to the memory buffer I'm using, turn off call backs that
point to the GWorld or memory, create a new GWorld, dispose the old
GWorld and finally delete the memory buffer.
Any insight would be appreciated.
Cal.