I'm writing an OpenCV in C++ that using OpenCV that captures frames from multiple video devices, carries out a series of transforms on them, and then produces a new frame to display (in the form of an IplImage). This all works perfectly.
I then want to create an instance of a capture source filter and send it these frames, to create a virtual video device that's usable with programs like Skype. This is where I'm having some trouble.
I've had a look at Vivek's Vcam sample (capture source filter from here), which seems would be perfect, but I'm struggling to figure out how to modify it to use in my application:
Vcam fills the buffer with random values, whereas I want to fill it with the data from my frame.
Vcam produces a DLL file that needs to be registered before the filter is created, but I want to create the filter when my application starts, and then remove it when it ends
I'm completely new to DirectShow, and have only been programming in C++ for a few months, so I'm in over my head with this. Could someone outline the steps I'd need to take to implement the two changes above?
Thanks, Phil