2006-03-23, 09:02 PM
I think what ShowAnalyser does is use the provided Directshow components for reading the DVR-MS files. This way you dont need to know anything about the specifics of the DVR-MS container file format. Microsoft's StreamBufferSource component acts as a demux. You tell it the name of the file, and it creates a pin for each stream in the file. You can then accept the PES packets from the video pin, and do your processing as your normally would.
If you're unfamiliar with Directshow, it may seem a bit daunting, but its actually not that difficult. You'd effectively be writing a C++ COM class that receives and processes PES packets from it input pin. There are tons of samples of how to do this in the DirectX SDK. Its probably a hundred lines of code or less, mostly cut and paste, to get to the point where you have the raw packets passed to your code for processing.
If you do decide to look at this, and need any tips to get you started, let me know and I'm sure I can help out.
If you're unfamiliar with Directshow, it may seem a bit daunting, but its actually not that difficult. You'd effectively be writing a C++ COM class that receives and processes PES packets from it input pin. There are tons of samples of how to do this in the DirectX SDK. Its probably a hundred lines of code or less, mostly cut and paste, to get to the point where you have the raw packets passed to your code for processing.
If you do decide to look at this, and need any tips to get you started, let me know and I'm sure I can help out.