Activity for DirectShow .NET

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Hi Media Player goes Blank or freezes, but still play audio public void Play() { int hr = 0; //Build coinstamced the graphbuilder graphBuilder = (IFilterGraph2)new FilterGraph(); //add mediacontrol to graphbuilder mediaControl = (IMediaControl)graphBuilder; videoWindow = graphBuilder as IVideoWindow; //////////////////////////////////////////////////////////////////////////////////////////// //Build wmr9 vmr9 = (IBaseFilter)new VideoMixingRenderer9(); //add the config filter filterConfig = (IVMRFilterConfig9)vmr9;...

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Hi years ago I followed this tutorial in c++ https://www.codeproject.com/Articles/80413/Streaming-Server-using-Direct-Show-and-Windows-Med But I am trying to convert it to c# ... am planning to use in my chat app for IoT I really need the correct code for ` m_pProvider = (DirectShowLib.IServiceProvider)m_pWMASFWritter; IWMWriterAdvanced2 m_pWriter2; object o = null; m_pProvider.QueryService(IWMWriterAdvanced2, IWMWriterNetworkSink, o); m_pWriter2 = (IWMWriterAdvanced2)o; ` Thanks

  • derek w keys derek w keys modified a comment on discussion Open Discussion

    Hi I am currently looking again at ASF Server am planning to use in my chat app for IoT I really need the correct code for ` m_pProvider = (DirectShowLib.IServiceProvider)m_pWMASFWritter; IWMWriterAdvanced2 m_pWriter2; object o = null; m_pProvider.QueryService(IWMWriterAdvanced2, IWMWriterNetworkSink, o); m_pWriter2 = (IWMWriterAdvanced2)o; ` Thanks

  • Michael Michael modified a comment on discussion Open Discussion

    Oops!. Hit the Post button twice.

  • Michael Michael posted a comment on discussion Open Discussion

    Finally gave up on the bitmaps as a transport class for the pixel buffers. Too many problems kept surfacing. The "GDI Generic Error" and "Out of Memory Error" every few hundred frames were not going to go away. And I kept hitting locked pixel buffers for which I could never track down the source. Came up with a simple wrapper class for the pixel buffer. Then I copied the media sample into the buffer in managed space and packaged it in the wrapper class for resizing. I had to learn how to write image...

  • Michael Michael posted a comment on discussion Open Discussion

    Finally gave up on the bitmaps as a transport class for the pixel buffers. Too many problems kept surfacing. The "GDI Generic Error" and "Out of Memory Error" every few hundred frames were not going to go away. And I kept hitting locked pixel buffers for which I could never track down the source. Came up with a simple wrapper class for the pixel buffer. Then I copied the media sample into the buffer in managed space and packaged it in the wrapper class for resizing. I had to learn how to write image...

  • Michael Michael posted a comment on discussion Open Discussion

    Well, I got this Rube-Goldberg contraption to work - sort of. The original GSSF is unmodified from the sample code. I did replace the Image Handler class with a different one, more suitable to my application. If I ever do need to extend GSSF, the "DECLARE_INTERFACE" macros used in the original source make that quite easy to do. I packaged media samples from the first-stage collection graphs as bitmaps, intending to use the optimized code from Microsoft that can stretch images to different sizes....

  • Michael Michael posted a comment on discussion Open Discussion

    Finally got the GSSF filter to build from the sample project. There is a flaw in the original project file which causes "unsatisfied external reference" errors on every method called from the C++ DirectShow base classes. The flaw is corrected by changing the C++ Language configuration to specify "Treat WChar_t as built-in type". People seemed to know about this 13 years ago, but I just found the solution in an old blog post. The test application throws an exception with hr code x 80040154, which...

  • Michael Michael posted a comment on discussion Open Discussion

    I pulled the "GenericSampleSourceFilter-2008" from the DirectShow.Net examples set of 2010. I am adapting this item for use as a "video source" filter to provide composite bitmap images to the special effects graph. Thanks to "Snarfle" for posting the samples, so many years ago. Yes, there are still practitioners out there supporting live commercial applications that use this stuff. *"I stand on the shoulders of giants".

  • Michael Michael posted a comment on discussion Open Discussion

    So far, I have three running graphs which use Sample Grabber to collect the most recent image from each camera. The three current frames are converted to Bitmaps for the stretching and seaming operations. It seems like a hack, but it works within the allotted millisecond time limit. I was fortunate that a color space filter automatically inserted into the graphs make all of the camera and video file samples the same format. The original component used a shared custom allocator for VMR9 and separate...

  • Michael Michael posted a comment on discussion Open Discussion

    I have a custom video mixer which combines a video stream from a file with a video stream from a camera. The component uses a custom allocator-presenter to combine the streams and applies a pixel shader effect derived from the camera stream. I have source code for the original mixer. What I need to do now is combine three camera streams, stitch them into a single frame, and use that single wide frame for the pixel shader effect. I need to inject that stitched frame into the file video stream. I have...

  • Ujesh Ujesh posted a comment on discussion Open Discussion

    I have downloaded the source code from https://sourceforge.net/projects/directshownet/files/DirectShowSamples/2010-February/ Samples\Capture\DxSnap when i run the code i'm unable to see the live video. The top screen is blank. If i click on capture button it can get the current image. I have checked with integrated camera and External camera. Both gives me same result. I use DELL integrated cam and Logic External cam. Attached the screenshot for reference Please let me know i'm missing something...

  • Ronoc14 Ronoc14 posted a comment on discussion Open Discussion

    Hi does anybody have working C# directshow.net code to extract channel information from an ATSC VCT multiplex structure. This would be to extract the channel information such as major, mnor ids, channel name (short and long) and any other details such as PIDs that would be required to tune to the channel later. I have this working for DVB and I see the corresponding IAtscPsipParser.GetVCT() and IATSC_VCT API for ATSC. As I am not living in the US, I am unable to try it out with a live example th...

  • Taro Taro posted a comment on discussion Open Discussion

    Finally, I found it on the Solution 2 of this page. https://www.codeproject.com/Questions/482514/usingplusvb-netplusandplusdigitalpluscamerasplusin May someone also looking same thing like me.

  • Taro Taro posted a comment on discussion Open Discussion

    Hi All, I'm new for the Directshow.net. I'm looking for the method to adjust the brightness/contrast during capture the image from the digital camera. So far not found the thread in VB.net code, only in C++. Any one has the sample code to get the IAMVideoProcAmp interface. Would you please share with me? Thank you in advance for your kindness.

  • Taro Taro posted a comment on discussion Open Discussion

    Hi snarfle, There has a many update on directshow around 2021. I wish you also launch the latest update for us too.

  • snarfle snarfle posted a comment on discussion Open Discussion

    I don't know that Microsoft's Directshow has any audio mixers built in. At least I'm not seeing any.

  • Marcus Mann Marcus Mann posted a comment on discussion Open Discussion

    Hello, I have very little experience with DirectShow, so far I have managed paly a .wav file over a particular output device while being able to control its volume and get/set its track-position. Basically I’m able to create a very simple sound player application. Here is the code I’m currently using: //select an output device DsDevice[] devices = DsDevice.GetDevicesOfCat(FilterCategory.AudioRendererCategory DsDevice device = (DsDevice)devices[xxx]; //define a source Guid iid = typeof(IBaseFilter).GUID;...

  • snarfle snarfle posted a comment on discussion Open Discussion

    It's been too long since I've done any DS work. Nothing here stands out for me. I did write some test code once that used SetStreamSink. It's probably too different than your code to be useful, but it might be worth a look. https://sourceforge.net/p/directshownet/code/HEAD/tree/trunk/directshowlib/Test/v1.1/IStreamBufferSourceTest.cs

  • Ronoc14 Ronoc14 posted a comment on discussion Open Discussion

    Hi I have encountered an issue getting a source and sick graph working together in direct show. I have tested the source and sink graphs independently and they both work, i.e. writing out a video file from a tv input signal and reading /displaying the video file respectively. I'm finding setting the source graph to the sink via IStreamBufferSource.SetStreamSink returns a interface not implemented error. Both source and sink graphs are created in the same thread. Is it possible SetStreamSink is not...

  • Justin shafer Justin shafer modified a comment on discussion Open Discussion

    Here is what I ended up doing because I too could not get IBasicVideo GetCurrentImage to work. I ALREADY am capturing an image from the Still Pin using a Sample Grabber and adding a new SampleGrabber to my capture pin was conflicting with the code for the Still Pin Sample Grabber. So I added a second Sample Grabber class to DirectShowNet itself, then I could have 2 Sample Grabber classes and use their callbacks appropriately. All because of some computers having VMR issues, rare but sometimes I run...

  • Justin shafer Justin shafer posted a comment on discussion Open Discussion

    Here is what I ended up doing because I too could not get IBasicVideo GetCurrentImage to work. I ALREADY am capturing an image from the Still Pin using a Sample Grabber and adding a new SampleGrabber to my capture pin was conflicting with the code for the Still Pin Sample Grabber. So I added a second Sample Grabber class to DirectShowNet itself, then I could have 2 Sample Grabber classes and use their callbacks appropriately. All because of some computers having VMR issues, rare but sometimes I run...

  • Eric Eric posted a comment on discussion Open Discussion

    You can uninstall codecs with the constrol panel's add/remove programs. Or use regsvr32 /u [PATH_TO]/codecname.ax But you should really test with a fresh OS. You can easily create one with a VM...

  • Adeel Arshad Adeel Arshad posted a comment on discussion Open Discussion

    Hi, Thanks for reply, I am using GMFBridge and LAV decoder to support multi seamless file playback. How can I subtract codecs

  • Eric Eric posted a comment on discussion Open Discussion

    Hi, Your problem is probably linked to your machine's installed codecs, not DirectShow. You should try your app on a fresh installed OS with minimum (or no) codecs installed. Never use Codec packs...

  • Adeel Arshad Adeel Arshad posted a comment on discussion Open Discussion

    hi I am playing 1080p files. I have a list of video files. videos are playing smoothly then on a random video file stuck for 2 to 3 sec then play in fast forward mode. application working fine for PAL kindly help me to identify issue

  • BEZ BEZ posted a comment on discussion Open Discussion

    Tom When I was doing active development with Direct Show. I think there was a way with the Direct X SDK developer tools to log and capture filter graph build attempts. If you can find both the ingress and egress points (Source, and Output) If you are determined enough you should be able to fill in the gap unless they were custom written filters. I would hope that anything custom would have been part of the base install. It is more likely that the missing ones used to be part of standard installs...

  • Tom Fales Tom Fales posted a comment on discussion Open Discussion

    Bryant Thanks for your insights and tips. I did not have high hopes for trying to resolve this issue, but now there is a glimmer . . . Tom

  • BEZ BEZ posted a comment on discussion Open Discussion

    The error does not provide any real detailed info, but it look like you may be missing a required directX filter or equipment driver. The code is trying to build the filter graph and failing due to an incomplete chain. Below is the error code with it's cryptic reason. VFW_E_CANNOT_CONNECT0x80040217 No combination of intermediate filters could be found to make the connection. I would do a search and see if you can find out if there is a codec module that is missing, and verify what hardware modules...

  • Tom Fales Tom Fales posted a comment on discussion Open Discussion

    I am trying to utilized a third-party app for capturing old 16mm films. It is the same app (Cinecap Velocity HD) that I use successfully for 8mm film capture. I am able to communicate with my capture software to the capture camcorder (Canon HF200) and the images appear in my app, but the minute I try to use the "Capture" function of the Cinecap software I receive the HRESULT: 0x80040217 error. I have attached the exception file with the errors found. I am not a programmer, so I would appreciate any...

  • snarfle snarfle posted a comment on discussion Open Discussion

    Aha! Glad I was able to help.

  • Michael Michael posted a comment on discussion Open Discussion

    In your earlier post you said: **"1) Do you have any other DS activities that might be running at the same time you are seeking? Maybe an OnTimer?" Bingo! The control had an obscure performance monitoring method which was running on a worker thread - and periodically calling "get_CurrentPosition". If the main thread happened to call "put_CurrentPosition" at exactly the wrong millisecond interval, one or both threads would hang. I had a clue this might be happening when I starting using millisecond...

  • Michael Michael posted a comment on discussion Open Discussion

    In your earlier post you said: **"1) Do you have any other DS activities that might be running at the same time you are seeking? Maybe an OnTimer?" Bingo! The control had an obscure performance monitoring method which was running on a worker thread - and periodically calling "get_CurrentPosition". If the main thread happened to call "put_CurrentPosition" at exactly the wrong millisecond interval, one or both threads would hang. I had a clue this might be happening when I starting using millisecond...

  • Harvey Esparcia Harvey Esparcia posted a comment on discussion Open Discussion

    Hi How did you all get the AXIS_MJPEG_Capture_Filter? Thank you

  • Michael Michael posted a comment on discussion Open Discussion

    Snarfle; Thanks. I will try some experiments with the "Application.DoEvents" method. Describing a problem clearly to another person is helpful to me as it causes me to think differently about the problem and possible solutions. -Michael Sent from Outlookhttp://aka.ms/weboutlook From: snarfle snarfle@users.sourceforge.net Sent: Wednesday, January 20, 2021 2:38 AM To: [directshownet:discussion] 460697@discussion.directshownet.p.re.sourceforge.net Subject: [directshownet:discussion] Re: "put_CurrentPosition"...

  • snarfle snarfle posted a comment on discussion Open Discussion

    Something else you could experiment with is using Application.DoEvents in your Sleep loops. If you are processing due to form events, you are on the UI thread, which may be needed to perform other tasks, but can't cuz you're hogging it. Whether it hangs would then be a timing issue (as you say). I don't really feel like I've helped you here, but it sounds like you've sorted it out anyway.

  • Michael Michael posted a comment on discussion Open Discussion

    Snarfle; I finally hacked up what appears to be a solution. I call IMediaControl.GetState with a 10-millisecond timeout limit just before the Seek action. I removed other calls to this method from other actions. The call is used in debug mode to show if the state transition has completed before the Seek action and that gets displayed in the log file. In release mode the results of the call just get thrown away. The call itself appears to have a side-effect of preventing the hang on the Seek action....

  • Michael Michael posted a comment on discussion Open Discussion

    Snarfle; Thanks again for your response. The main thread is from the Winforms application. I believe this is STA. The allocator is created in a worker thread which is MTA. This seems to be required by COM+ in order for the allocator to function. The allocator-compositor is used to apply special effects and sprite overlays to the video display. At the time of the failed "put_CurrentPosition" action, the graph is normally in a RUNNING state with all state transitions completed. The application may...

  • snarfle snarfle posted a comment on discussion Open Discussion

    A couple other thoughts occur to me: 1) Do you have any other DS activities that might be running at the same time you are seeking? Maybe an OnTimer? 2) Is your Main STAThread or MTAThread? Just things to try.

  • Michael Michael posted a comment on discussion Open Discussion

    Thank you for your response. I occasionally see an event from the graph which is "Pause" just after the seek request. It does not occur every time there is a seek. It does not appear to have any correlation with the application hanging. It does appear to correlate with a particular location in the video file as specified in the seconds from start of file. The allocator logs a "Stop Presenting" call from DirectShow, which occurs on the main thread, then logs a Start Presenting from a worker thread...

  • snarfle snarfle posted a comment on discussion Open Discussion

    It has been a very long time since I've written any DirectShow code, so I'm not sure how much help I can be. I assume you're getting your IMediaPosition and IMediaControl from the graph, not any specific filter. It might be worth looking at IMediaPosition::get_PrerollTime. Perhaps doing positioning while it's still prerolling can be a problem? Because of the way some media compression works, seeking to certain locations can take longer than others. It may need to find a cleanpoint, then process multiple...

  • Michael Michael posted a comment on discussion Open Discussion

    I have a custom video player which sets the position in a video file for subsequent playback. Occasionally the call to "put_CurrentPosition" hangs the application. This seemed to be provoked by too many calls in a short interval (by moving a trackbar) , so I rate-limited the calls to wait 200 ms after any previous "put_CurrentPosition" or "Play" or "Pause" calls. A typical "put_CurrentPosition" operation takes from 25 ms to 170 ms to complete. I have a wait loop that checks for state transitions...

  • snarfle snarfle posted a comment on discussion Open Discussion

    If you can examine the samples via a sample grabber, you can add or alter the timestamps. Seems like a thing to try, anyway. You might also check out IConfigAviMux::SetMasterStream.

  • canadaboy25 canadaboy25 posted a comment on discussion Open Discussion

    Here is about what my graph looks like in graphEditPlus. None of my filters show an interface for IReferenceClock so I assume that the graph builder is using the system time for the clock. Could this be the source of my issue? If so what can I do about it? Different soundcard? I will add some sample grabbers to check if both the video and audio streams have timestamps.

  • snarfle snarfle posted a comment on discussion Open Discussion

    I'm afraid I have't done any video capturing in quite some time, so I'm not sure how much help I can be. That said, I'd be looking at the timestamps on the samples for both the video and audio streams. Do they both have timestamps? If not, you could add them. Or maybe take the timestamp from the audio and overwrite the one on the video? Does the graph have a clock? Maybe you just need to add one?

  • canadaboy25 canadaboy25 posted a comment on discussion Open Discussion

    I have modified the DxLogo example from the Directshow.NET examples to capture VHS tapes to avi. My filtergraph is an ATI all-in-wonder capture card going to an avi mux and then to a file writer. The preview pin of the capture card is connected to the default renderer so I can see the video as it is recording. For an audio source I have the line input on my Soundblaster AWE64 selected and connected to the avi mux as well. Originally I had extremely poor audio sync and was able to fix this by setting...

  • snarfle snarfle posted a comment on discussion Open Discussion

    Glad you got it sorted out.

  • Paul Broadbent Paul Broadbent modified a comment on discussion Open Discussion

    Thanks so much! I've now compiled it! I think what must have happened was that Visual Studio mangled some of the settings when upgrading the projects. Your fixes weren't quite all I needed to do to get it to compile, but they got me far enough to get there on my own. For future reference, here's what I had to do to fix it (all these are changes to the C++ part of the GSSF sample, "GenericSampleSourceFilter-2005"): Set "Linker > Input > Ignore Default Libraries" to "No" Set "C/C++ > Language > Treat...

  • Paul Broadbent Paul Broadbent posted a comment on discussion Open Discussion

    Thanks so much! I've now compiled it! I think what must have happened was that Visual Studio mangled some of the settings when upgrading the projects. Your fixes weren't quite all I needed to do to get it to compile, but they got me far enough to get there on my own. For future reference, here's what I had to do to fix it (all these are changes to the C++ part of the GSSF sample, "GenericSampleSourceFilter-2005"): Set "Linker > Input > Ignore Default Libraries" to "No" Set "C/C++ > Language > Treat...

  • snarfle snarfle posted a comment on discussion Open Discussion

    "memcmp" is from the C runtime. Check the build options under C/C++|Code generation. You might also check the link options to make sure "Ignore Default Libraries" didn't get set somehow. Google might give you some other things to check. As for the JoinFilterGraph, I'd check to see if you are building some files as Unicode and others as Ansi. JoinFilterGraph takes a "string" as a parameter. Under unicode, that generates a different (mangled) name than ansi.

  • Paul Broadbent Paul Broadbent posted a comment on discussion Open Discussion

    I'm trying to compile the GSSF filter sample in Visual Studio 2019 and getting a load of linker errors. Such as: strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol _memcmp and: PushSourceBitmap.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::JoinFilterGraph(struct IFilterGraph ,unsigned short const )" (?JoinFilterGraph@CBaseFilter @@UAGJPAUIFilterGraph@@PBG@Z) BTW to get just to this point was quite the journey. I compiled the Windows...

  • Eric Eric posted a comment on discussion Open Discussion

    Hi, There is no API i'm aware to detect if a camera device is already in use. Prior, Windows 10 Anniversary Update, if a such device was in use, you had an error code during the graph building but now, Microsoft make changes in the OS that allow camera sharing. So a graph building should always be successful, even when another application already use the camera.

  • Jeff Bramwell Jeff Bramwell posted a comment on discussion Open Discussion

    Is there a way to detect if the camera is already running (e.g. because of Slack, Teams, Zoom, etc.)? I am wanting to be able to tell if the camera is already turned on or off so I can take an action based upon that status. I am OK with polling if necessary (e.g. because there are no events for camera status updates) but I haven't found the right call yet. Thanks!

  • Scott Scott posted a comment on discussion Open Discussion

    Should've checked my audio enhancement settings first. I had to disable some processing it was doing that allowed this to bleed through. Hopefully this oversight helps someone in the future :)

  • Scott Scott modified a comment on discussion Open Discussion

    Hello all. I'm testing the put_Balance and providing a value of '10000' which should only have the right speaker audible and the left speaker quiet. I do this and 100% comes from the right but if I put my ear up to the left speaker, I still hear say 5% or less from that one as well. Opening volume mixer I see that my application meter is only showing that it's output on the right channel, but the master meter I can see the left channel still has meter activity. Any ideas why this is happening? Attached...

  • Scott Scott posted a comment on discussion Open Discussion

    Hello all. I'm testing the put_Balance and providing a value of '10000' which should only have the right speaker audible and the left speaker quiet. I do this and about 95-ish% comes from the right but if I put my ear up to the left speaker, I still hear from that one as well. Opening volume mixer I see that my application meter is only showing that it's output on the right channel, but the master meter I can see the left channel still has meter activity. Any ideas why this is happening? Attached...

  • Mark Raishbrook Mark Raishbrook posted a comment on discussion Open Discussion

    It turns out the user hadn't reloaded the video after making the changes I suggested! So that's solved. Still no access to the full property page for VMR9 on Windows 10, however. Anybody else experiencing that?

  • Eric Eric posted a comment on discussion Open Discussion

    Starting Windows XP, the default video renderer is the VMR7 filter. It's a quite old renderer that internally use DirectDraw 7. This filter is dependent on the hardware (video card driver) so your problem can be rooted by an unsupported driver feature... IMHO, VMR9 should be the bare minimum renderer to use and you should use EVR as a norm for all your applications...

  • Michael Michael posted a comment on discussion Open Discussion

    EVR requires the Windows Media Foundation libraries in order to function. It also uses different source file filters. That might solve the problem. Try checking for altered preference rankings of the various filters and codecs. Try viewing the problem video file with VLC or other viewers. They may spot formatting problems in the file which will cause the video stream to be discarded. Check the settings of the editors used to produce the video file. It is possible with some editing tools to have incompatible...

  • Mark Raishbrook Mark Raishbrook posted a comment on discussion Open Discussion

    The enhanced renderer gives an unexpected interface error, unfortunately.

  • Peter_B Peter_B posted a comment on discussion Open Discussion

    Try enhanced video renderer nov. 2019 13.27 skrev Mark Raishbrook markraishbrook@users.sourceforge.net: And today someone has a video that only plays sound even though VMR9 is being used. The video section of the graph is: xxxx.avi (source) - AVI splitter - LAV video decoder - VMR9. Any ideas, anybody? Standard video renderer on Windows 10https://sourceforge.net/p/directshownet/discussion/460697/thread/57b1471736/?limit=25#8fa5 Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/directshownet/discussion/460697/...

  • Mark Raishbrook Mark Raishbrook posted a comment on discussion Open Discussion

    And today someone has a video that only plays sound even though VMR9 is being used. The video section of the graph is: xxxx.avi (source) - AVI splitter - LAV video decoder - VMR9. Any ideas, anybody?

  • Mark Raishbrook Mark Raishbrook posted a comment on discussion Open Discussion

    Thanks for the response, Michael. I don't think the codecs are the problem, though. Most of our users receive Netflix videos and they have the correct codecs and decoders installed on their system. This "sound but no image" problem suddenly started happening a few Windows 10 updates ago, so I guess a core DS file was changed. I've also noticed that the dreaded Microsoft DTV-DVD Video Decoder gets dragged into a lot of videos now, which makes it almost impossible to frame backward or forwards smoothly....

  • Michael Michael posted a comment on discussion Open Discussion

    We have seen audio playback without image when opening older video files that were created using the Indeo codec. Registering that codec fixes the problem. The same thing happens when playing files created with the GOPRO codecs. Something has changed with the behaviour of the "Inteligent Connect" algorithm in Windows 10 and we do not always see the same filters in a graph. Occasionally we will see an extra VMR renderer inserted into the graph, even when we started with a VMR9 renderer. That is an...

  • Michael Michael posted a comment on discussion Open Discussion

    We have seen audio playback without image when opening older video files that were created using the Indeo codec. Registering that codec fixes the problem. The same thing happens when playing files created with the GOPRO codecs. Something has changed with the behaviour of the "Inteligent Connect" algorithm in Windows 10 and we do not always see the same filters in a graph. Occasionally we will see an extra VMR renderer inserted into the graph, even when we started with a VMR9 renderer. That is an...

  • Mark Raishbrook Mark Raishbrook posted a comment on discussion Open Discussion

    Over recent months, some of our users are reporting that they get sound but no image when opening certain video files in our software on Windows 10. By default, our application uses the standard video renderer, but it has an option to use the VMR9 instead and that usually solves the problem. So I have two questions. Firstly, is there a reason why the video renderer is no longer working in Windows 10? We have a solution, as I said, but I'd be interested to know why the "old" renderer seems to have...

  • derek w keys derek w keys modified a comment on discussion Open Discussion

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Thanks

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Thanks

  • Eric Eric posted a comment on discussion Open Discussion

    Hi, m_pProvider is an IServiceProvider object. To get in instance of IWMWriterAdvanced2 you must use the IServiceProvider.QueryService method (a C# cast don't work). Check this sample (on the bottom of the page) : https://docs.microsoft.com/en-us/windows/win32/wmformat/wm-asf-writer-filter

  • derek w keys derek w keys modified a comment on discussion Open Discussion

    Hi Thank you for responsing when I compile it ... the error IBaseFilter m_pWMASFWritter; //IBase Filter for WMASFWritter IFileSinkFilter m_pFileSinkFilter; ** IWMWriterAdvanced2 m_pWriter2; //Windows media writer advanced from WMF** IWMWriterNetworkSink m_pNetSink; m_pWriter2 = (IWMWriterAdvanced2)m_pProvider; ** m_pWriter2 = (IWMWriterAdvanced2)m_pProvider;** //failed System.InvalidCastException HResult=0x80004002 Message=Unable to cast COM object of type 'DirectShowLib.WMAsfWriter' to interface...

  • derek w keys derek w keys modified a comment on discussion Open Discussion

    Hi Thank you for responsing when I compile it ... the error IBaseFilter m_pWMASFWritter; //IBase Filter for WMASFWritter IFileSinkFilter m_pFileSinkFilter; ** IWMWriterAdvanced2 m_pWriter2; //Windows media writer advanced from WMF** IWMWriterNetworkSink m_pNetSink; m_pWriter2 = (IWMWriterAdvanced2)m_pProvider; ** m_pWriter2 = (IWMWriterAdvanced2)m_pProvider;** //failed System.InvalidCastException HResult=0x80004002 Message=Unable to cast COM object of type 'DirectShowLib.WMAsfWriter' to interface...

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Hi Thank you for responsing when I compile it ... the error IBaseFilter m_pWMASFWritter; //IBase Filter for WMASFWritter IFileSinkFilter m_pFileSinkFilter; ** IWMWriterAdvanced2 m_pWriter2; //Windows media writer advanced from WMF** IWMWriterNetworkSink m_pNetSink; ** m_pWriter2 = (IWMWriterAdvanced2)m_pProvider;** //failed System.InvalidCastException HResult=0x80004002 Message=Unable to cast COM object of type 'DirectShowLib.WMAsfWriter' to interface type 'WindowsMediaLib.IWMWriterAdvanced2'. This...

  • snarfle snarfle posted a comment on discussion Open Discussion

    So... What's the question? Does your code not compile?

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Hi years ago I followed this tutorial in c++ https://www.codeproject.com/Articles/80413/Streaming-Server-using-Direct-Show-and-Windows-Med But I am trying to convert it to c# ... I would be grateful to get the correct code I hope to use it in 2 tablets as an Intercom (front door) I changed the code to play a video file and it works in c++, but i will be using a cam of the tablet. bool StartStreaming() { //Build coinstamced the graphbuilder graphBuilder = (IFilterGraph2)new FilterGraph(); //add mediacontrol...

  • snarfle snarfle posted a comment on discussion Open Discussion

    You did notice that this post is from 2015? The directions to install and use this feature are listed at the top of this post. It's likely some changes will be required to get it to work with versions of VS newer than 2015.

  • ananya gupta ananya gupta posted a comment on discussion Open Discussion

    Thanks to all I am waiting for that if it almost done please share. I am a fresher so I am so exicted to learn more about .Net. If you want to know more then type CETPA INFOTECH where I study.

  • snarfle snarfle committed [r1176]

    Remove temp files

  • derek w keys derek w keys modified a comment on discussion Open Discussion

    Hi if (m_bTracking){ long tSeek = trackBar2.Value * ((lDuration / trackBar2.Maximum)); scrolltrackbar(tSeek); } It should of been long not int It is seeking to full Duration of Video Thank you very much Reagrds derek

  • derek w keys derek w keys modified a comment on discussion Open Discussion

    Hi `if (m_bTracking) { long tSeek = trackBar2.Value * ((lDuration / trackBar2.Maximum)); scrolltrackbar(tSeek); }` It should of been** long ** not ** int** My **MediaPlayer** is **seeking** to full **Duration** of **Video** **Thank you very much** Reagrds derek

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Hi if (m_bTracking) { long tSeek = trackBar2.Value * ((lDuration / trackBar2.Maximum)); // long tSeek = trackBar2.Value / (trackBar2.Maximum / (uint)lDuration ); ; // int po = (int)tSeek; scrolltrackbar(tSeek); } It should of been** long ** not ** int** My **MediaPlayer** is **seeking** to full **Duration** of **Video** **Thank you very much** Reagrds derek

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Hi, Thank you snarfle and Michael for your answers I will apply what you have said Reagrds derek

  • Michael Michael posted a comment on discussion Open Discussion

    In a similar application I used IMediaPosition as the interface for the “mediaSeeking pointer. This interface works in double precision seconds rather than 100 nanosecond intervals. That avoids those awkward units conversions. And there are only the parameters that you need for the function you want to perform. I find this easier when dealing with most video files. namespace DirectShowLib { [Guid("56a868b2-0ad4-11ce-b03a-0020af0ba770")] [InterfaceType(ComInterfaceType.InterfaceIsDual)] public interface...

  • snarfle snarfle posted a comment on discussion Open Discussion

    I don't know that this is really a DirectShow question. You're really just asking how to use the TrackBar control, which might be more appropriate for a general c# forum. That said. You set trackBar2.Maximum to 100. That means there are 101 possible values for trackBar2.Value (0-100). You say you "can only scroll up to 3:34 minutes." So I assume you are trying to move the trackbar all the way to the right, which means trackBar2.Value is going to be 100. Which brings us to this line: long tSeek =...

  • derek w keys derek w keys modified a comment on discussion Open Discussion

    Hi I made a DirectShow c++ player and everything works well I am now using c# / DirectShow.Net and I have a problem with TrackBar I can only scroll up to 3:34 minutes, and I have check other people code for TrackBar I would be grateful if I can get the code .... Global Variables trackBar2.Visible = false; trackBar2.Location = new Point(0, this.Height - 80); trackBar2.Width = this.Width; trackBar2.Height = 10; // trackBar2.LargeChange = 10; // trackBar2.Minimum = 10; trackBar2.Maximum = 100; // trackBar2.TickFrequency...

  • derek w keys derek w keys posted a comment on discussion Open Discussion

    Hi I made a BirectShow c++ player and everything works well I am now using c# / DirectShow.Net and I have a problem with TrackBar I can only scroll up to 3:34 minutes, and I have check other people code for TrackBar I would be grateful if I can get the code .... Global Variables trackBar2.Visible = false; trackBar2.Location = new Point(0, this.Height - 80); trackBar2.Width = this.Width; trackBar2.Height = 10; // trackBar2.LargeChange = 10; // trackBar2.Minimum = 10; trackBar2.Maximum = 100; // trackBar2.TickFrequency...

  • Eric Eric posted a comment on discussion Open Discussion

    Just my two cents... Is it possible to test the filters connection using GraphEdit (or one of its clone) ? ffdshow is largely out-dated and a dead project ! If it's possible for you, try the LAV filters instead (also based on ffmpeg). The community behind it is much more active. Also, when you write "I need to show the video in IE", does this means that you are writing an add-in for IE ???

  • snarfle snarfle posted a comment on discussion Open Discussion

    I have never used the "Ambralla Push source filter" or the "ffdshow video decoder", but at a guess, you have to configure one or the other before connecting something to it.

  • bhavin shah bhavin shah posted a comment on discussion Open Discussion

    Hi, When I am connecting Ambralla Push source filter to ffdshow video decoder I am getting below error. pushSourceVideoOut = DsFindPin.ByDirection((IBaseFilter)pushSource, PinDirection.Output, (int)SourceFilterPin.PIN_H264); videoDecoderInput = DsFindPin.ByDirection((IBaseFilter)videoDecoder, PinDirection.Input, firstPinOfFilter); hr = m_FilterGraph.Connect(pushSourceVideoOut, videoDecoderInput); 2019-06-19(03:14:57 PM): Failed to setup DirectShow Filter Graph: Exception: System.DivideByZeroException:...

  • snarfle snarfle posted a comment on ticket #34

    Have you tried tracing the code? Looks like there's some things in UpdateMainTitle that might be related, and using a command line affects how and when that's called.

  • William Higgs William Higgs created ticket #34

    Issue with the Playwnd sample

  • Eric Eric modified a comment on discussion Open Discussion

    The first thing you must check is the maximum surface size supported by your hardware. Some old GPU or drivers are limited to 2048 or 4096 so they can't hold an uncompressed 4K frame. You can see that with the DirectX Caps Viewer (DXCapsViewer.exe) from the DirectX SDK (June 2010). Of course, that is a thing that must be checked by your custom allocator ! Regarding the DXVA support, probe it using DXVAChecker ( https://bluesky23.yukishigure.com/en/DXVAChecker.html ). With that tool, you can see what...

  • Eric Eric posted a comment on discussion Open Discussion

    The first thing you must check is the maximum surface size supported by your hardware. Some old GPU or drivers are limited to 2048 or 4096 so they can't hold an uncompressed 4K frame. You can see that with the DirectX Caps Viewer (DXCapsViewer.exe) from the DirectX SDK (June 2010). Of course, that is a thing that must be checked by your custom allocator ! Regarding the DXVA support, probe it using DXVAChecker ( https://bluesky23.yukishigure.com/en/DXVAChecker.html ). With that tool, you can see what...

  • Michael Michael posted a comment on discussion Open Discussion

    Eric; Thanks for your response. You must give us more information about the graph you built (which filters do you use). The application uses the Microsoft "Intelligent Connect" method to select filters, after the renderer is placed into the graph. This is the result after the call to "IFilterGraph2->RenderFile": |09:19.23.96| (thread:9) Graph Display for - Primary |09:19.23.96| (thread:9) Filters in this Graph |09:19.23.96| (thread:9) 79376820-07d0-11cf-a24d-0020afd79767 Default DirectSound Device...

  • Eric Eric posted a comment on discussion Open Discussion

    You must give us more informations about the graph you built (which filters do you use). Do you favor HW decompression (DXVA) ? Is uncompressed frame stay on GPU RAM of is there copy-back to CPU RAM ? As a sidenote, Media Foundation could be efficient for such scenario...

  • Michael Michael posted a comment on discussion Open Discussion

    I have a product requirement to render a 4K video on a 4K monitor or projector. I have been able to do this in lower-resolution displays (1280 x 720) with the VMR9 renderer, but the displayed frame rate degrades badly at higher resolutions (1920 x 1080, and 4K). The same thing happens using EVR. The video frame rate is a nominal 30 FPS. Is there some other way to do this? How does Windows Media Player work? I note that WMP can maintain a 30 FPS rate in a full 4K display. Sent from Outlookhttp://...

  • Nizar Belhiba Nizar Belhiba posted a comment on discussion Open Discussion

    Ich checked the timestamps and each image is getting the right timestamp

  • Mary Elmallakh Mary Elmallakh posted a comment on discussion Open Discussion

    I am getting the same problem. DId you reach a solution?

  • snarfle snarfle posted a comment on discussion Open Discussion

    Maybe check to timestamps you are setting on the samples? If this gets out of sync with the graph's clock, the mux might decide that all the samples are arriving "too late" and discard them.

1 >