Click here to Skip to main content
11,495,319 members (58,702 online)
Click here to Skip to main content

Programming DirectShow applications in C#: A set of tutorials

, 6 Oct 2005 284.3K 16.9K 124
Rate this:
Please Sign up or sign in to vote.
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 Wink | ;-)

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

Share

About the Author

daniel049

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

Comments and Discussions

 
GeneralMy vote of 2 Pin
zomorrod.company21-Oct-13 8:45
memberzomorrod.company21-Oct-13 8:45 
BugFrame 0 is not being displayed Pin
Squall8315-Feb-12 3:23
memberSquall8315-Feb-12 3:23 
GeneralGreat tutorial! Pin
Beri30-May-11 12:24
memberBeri30-May-11 12:24 
GeneralMy vote of 5 Pin
kingsk19-Oct-10 10:56
memberkingsk19-Oct-10 10:56 
Generalmaking DirectShow filters compile in 64-bit Windows Pin
Marc Perrone16-Aug-10 5:40
memberMarc Perrone16-Aug-10 5:40 
GeneralRe: making DirectShow filters compile in 64-bit Windows Pin
Marc Perrone16-Aug-10 5:42
memberMarc Perrone16-Aug-10 5:42 
GeneralI cannot open the file Pin
Jan Kluson2-Aug-10 7:54
memberJan Kluson2-Aug-10 7:54 
SuggestionRe: I cannot open the file Pin
colinmeier11-Apr-12 10:30
membercolinmeier11-Apr-12 10:30 
GeneralMy vote of 1 Pin
qjaybee2-Jun-10 0:59
memberqjaybee2-Jun-10 0:59 
GeneralResource file missing Pin
york z30-May-10 23:23
memberyork z30-May-10 23:23 
GeneralAnti-flicker problem Pin
QuyLV19-Feb-09 22:37
memberQuyLV19-Feb-09 22:37 
GeneralSave PIP as wmv file Pin
rama srinu23-Jan-09 6:09
memberrama srinu23-Jan-09 6:09 
GeneralMultiple Sample Grabber Objects Pin
kazim bhai11-Jun-08 6:42
memberkazim bhai11-Jun-08 6:42 
GeneralRe: Multiple Sample Grabber Objects Pin
daniel04912-Jun-08 12:18
memberdaniel04912-Jun-08 12:18 
Generalcannot display this HTML help file Pin
HooNose_JJP11-Jun-08 3:18
memberHooNose_JJP11-Jun-08 3:18 
GeneralRe: cannot display this HTML help file Pin
HooNose_JJP11-Jun-08 3:30
memberHooNose_JJP11-Jun-08 3:30 
GeneralRe: cannot display this HTML help file Pin
daniel04911-Jun-08 3:59
memberdaniel04911-Jun-08 3:59 
GeneralGreately in need of help Pin
babu743-Jun-08 2:49
memberbabu743-Jun-08 2:49 
General.net Compact Framework Pin
s4souhail3-Aug-07 9:43
members4souhail3-Aug-07 9:43 
GeneralRe: .net Compact Framework Pin
daniel0494-Aug-07 8:30
memberdaniel0494-Aug-07 8:30 
GeneralJukebox: Step Forward works, but Step Backward has problems Pin
stringtheory_x5-Jul-07 20:22
memberstringtheory_x5-Jul-07 20:22 
GeneralRe: Jukebox: Step Forward works, but Step Backward has problems Pin
daniel0499-Jul-07 7:19
memberdaniel0499-Jul-07 7:19 
QuestionHow to capture single frame Pin
aishar22-Jun-07 5:35
memberaishar22-Jun-07 5:35 
QuestionAccess to Running Object Table? Pin
stringtheory_x31-May-07 0:35
memberstringtheory_x31-May-07 0:35 
AnswerRe: Access to Running Object Table? Pin
daniel04931-May-07 3:57
memberdaniel04931-May-07 3:57 
QuestionProblem with your tutorial.. please help... Pin
angeldoescry9-May-07 6:34
memberangeldoescry9-May-07 6:34 
AnswerRe: Problem with your tutorial.. please help... Pin
daniel04910-May-07 15:06
memberdaniel04910-May-07 15:06 
Generalmu-LAW to MP3 Pin
Vince Zhou2-May-07 14:47
memberVince Zhou2-May-07 14:47 
GeneralRe: mu-LAW to MP3 Pin
daniel0495-May-07 9:21
memberdaniel0495-May-07 9:21 
GeneralVMR9 and DX9 surface input Pin
wingnutman118-Apr-07 3:47
memberwingnutman118-Apr-07 3:47 
GeneralRe: VMR9 and DX9 surface input Pin
daniel04920-Apr-07 10:43
memberdaniel04920-Apr-07 10:43 
GeneralGreat article !!... I need some help regarding video streaming.... Pin
sidsidz31-Mar-07 22:06
membersidsidz31-Mar-07 22:06 
QuestionBuilding a DirectShow application Pin
Maynka27-Mar-07 2:59
memberMaynka27-Mar-07 2:59 
AnswerRe: Building a DirectShow application Pin
daniel04929-Mar-07 4:37
memberdaniel04929-Mar-07 4:37 
QuestionCan't find the resource file Pin
hdtntran18-Jan-07 14:15
memberhdtntran18-Jan-07 14:15 
AnswerRe: Can't find the resource file Pin
daniel04921-Jan-07 5:59
memberdaniel04921-Jan-07 5:59 
GeneralThrow the pointer to unmanaged Pin
chernobyl24-Nov-06 21:37
memberchernobyl24-Nov-06 21:37 
GeneralRe: Throw the pointer to unmanaged Pin
daniel04925-Nov-06 8:24
memberdaniel04925-Nov-06 8:24 
GeneralThank you and question Pin
John Whiteman22-Sep-06 4:35
memberJohn Whiteman22-Sep-06 4:35 
GeneralRe: Thank you and question Pin
daniel04924-Sep-06 6:50
memberdaniel04924-Sep-06 6:50 
GeneralRe: Thank you and question Pin
John Whiteman24-Sep-06 10:48
memberJohn Whiteman24-Sep-06 10:48 
GeneralCan't read help file. Pin
Michael Fogle21-Sep-06 6:58
memberMichael Fogle21-Sep-06 6:58 
GeneralRe: Can't read help file. Pin
daniel04921-Sep-06 7:07
memberdaniel04921-Sep-06 7:07 
GeneralRe: Can't read help file. Pin
Michael Fogle21-Sep-06 7:12
memberMichael Fogle21-Sep-06 7:12 
GeneralRe: Can't read help file. Pin
Member 73093922-Mar-08 12:52
memberMember 73093922-Mar-08 12:52 
GeneralThanks for excellent work Pin
Tunca Bergmen14-Apr-06 3:35
memberTunca Bergmen14-Apr-06 3:35 
GeneralRe: Thanks for excellent work Pin
daniel04914-Apr-06 9:10
memberdaniel04914-Apr-06 9:10 
GeneralNetwork Streaming Pin
duzinga17-Mar-06 22:23
memberduzinga17-Mar-06 22:23 
GeneralRe: Network Streaming Pin
daniel04918-Mar-06 8:27
memberdaniel04918-Mar-06 8:27 
GeneralRe: Network Streaming Pin
duzinga21-Mar-06 15:41
memberduzinga21-Mar-06 15:41 

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

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

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.150520.1 | Last Updated 6 Oct 2005
Article Copyright 2005 by daniel049
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid