[vlc-devel] libvlc_MediaInstanceReachedEnd called twice (libvlc)
jboileau
jboileau at gmail.com
Tue Jan 15 21:36:02 CET 2008
Hi Pierre,
I may not be as much help has I would like to, but here goes. My application
is under Windows and I use Visual Studio to develop it. I do not link with
libvlc-control.lib because there is no lib file for M$VS. Instead I use
getProcAddress to retrieve the addresses of the functions I need in
libvlc-control.dll. The traces I get when I breakpoint in my function that
is called when libvlc_MediaInstanceReachedEvent is triggered are listed
below. I have done my best to derive in which function each of the stack
addresses point to and have added these names next to the the trace.
When the movie finishes, the first call to my
libvlc_MediaInstanceReachedEvent callback has this call stack when it hits
my breakpoint:
> LibVLCTest.exe!ALibVLC::mMediaInstanceReachedEnd(const libvlc_event_t *
p_event=0x037bfe18, void * p_user_data=0x00327048) Line 901 C++
libvlc-control.dll!6d7c76e0() libvlc_event_send
msvcrt.dll!77c2c2e3()
libvlc-control.dll!6d7ca472() libvlc_media_instance_get_drawable
libvlc.dll!6a38a8e2() __var_Change
libvlc.dll!6a388e1e() __vlc_object_find
libvlc.dll!6a38b872() __var_Set
libvlc.dll!6a38b6bb() __var_Get
libvlc.dll!6a335644() __input_Preparse
libvlc.dll!6a3364e7() __input_Preparse
msvcrt.dll!77c3a3b0()
ntdll.dll!7c96cde9()
kernel32.dll!7c80b683()
ntdll.dll!7c96cde9()
The second event generates this call stack for the same breakpoint:
> LibVLCTest.exe!ALibVLC::mMediaInstanceReachedEnd(const libvlc_event_t *
p_event=0x037bfea8, void * p_user_data=0x00327048) Line 901 C++
libvlc-control.dll!6d7c76e0() libvlc_event_send
msvcrt.dll!77c2c2e3()
libvlc-control.dll!6d7ca472() libvlc_media_instance_get_drawable
libvlc.dll!6a38a8e2() __var_Change
libvlc.dll!6a38b872() __var_Set
libvlc.dll!6a32df46() input_DestroyThread
libvlc.dll!6a336597() __input_Read
msvcrt.dll!77c3a3b0()
ntdll.dll!7c96cde9()
kernel32.dll!7c80b683()
ntdll.dll!7c96cde9()
After that I get an unhandled exception with the folowing call stack:
Unhandled exception at 0x7c918fea in LibVLCTest.exe: 0xC0000005: Access
violation writing location 0x00000010.
> ntdll.dll!7c918fea()
libvlc.dll!6a370e88() mdate
ntdll.dll!7c90104b()
libvlc.dll!6a345dee() decoder_SynchroNewPicture
msvcrt.dll!77c3a3b0()
kernel32.dll!7c80b683()
I hope I am of some help!
Jacques Boileau
On Jan 15, 2008 2:38 PM, Pierre d'Herbemont <pdherbemont at free.fr> wrote:
> That's weird. I have committed something to fix that problem
> of libvlc_MediaInstanceReachedEnd called twice, it should send
> libvlcMediaInstanceEncounteredError on error now.
> Could you provide a back trace to see who is sending
> that libvlc_MediaInstanceReachedEnd twice?
>
> Thanks!
>
> Pierre.
>
> On Jan 15, 2008, at 8:22 PM, jboileau wrote:
>
> Hi Pierre,
>
> just to let you know, I have tried last night's build and now the
> workaround does not work anymore. The event libvlc_MediaInstanceReachedEnd
> is triggered twice for each play but each time the state is libvlc_Ended. I
> can't differiantiate between the two anymore.
>
> Jacques Boileau
>
> PS. I have done a week long test with the january 2nd build, which works
> pretty well for me, and everything was stable with very little memory
> increase over the week long test! Hooray for libvlc! The test consisted of a
> movie playing the video locally and streaming its audio and 7 mp3s being
> streamded to different ports using UDP. libvlc_MediaInstanceReachedEnd was
> used to detect the end of any of these and restart it. Played for the full
> week, no problem!
>
> On Jan 2, 2008 3:53 PM, Pierre d'Herbemont <pdherbemont at free.fr> wrote:
>
> > Hi Jacques,
> >
> > Well, that's a work around because some demuxer announce the end by an
> > ERROR_S state. Obviously this is wrong, but I didn't take the time to
> > investigate more on that. I think it will stay like that a bit more until I
> > take the time to fix that,
> > Thanks for the report!
> >
> > Pierre.
> >
> > On Jan 2, 2008, at 8:47 PM, jboileau wrote:
> >
> > Hi,
> >
> > I have playing with the latest build and found a small problem with the libvlc_MediaInstanceReachedEnd
> > event. It is called twice after each play. The first time the state is at
> > libvlc_Ended the second time the state is at libvlc_Error. This makes it
> > easy to differentiate between the two, but I guess this is not the way
> > things where intended.
> >
> > Jacques Boileau
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > http://mailman.videolan.org/listinfo/vlc-devel
> >
> >
> >
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > http://mailman.videolan.org/listinfo/vlc-devel
> >
> >
>
>
> --
> Jacques Boileau _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> http://mailman.videolan.org/listinfo/vlc-devel
>
>
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> http://mailman.videolan.org/listinfo/vlc-devel
>
>
--
Jacques Boileau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20080115/6492eb95/attachment.html>
More information about the vlc-devel
mailing list