 |
|
 |
I use many projectsd here in codeproject as dxsnapshot and others it give many errors in Grab single frame did u have any idea how to do that
|
|
|
|
 |
|
|
 |
|
 |
DsROTEntry is defined in the lib at directshownet.sourceforge.net, you can use it as in:
DsROTEntry rot = new DsROTEntry(gb);
-daniel
|
|
|
|
 |
|
 |
Hello,
Please can you help me..
I am going through your tutorial (really interesting!) (I need to access my camera)
In you're Tutorial2: yet another capture sample in c#
I have a few qestions :
1)
I am having this problem while compiling when I am compiling the idl file with midl :
Processing .\cap.idl
Processing C:\DXSDK\Include\DShowIDL\devenum.idl
Processing C:\Include\oaidl.idl
Processing C:\Include\objidl.idl
Processing C:\Include\unknwn.idl
Processing C:\Include\wtypes.idl
Processing C:\Include\basetsd.h
Processing C:\Include\guiddef.h
Processing C:\DXSDK\Include\DShowIDL\axcore.idl
Processing C:\DXSDK\Include\DShowIDL\axextend.idl
Processing C:\Include\ocidl.idl
Processing C:\Include\oleidl.idl
Processing C:\Include\servprov.idl
Processing C:\Include\urlmon.idl
Processing C:\Include\msxml.idl
Processing C:\DXSDK\Include\DShowIDL\control.odl
Processing C:\Include\oaidl.acf
Processing C:\Include\ocidl.acf
midl\oleaut32.dll : error MIDL2020 : error generating type library : LayOut failed : IVideoWindow
Why it doesn't recognize IVideoWindow?
2) My other question is about your .idl file :
what's that?
How do you know you have to add that and where does it come from?
[
uuid(2F5957F4-78A8-4101-B3B4-A30BFC5AD628),
helpstring("Capture type library")
]
3)
I am not a specialist of DirectShow... so how do you know you have to add and what's the signification:
//CLSID_FilterGraph (take from uuids.h DirectX include)
Guid FgGuid = new Guid( "e436ebb3-524f-11ce-9f53-0020af0ba770" );
//CLSID_CaptureGraphBuilder2 (take from uuids.h DirectX include)
Guid CgGuid = new Guid( "BF87B6E1-8C27-11d0-B3F0-00AA003761C5" );
//CLSID_SystemDeviceEnum
Guid DevEnumGuid = new Guid( "62BE5D10-60EB-11d0-BD3B-00A0C911CE86" );
//CLSID_VideoInputDeviceCategory
Guid VidCapGuid = new Guid( "860BB310-5D01-11d0-BD3B-00A0C911CE86" );
// taken from strmif.h
Guid IID_IBaseFilter = new Guid( "56a86895-0ad4-11ce-b03a-0020af0ba770" );
// needed for calls to RenderStream
Guid PIN_CATEGORY_PREVIEW = new Guid( "fb6c4282-0353-11d1-905f-0000c0cc16ba" );
// needed for calls to RenderStream
Guid MEDIATYPE_Video = new Guid( "73646976-0000-0010-8000-00AA00389B71" );
const int WM_GRAPHNOTIFY = 0x00008001;
const int WS_CHILD = 0x40000000;
const int WS_CLIPCHILDREN = 0x02000000;
const int WS_CLIPSIBLINGS = 0x04000000;
Thanks a lot for your reply...Please help me...
|
|
|
|
 |
|
 |
Hi,
Your questions relate to COM programming and since DS is based on COM, it is not surprising. You should look at a good COM reference but if you want to learn as little as needed to program DS, you might want to look at directshownet.sourceforge.net for a complete wrapper of DS that can be used from .Net and you can avoid doing the stuff above since they have already done it for you.
I didn't use it much when I wrote these tutorials because it was being developed at the same time as I was writing them. But now, you can avoid most of this tedious stuff by using their library.
-daniel
|
|
|
|
 |
|
 |
I want to convert mu-LAW audio files to MP3.
Do you have a sample on how to do this in DirectShow?
thanks,
|
|
|
|
 |
|
 |
Hi,
I'm not familiar with the details of mu-Law format and I don't have a sample that you might find useful.
To encode to mp3, you'll need a third-party ds filter (eg lame). You'll also need to provide your own filter to decode your mu-law data.
Maybe this can get you started:
http://www.codeproject.com/audio/dshowencoder.asp[^]
-daniel
|
|
|
|
 |
|
 |
Hi,
Thanks for the great work with the help file - it's invaluable.
I have been looking at this for a number of days - i want to input a DX9 surface to the input pin of a VMR9 filter. The surface is being rendered separately and I need to overlay this on a video stream.
Any ideas if this can be done?
Thanks,
John
|
|
|
|
 |
|
 |
