[vlc-devel] Deadlocked in stop if too close to play
jboileau
jboileau at gmail.com
Mon Oct 26 17:42:45 CET 2009
Hi,
I am using LibVLC in an application of my own under Win32. One problem
I have never been able to fix is a deadlock in
libvlc_media_player_stop if it is called too close to a
libvlc_media_player_play. The application hangs and pausing the
application in the development environment reveals that it is
deadlocked in the stop.
My application cycles through surveillance cameras using a timer, but
on an emergency signal I must switch to a particular camera. As you
may deduce: a play may have just been started when such a signal is
received. Thus a stop may be very close to a play.
I guess, to the limit, this code should work and not hang once in a while:
libvlc_media_player_play(aLibVLCMediaPlayer, &lLibVLCException);
libvlc_media_player_stop(aLibVLCMediaPlayer, &lLibVLCException);
but it does at least 10% of the time for me. I have pasted below what
little stack trace info I get from Visual Studio after the stop is
called. What baffles me is that it seems to show that the stop calls
libvlc_media_get_user_data. Looking at the VLC source code I could not
find this. libvlc_media_player_stop does not seem to call
libvlc_media_get_user_data!?!!?
Any ideas, avenues to try, etc. is immensely welcomed. This one has me
stumped and is a big problem for my application.
Jacques Boileau
ntdll.dll!KiFastSystemCallRet()
ntdll.dll!NtWaitForSingleObject() + 0xc
libvlccore.dll!vlc_cond_wait() + 0x4c
libvlccore.dll!__vlc_object_detach() + 0xea6
libvlccore.dll!__var_DelCallback() + 0x2a
libvlc.dll!libvlc_media_get_user_data() + 0xba
libvlc.dll!libvlc_media_player_stop() + 0x3f
More information about the vlc-devel
mailing list