Hello all,

Let me state my problem: we have proprietary media files (based on a variation of MPEG) and a library which does the decoding. Currently, it is implemented this way: an ActiveX control opens the file, reads the blocks, gives the blocks to the library, gets an image back, and draws the image. Applications that need to read the files instantiate the ActiveX control and call some simple methods (OpenFile, Play, Pause and such.)

As it is, it works, but now we have to handle several other types of media files (all proprietary as well). Instead of adapting the existing ActiveX control (which looks like it has been written by angry monkeys), I'd much rather use DirectShow. But I have no experience with it, so I need some help.

I figure all I have to do is write a codec (well, only a 'dec, actually) for each media type. These decoders would do essentially what is now being done by the ActiveX control: take a file as input, reads the blocks, call the library, and produces images as output.

Am I even close to right so far?

I've started to read the DirectShow documentation and I think Direct Media Objets (DMOs) are what I need to use. If I write a DMO for each of my file type, then my proprietary files should be readable by standard media players, right?

Am I on the right track, or not at all?

Thanks in advance for your help.