Hi. I’m having some rather strange problems with smpeg, and was hoping
someone might point me in the right direction.
When playing an mpeg movie (with audio) in an X window, all is fine until
I move the window. At this point, the window goes black, though audio
keeps playing. My movie playing code is copied almost verbatim from
plaympeg.c (which, incidentally, seems to have the same problem). If I
drag another window partially overtop of the movie-playing window, the
image comes back and it plays fine, but as soon as the window is brought
back up to the top, the image disappears again.
I’m running XF86 version 4.0.2, sdl 1.1.6, and smpeg 0.4.2 (from Debian
Unstable). My video hardware is a Geforce2 MX using the NVidia kernel and
GLX drivers from their web site. Kernel 2.2.18 (though I imagine that
doesn’t matter) with OSS audio drivers.
I had to slightly modify the smpeg.h header. All #include “SDL*” lines
were changed to #include <SDL/SDL*>, as dpkg installs smpeg’s headers
in their own directory instead of with the rest of the SDL stuff.
Blitting an image (loaded via sdl-image) to the screen before playing the
movie causes even more strangeness. Once again, the movie plays fine
until moving the window. At the point above where the window turns black,
however, it seems to switch back to the image that was blitted before the
movie was played. I thought at first that this could be a double
buffering problem, but the problem still occurs when I do not call
SDL_SetVideoMode with the SDL_DOUBLEBUF flag. The only flags being passed
to the function are SDL_HWSURFACE|SDL_HWPALETTE. The problem still occurs
when I pass 0 as the flags value.
If anyone has any good ideas, I’d really appreciate some advice. Sorry
for being so clueless.
Could this possibly be a window management problem?