If you want decent performance, your DX9 surface has to use main memory otherwise reading from the surface will kill you. A custom A/P should do the job.
You might want to look at the vmr9allocator2 sample from directshownet.sourceforge.net
-daniel
|
|
|
|
 |
|
 |
How can I give a byte array as input to a filter graph ?
I am getting an MPEG video stream which I am saving in a byte array. I have to decode this stream. After some research, I have decided to do this in DirectShow. I am working in C#. In this regard ur tutorials were a great, great help !!!!
Now the problem:
How do I provide this byte array stream to the filter graph ?
Should I use the Source Filter?
Or will I have to obtain that byte array as an object in COM?
I am using DirectShow for the first time. I would be really grateful if I could get a reply soon as I am working on a project and time is short. Tell me if I am not clear in my description of my problem. I'll try to explain more.
__________________________________________
Trying to make sense of it all ...
|
|
|
|
 |
|
 |
Hi,
I have Visual Studio installed in my system.How can i build the DirectShow application using that.Please point me to any sources on net which have DirectShow applications and the method of building the same.
Regards,
Mayank
|
|
|
|
 |
|
|
 |
|
 |
I am using VS 2003 to compile the code but got error message said can't find the Form1.resx file. Where can I got these file for all the project? It doesn't include in your zip files.
thank you
|
|
|
|
 |
|
 |
Hi,
I don't have VS2003 but I've just tried to upgrade one project into VC# 2005 Express and you just get one warning about an empty .resx file that you can ignore.
-daniel
|
|
|
|
 |
|
 |
Hi, I would like to "throw" the bitmap, resulted from streaming session, to unmanaged code(e.g. opencv). How to do this?
|
|
|
|
 |
|
 |
Probably the easiest way is to use a sample grabber with the BufferCB method. The 2nd argument is a pointer to "the bits" of the frame. Then you can marshal the pointer to a native P/Invoked function.
IIRC opencv is not easy to use from C# due to its own data structures for many common constructs.
-daniel
|
|
|
|
 |
|
 |
Thanks for sharing this with us all, most appreciated.
I wonder if you might have a minute to help me with something?
I am trying to create a virtual video source that can be accessed from MSN Messenger.
In the same way that you would select a WebCam for a drop downlist in MSN Messenger... I would like the user to be able to select my C# application as a 'source' and have it display whatever I was playing in directX.
There is much discussion on the Internet about this topic. Some of it seems to revolve around adapting a C++ DDK Sample 'Testcap', however it seems that some people have managed it through DirectX (somehow!?).
Apparently it is possible to write a DShow filter then register it as a 'video capture source' (CLSID_VideoInputDeviceCategory) and then implementing the 'IAMStreamConfig' and IKsPropertySet interfaces? (I have gleamed this info from here: http://www.techreplies.com/drivers-43/how-implement-virtual-video-driver-base-339444/[^])
Any information or a push in the right direction would be most helpful.
The overall aim is to be able to capture the users screen and be able to send it over MSN / Flash etc. I know there are third party apps that do this.. (and the screen capture part should* be ok, thanks to many great examples on this site) ... but I would like to write it from scratch as I would like to implement more features later on (not to mention understand how it all works!)
Thanks.. and sorry for the long post
John
|
|
|
|
 |
|
 |
I don't use MSN Messenger so I'm not entirely clear on what you're trying to do. But from your description, it seems that you'll need to implement a DirectShow fitler.
These tutorials doesn't cover this field. I have another article here that shows how to prototype DS filters in C#. But the best way to go is the base classes and C++.
The two interfaces that you'd need to add to the Ball filter (a sample in the DS sdk) are small and it might not be too difficult to do. But if you're new to DirectShow filter programming, you'll have some studying to do and the only real doc is the section in the DS documentation. No book on the subject but a few articles (Google "DirectShow filter programming").
Hope this will get you started,
-daniel
|
|
|
|
 |
|
 |
Thanks very much for your response... I will check out the Ball filter and see what I can do!
Cheers,
John
|
|
|
|
 |
|
 |
I just loaded the .chm, but only the headings are displayed. What am I doing wrong?
|
|
|
|
 |
|
 |
I've cut and pasted my reply of March 16th.
"The post about a '#' in a path says to avoid saving the .chm to a directory with a name like "c:\c#", for example, since the '#' in the path might confuse windows help.
You can also try to click the "Unblock" button on the properties pages for the zip file (right-click the icon for the zip file in Windows Explorer and goto Properties and click the button at the bottom right before unzipping)."
-daniel
|
|
|
|
 |
|
 |
"Unblock" did the trick. Thanks for your quick reply.
|
|
|
|
 |
|
 |
Unblock worked for me.
|
|
|
|
 |
|
 |
Wish I could vote 6 for this article. Great work.
Tunca Bergmen
|
|
|
|
 |
|
 |
Thank you for your generous comment. This creates an incentive to prepare an update so it can be even better.
Thank you
-daniel
|
|
|
|
 |