DirectShow / DirectDraw surface problem (getsurface())
I am using directshow with directdraw surfaces to play avi's in
the Irrlicht engine. they play fine in a windowed app but I have a
problem in full screen. the movie is played to a surface then copied to
a texture that I can use. The problem seems to be that I use 32 bit
textures and that when I call
pSample->GetSurface(&pSurface,&Movie_rect);
(pSample is a pointer to a IDirectDrawStreamSample)
I get a 16 bit surface in fullscreen mode, even though my Irrlicht
device is set to run in 32 bit and my desktop is 32 bit - basically I
have no idea why it is giving me a 16 bit surface and how to stop it.
It sets the pixel format to 32-bit in the windowed app I just can't
figre why it doesn't do the same in fullscreen.
I orignally thought it may be because the surface is 'uninitialised'
(this is the first time it is used). So i tried first using
CreateSurface() to create a surface with the pixel format i wanted then
passed it to GetSample() but GetSample() just reset the pixel format to
16-bit. I have also tried setting the the format of the directdrawmediastream (even though both the current and desired formats are as I want them already) just to be sure but any changes I try to make to the surface seem to de undone by the call to GetSurface().
Any suggestions would be really appreciated as I have been stuck on this for some time and I feel it is so close to working!
PS this casues a problem because when I copy to the texture from the surface I get only half as much data as i need.

