Click here to Skip to main content
15,868,016 members
Articles / Multimedia / DirectX
Article

Programming DirectShow applications in C#: A set of tutorials

Rate me:
Please Sign up or sign in to vote.
4.79/5 (46 votes)
6 Oct 20052 min read 404.3K   22.7K   128   88
A collection of tutorials for programming DirectShow in C#.

Sample Image

Introduction

Besides the Microsoft SDK documentation, the information needed to program DirectShow applications is limited. This web site supplies many of the most useful references for programming these applications in C#. In order to continue this tradition, I have created a help file (.chm) that contains ten tutorials that illustrate how DirectShow applications can be written in C#.

Background

In general, the resources for programming DirectShow applications are scarce. In the past few months, I have written many tutorials that illustrate how to perform many common tasks in DirectShow with C#. I have put all these tutorials in one .chm file and provided access to all the source code samples from it. Moreover, the CodeProject web site has a nice messaging system to support the users of the code provided on this site, which should make these tutorials even more useful.

Using the code

I have provided a Visual Studio project file for each tutorial, and I have also included a .cmd file to compile it from the command line. Sometimes, these .cmd files contain references that need to be changed to reflect your local settings. I have mentioned these in the tutorial "readme.txt" file. Some tutorials will only run on 32-bit machines.

Points of Interest

The tutorials show how a simple multimedia player, a simple capture, a jukebox, and an append utility application can be written. Moreover, we have implemented versions of the Picture-In-a-Picture, custom allocator/presenter, custom image compositor samples from the DirectShow SDK in C#. And we have implemented the functionality of the EzRbg24 filter in C#.

Limitations and known issues

As mentioned previously, some samples will only work correctly on 32-bit machines. Moreover, I don't claim that these are optimal solutions. Many years ago, when I was teaching a VC++/MFC class, one student asked me where I was taking the code that I was using during the lectures. I replied that I had two directories with more than eighty samples in each of them, that I had written over a while. I was just picking some of these and brushed them up a little before presenting them and asking the students to modify or extend them (during the lectures or for assignments). I give these samples in the same spirit; but I'm still a long way from having more than hundred and sixty samples to chose from ;-)

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
United States United States
You can read my blog entries at:
http://wwww.informikon.com/blog/

Comments and Discussions

 
GeneralPlayCap Sample Pin
Freddy#18-Dec-05 22:28
Freddy#18-Dec-05 22:28 
GeneralRe: PlayCap Sample Pin
daniel04919-Dec-05 3:04
daniel04919-Dec-05 3:04 
GeneralRe: PlayCap Sample Pin
Freddy#19-Dec-05 6:02
Freddy#19-Dec-05 6:02 
GeneralRe: PlayCap Sample Pin
daniel04919-Dec-05 13:03
daniel04919-Dec-05 13:03 
GeneralUpdate code for CustomAP.InializeDevice Pin
daniel04912-Dec-05 8:12
daniel04912-Dec-05 8:12 
GeneralLive Streams frame grabbing Pin
gilgamash8-Dec-05 5:55
gilgamash8-Dec-05 5:55 
GeneralRe: Live Streams frame grabbing Pin
daniel0498-Dec-05 10:17
daniel0498-Dec-05 10:17 
GeneralRe: Live Streams frame grabbing Pin
gilgamash8-Dec-05 21:06
gilgamash8-Dec-05 21:06 
Hi,

thanx for thy reply. I wanted to write the project in C++ which I am quite familiar with, but as it seems way easier in c#, I decided to give c# a shot. Hence, I tried to change the tutorial into a Smart Device project. Was no big deal, but the GUIDs don't work at all and thus I get an error message and the program quits. As I am a newbie to c# I got one further question: How can I - especially for Smart Devices - figure out those GUIDs?

I admit I would prefer C++ - you don't happen to have written a tutorial for DirectShow and C++? Smile | :) I promise, this will have been my last question.

Best wishes,

gilgamash


-- modified at 3:08 Friday 9th December, 2005
GeneralRe: Live Streams frame grabbing Pin
daniel0499-Dec-05 8:42
daniel0499-Dec-05 8:42 
GeneralRe: Live Streams frame grabbing Pin
Suggs18-Jul-06 1:16
Suggs18-Jul-06 1:16 
GeneralIndependant control of PIP movies Pin
scs4j2c20-Nov-05 11:15
scs4j2c20-Nov-05 11:15 
GeneralRe: Independant control of PIP movies Pin
daniel04921-Nov-05 4:59
daniel04921-Nov-05 4:59 
GeneralRe: Independant control of PIP movies Pin
staeff2-Dec-05 13:28
staeff2-Dec-05 13:28 
GeneralAnswer ;) Pin
staeff5-Dec-05 20:19
staeff5-Dec-05 20:19 
GeneralOverlay Issue Pin
The illiterate14-Nov-05 1:53
The illiterate14-Nov-05 1:53 
GeneralRe: Overlay Issue Pin
daniel04914-Nov-05 5:07
daniel04914-Nov-05 5:07 
GeneralRe: Overlay Issue Pin
The illiterate15-Nov-05 18:36
The illiterate15-Nov-05 18:36 
GeneralRe: Overlay Issue Pin
daniel04917-Nov-05 6:04
daniel04917-Nov-05 6:04 
GeneralRe: Overlay Issue Pin
youssef25-Apr-06 22:08
youssef25-Apr-06 22:08 
GeneralRe: Overlay Issue Pin
daniel04927-Apr-06 7:09
daniel04927-Apr-06 7:09 
GeneralRe: Overlay Issue Pin
Suggs20-Jun-06 1:57
Suggs20-Jun-06 1:57 
QuestionRe: Overlay Issue Pin
ppaijwar22-Nov-07 5:48
ppaijwar22-Nov-07 5:48 
QuestionFiles missing? Pin
David K Yates21-Oct-05 5:31
David K Yates21-Oct-05 5:31 
AnswerRe: Files missing? Pin
daniel04921-Oct-05 9:27
daniel04921-Oct-05 9:27 
GeneralRe: Files missing? Pin
dcuccia4-Feb-06 12:20
dcuccia4-Feb-06 12:20 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.