DirectShow .net simple component

I need a .NET component that should provide video rendering services. Component should have a windows forms component as a parameter (it will usually be the panel as a placeholder) and will do the following:

- construct directshow graph as one in the attached picture

- graph will have 2 sample grabbers and one video plus one audio renderer

- following properties must be set:

for video:

- framerate

- color format (RGB, YUY2, ...)

- frame size

for audio:

- sample frequency

- audio device to play on

- mono/stereo

Component will upon starting create proper directshow graph, initialize it's renderers, and start the playback. Component will get its video frame and audio sample data through the callback (event).

To demonstrate component use, you will:

- create a form that will accept all the parameters above, audio device can be number or combo box filled with audio device names

- for video frame creation, you'll use GDI+ Graphics object and draw to fixed Bitmap created in memory (you can draw anything you like, for example text on the screen with current video timestamp) - demonstrate only RGB24, prove that others can be used

- for audio sample, you will generate sine wave tone of some frequency (say 100hz)

- demo will be able to fire up to 4 renderers this way.

Use this:

<[url removed, login to view]>

And target .NET 2.0 x86

Also, handle surface loss in some fashion (ctrl+alt+del). Take care that video and audio MUST be in sync, so callback, when fired, should collect the video frame and audio data that had to MATCH in timestamps.

I know that graph provided in the attachment is invalid, but is here to provide an illustration of what I want to do.

Please, ask first, bid second, ask some more, then do the coding. Less trouble for everyone, that way :)