I'm currently using the VMR-9 renderer to play a video in my game. Running when the game's in a window works perfectly fine. I create the filter graph and do all the set up right when I play the video and release the graph at the end of it. If I flip the game into fullscreen (true fullscreen, not a stretched window) before running the video, about 50% of the time the video will not render. When I press alt+enter (which the engine flips from fullscreen to windowed mode), I see the video image in fullscreen then when the game flips back to windowed, it's paused and it never hits any of my paused statements.
I've thrown in several logging statements in the WM_PAINT message handling and find that the HRESULT from the render returns S_OK every time. WM_PAINT is being called often enough that it should be painting just fine, as it does when not in fullscreen. Each update cycle of the game, I invalidate the entire window rect when the video's playing as well. The background color draws but not the video image. The renderer returns an S_OK from the repaint call, too.
I've tried with both compressed and uncompressed AVI files as well as WMV files, all with the same issue. They all run fine in a window, but fail 50% of the time in fullscreen and freeze when flipping between fullscreen and window.
Filter graph : I'm using the generic filter graph set up the default for AVI files. CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)(&m_pGraphBuilder)); I'm primarily using WMV but I've also used the Cinepak Codec with AVIs. I haven't gotten any other decompression filters to work properly either.
I pulled all the code from MSDN to set this up. I create the graph and grab references to several interfaces to track the progress of the video (IMediaControl, IMediaSeeking, and IMediaEventEx). Then I initialize the windowless VMR-9 and inject it into the graph. Then I play the video. Works fine when the game's in a window, but not fullscreen. The sound plays all the time, just the video only shows up 50% of the time. Any suggestions?
Here's the system I'm using: Windows XP, sp2. Visual Studio 2005 professional. Windows SDK 6.0. VMR9 in windowless mode. I'm using VMR9 because I need this to run on both XP and Vista without requiring redist and the game runs using D3D9
C/C++ arrays are zero based.
While there's nothing wrong in liking better one-based arrays, it is wiser remaining stuck with zero-based ones, because:
You need extra work to make your arrays alive (extra work is generally bad)
Most people use the opposite convention: that means you have to adapt your data to any time you've to deal with other people code, like libraries, etc..
Neverthless, there are few examples of consistently used one-based arrays, for instance, all "Numerical Recipes" book source code uses it (the authors simply ignore array item 0).
Like all 'alien' conventions it's a bit difficult to grasp immediately, but after some experience with, becomes 'natural'.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
thanks, well i was trying to make the app more easy to follow, because 0 based arrays are not so intuitive, we starts count in one, i think that the easy way is make the array one element bigger but when you have many arrays is a waste of memo, so i would try with your seggest.
I'm using g++ version 4.4.1 in Ubuntu and I am trying to use the SSE3 intrinsic for the HADDPS instruction. I have included the header file:
and I have in my code:
num3 = _mm_hadd_ps(num3, num3);
where num3 is of type __m128.
Unfortunately, when I go to compile, I get the error message:
error: ‘_mm_hadd_ps’ was not declared in this scope
Other SSE intrinsics, such as _mm_setzero_p or _mm_mul_ps, work fine. Those are SSE or SSE2 intrinsics though...
Does anyone know if g++ supports the _mm_hadd_ps intrinsic? Or maybe there is another intrinsic for this instruction? Any help is much appreciated.
In my CSocket client program, when I repeatedly relogon from one client, I see "Socket Notification Sink" exception.
I read some posts on the forum about this error, which said: dummy window and something else - anyway, it is bad design of CSocket.
In my case, I guess the exception is around function CSocket::Close(), CSockt::Connect() and CSocket::Send() for sending first message. I also guess the exception is caused by if CSocket is not ready for use.
I used try-catch, but the exception can not be catched.