C# - First VLC control stops painting after second begins
Posted: 15 Mar 2008 21:15
Hi there VLC gurus!
I'm hoping some skilled coder can clear up a snag I've run into with using C# and more than one VLC ActiveX control on the same form. I'd also like to mention that this happens with libvlc.dll using VlcUserControl which is found on the C# wiki, and what I'm building with now instead of VLC ActiveX. Also I've made no modifications to the control's classes.
Here's the snag: Say I have 2 VLC controls on the same form. When I tell one of them to play something (anything; rtsp stream, local file, porn, etc.) it will play perfectly fine, full-screen functionality works great when you double click the control, it just works. The moment I start the second player on anything, the first one goes into what I am calling a "REpainting strike". I emphasize the RE in painting because as long as no portion of the control is covered or hidden in any way, the video runs fine. It's only once something has covered the frame and then moved off the frame that things go awry.
You know when a program stops responding and doesn't redraw it's client area and you drag a window over it -- copies of the dragged window stay painted on the frozen program. This is what's happening with the VLC control. And it isn't specific to a particular instance; I've stated the same thing happens on the ActiveX control. It's simple the first control that is played. On a form with 4 VLC controls, choosing any of the 4 to start will force that control to be the 'repainting striker' once a second control is played.
What's strange is that the other controls on the form play perfectly fine. I can have 5 controls all playing fine, and the 6th (if started first) be on this so-called repainting strike.
My options string that I pass along to the control when I have it play something is taken right from the VLC Player application. Same thing happens with no options passed.
This doesn't happen with the VLC Player. I can play all the streams and movies I want and they all repaint properly.
I hope that someone's come across this problem (and fixed it, or I'm going to hell) and can guide me along to the solution. Any help would be greatly appreciated.
-solud
I'm hoping some skilled coder can clear up a snag I've run into with using C# and more than one VLC ActiveX control on the same form. I'd also like to mention that this happens with libvlc.dll using VlcUserControl which is found on the C# wiki, and what I'm building with now instead of VLC ActiveX. Also I've made no modifications to the control's classes.
Here's the snag: Say I have 2 VLC controls on the same form. When I tell one of them to play something (anything; rtsp stream, local file, porn, etc.) it will play perfectly fine, full-screen functionality works great when you double click the control, it just works. The moment I start the second player on anything, the first one goes into what I am calling a "REpainting strike". I emphasize the RE in painting because as long as no portion of the control is covered or hidden in any way, the video runs fine. It's only once something has covered the frame and then moved off the frame that things go awry.
You know when a program stops responding and doesn't redraw it's client area and you drag a window over it -- copies of the dragged window stay painted on the frozen program. This is what's happening with the VLC control. And it isn't specific to a particular instance; I've stated the same thing happens on the ActiveX control. It's simple the first control that is played. On a form with 4 VLC controls, choosing any of the 4 to start will force that control to be the 'repainting striker' once a second control is played.
What's strange is that the other controls on the form play perfectly fine. I can have 5 controls all playing fine, and the 6th (if started first) be on this so-called repainting strike.
My options string that I pass along to the control when I have it play something is taken right from the VLC Player application. Same thing happens with no options passed.
This doesn't happen with the VLC Player. I can play all the streams and movies I want and they all repaint properly.
I hope that someone's come across this problem (and fixed it, or I'm going to hell) and can guide me along to the solution. Any help would be greatly appreciated.
-solud