|
Nov
14
Written by:
Jeremiah Morrill
11/14/2008 9:26 AM
I just committed some bug fixes to CodePlex. I now support MTA and STA graphs. Before I only supported MTA because a DirectShow thread that came through the VMR9Allocator (in PresentImage) needed to touch some of the COM objects. This was overcome by making the VMR9Allocator inherit from the DispatcherObject and any calls that need to touch the COM objects are dispatched. Hopefully this fixes any RaceOnRCW MDA errors anyone was getting. Also, HdWagner (of Meedios fame), wrote a modification to use a NativeWindow class to generate hWnds. Before I was using the MainWindow hWnd of the application. This could be bad in multi-windowed WPF applications. Thanks HdWagner! There are some other misc bug fixes, such as the default audio level, possible crash points, etc. None of the API has changed so it should be a drop in for any of your projects. Let me know if you guys have any issues with this new build. -Jer
Tags:
11 comment(s) so far...
Re: WPF MediaKit bug fixes submitted to CodePlex
Hello Jeremiah,
Thanks a lot for this update! I go download it right now. I will let you know how things went!
Keep up the good work.
Damien
By Damien on
11/14/2008 9:45 AM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Jeremiah,
Thanks for all you're hard work it is appreciated.
As you well know I have been using the updates as they happened, this release seems very solid indeed. We just finished a QA cycle of our product that uses the WpfMediaKit and saw no problems at all.
-Eric
By Eric Meyer on
11/14/2008 11:13 AM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Thanks for paining through the cycles Eric! Now the MediaKit feels stronger than ever!
By Jeremiah Morrill on
11/14/2008 11:18 AM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Jeremiah,
I have tested this new version and so far everything runs fine. I haven't been able to reproduce the issues I mentioned in the previous releases.
In the application I am building, I am trying to set up different modes (different windows if you prefer): a light one with only a MediaUriElement, a more advanced one with several UserControls around the MediaUriElement, etc. I would like to give the user the possibility to switch from one to the other during a video playback, but I haven't been able to do so... I have tried two things: - having a single MediaUriElement and move it from one window to the other, but this doesn't work as the MediaUriElement does not work in the new window any more - creating a new MediaUriElement everytime I create a window (using the value of the properties of the previous one) but this doesn't work either as the video takes too long and the user experience a "gap" at the window change I hope this makes sense... I am really stuck here and if anyone could help, I'd really appreciate it!!
Damien
By Damien on
11/14/2008 2:44 PM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Damien,
Does setting the UnloadedBehavior to Play fix the problem?
By Jeremiah Morrill on
11/14/2008 4:25 PM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Jeremiah,
That's exactly what I needed! Thanks a lot!
Damien
By Damien on
11/15/2008 8:20 AM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Hi Jeremiah,
Thanks for this great MediaKit and the other open source projects!
I had problems playing a WMV file though, although I can play other media files. I tried Vista's Sample Videos (Butterfly, Bear, Lake) but no video is shown on SampleApplication's form. If I go into BaseClasses.cs and comment out the code that supplies the custom allocator to the renderer, then the video plays in an external window, but I would like it to play in the application's main window instead.
Also, changing the SpeedRatio by dragging the first slider doesn't seem to work. The video plays in real time no matter what value is set for SpeedRatio.
Please help me figure out these issues.
Thanks a lot! Paul
By Paul Popa on
12/10/2008 12:49 PM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Hi Jeremiah,
Thanks for this great MediaKit and the other open source projects!
I had problems playing a WMV file though, although I can play other media files. I tried Vista's Sample Videos (Butterfly, Bear, Lake) but no video is shown on SampleApplication's form. If I go into BaseClasses.cs and comment out the code that supplies the custom allocator to the renderer, then the video plays in an external window, but I would like it to play in the application's main window instead.
Also, changing the SpeedRatio by dragging the first slider doesn't seem to work. The video plays in real time no matter what value is set for SpeedRatio.
Please help me figure out these issues.
Thanks a lot! Paul
By Paul Popa on
12/10/2008 1:17 PM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
Hello Jeremiah,
i have just found the media kit, and i have had only a quick glance on the solution but it is looking really nice. i got here after finding some of your posts on msdn and on directshownet about memory leaks on the library. i saw that snippet you tested, the simplest dshow app possible, and which you detected an unmanaged leak. i'm facing the same problem myself and i was wondering if you have new conclusions about it and would care to share them.
thank you, Francisco
By franxico on
1/19/2009 4:04 AM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
this is something i have been very interested in lately. thanks.
By Replica Burberry Handbag on
1/5/2010 11:22 PM
|
Re: WPF MediaKit bug fixes submitted to CodePlex
I have been playing around with WpfMediaKit for a while now. As per my requirement, I have to use multiple video players (Capture or Uri) on the same window and after a some time, a seperate window takes over with different content. At this time the mediaUriElements created on previous page are destroyed(stop and close). These two windows are repeated one after another for the lifetime of the application which could be any number of hours. I started noticing that as the time increases, the memory (commit size) and threads keep on increasing. To test, I created a sample application with 4 videos playing using MediaUriElement and a timer running every 3 seconds, which removes the old elements from the grid, calls stop and close and adds new elements on every tick. The application soon consumes hundred of MB of RAM along with hundreds of threads and handles and after some time OutOfMemoryException comes up. Digging deeper, I noticed that although MediaPlayer Base class has Dispose function which invokes Dispatcher.Shutdown for mediaplayerbase class but this dispose is only called when the main window is closed. So basically, all those threads stay in the memory and are never closed. So, In all those scenarios, where the video elements are to be added and removed dynamically, WpfMediakit starts taking up the resources.
By Rapid Share on
1/18/2010 6:50 AM
|
|
|
|