Take the 2-minute tour ×

How do i create a custom media input/output device like a speaker or microphone that i can select from a program like Skype. For example i could make a GreyScale webcam that reads the webcam and makes it greyscale or a custom Beep Speaker that takes anything a program sends to the speaker and adds a beep after 3 seconds etc. An example would be this:


I just need help on how to create the actual (virtual?) device, not how to make it greyscale etc. I can figure that out later.

Where do i even begin to search for tutorials/readings on this? As per the tags, i prefer qt/c++ related but it doesn't necessarily have to be that. Just a nudge in the right direction to get me started would be fine.

share|improve this question

1 Answer 1

up vote 1 down vote accepted

You need to create a device driver. What that entails depends entirely on the platform and the type of device you want to emulate.

Start with the documentation of your operating system and look up references as if you were developing a new hardware device. But you'll just skip any actual hardware interfaces.

Nevertheless this is likely to require kernel programming, so Qt is likely to be inappropriate.

share|improve this answer
I was reading into DirectShow filters and it seems like it does what i want. Any ideas about that? –  user71512 Nov 23 '12 at 3:46
@user71512 If you're programming Windows, you should probably say so in the question and tags. As is this question is extremely broad and will not be highlighted to many people who can answer it. No, DirectShow filters will not help deliver the final video stream to e.g. Skype. But you might find an existing software product that applies filters to preexisting video input devices. –  Potatoswatter Nov 23 '12 at 4:38
I thought that's what a DirectShow source filter is supposed to do if you register it with regsvr32? –  user71512 Dec 2 '12 at 1:27
@user71512 Well, I have no idea about Windows one way or the other. "Filter" would be a misnomer but it's up to Microsoft what they call it. –  Potatoswatter Dec 2 '12 at 2:38

Your Answer


