Bad news: I got this this morning:
![STOP: c000021a {Fatal System Error} BSOD](http://members.gamedev.net/EvilSteve/JournalStuff2/BSOD.jpg)
I've now lost an entire morning reinstalling windows (Windows XP repair install did a fantastic job), getting my USB ports to work and getting around "FLOPPY DISK SEEK ERROR" messages. Which is interesting, because this PC doesn't have a fucking floppy disk drive.
I really hate this piece of crap Dell PC - I've heard that most people's experiences with Dell hardware are positive, but we've had no end of problems with all of our ones at work, and we haven't had time to get them fixed (We have way too much work to loose any time getting PCs repaired and sorting people out with temporary replacements). Personally, I think that all these PCs have got bad motherboards in them.
Good news: We finally got our deposit posted to us from our last place - 3 and a half months after moving out.
Bad news: They spelled both of our names wrong on the cheques. My ex-flatmate's name is Ruan, and they wrote the cheque to Ryan, and my surname is Macpherson and they wrote it to McPherson. My cheque will probably be alright, but the bank may be a bit funny about my ex-flatmates.
In other news, I'm procrastinating a bit. I haven't touched the video texture tutorial code since I last said I was going back to DirectShow. I've been looking at IO Completion Ports instead, and I'm vaguely considering writing a 2D MMO (Some of you may recall that I was working on one a long time ago). I know it's a big task, but I can do it in small steps, and turn each step into a tutorial as I go along - if I manage to get completely to grips with IO Completion Ports that is, I'm not going to write about anything I don't understand completely.
Well, end of lunch and I have a mornings work to catch up on...
Semi-edit: Well, it took an hour to upload that image... Damn file manager is slooooooow...
Sorry if I'm replying to the newer post, I hope it's ok for you.
I don't remember experiencing any issue with the debug runtimes, so I looked for IDirect3DVideoDevice9 via MSVC. Well... there's no match in my entire solution!!! I don't know what the graph builder does internally, but in my code I don't even touch that interface.
I'm starting wondering if we are playing in the same ballpark. Just to be sure, how did you get the DirectShow headers+lib? I'm using Windows SDK Feb 2007 and I've been forced to modify the SDK headers in order to compile my project.
AFAIK this is a known issue, related to the process of moving DirectShow from the DirectX SDK to the Platfom SDK, without removing a dependency of a file which no longer exists (dxtrans.h). Since usually we should not edit the SDK headers, I suppose if you had changed them, you would remember that!
Can I assume we are compiling against the same DirectShow? I'm not 100% sure but if I downloaded an entire Platform SDK just for DirectShow, then I probably experienced some problems compiling against my old DX8 SDK folder.
If we aren't compiling against the same version, give a try to the Platform SDK, then open qedit.h and comment any reference to dxtrans.h. Then every time you include qedit.h, add the following defines:
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__
#include "qedit.h"
This trick seems to work.
You're right, but I suppose it would be weird if VMR9 allowed to render into a memory buffer, as VMR9 should be about the GPU performing as much operations as possible.
I wonder if in multicore days it's better to pay the price of a multithreaded device or let the cpu decode video and manually update data to a surface. The problem I see is some video formats output planar YUV data. I don't know if plain DirectShow will return an interleaved RGB buffer, but such a conversion is definitely going to have an impact on performance.
As for point number 3, while I was writing my VMR9-based code I started thinking I was living in dumbville. It took some time to get that thing working. Maybe the problem is not my dumbness, but VMR9 itself.
The benefit should be faster decoding and simpler code (!!!!). Actually if the scene does not consume much GPU time, VMR9 does its job flawlessly.