[vlc-devel] libvlc_MediaInstanceReachedEnd called twice (libvlc)

jboileau jboileau at gmail.com
Mon Jan 21 14:40:31 CET 2008


Hi Pierre,

I have tested the latest build this morning. The problem has chaged a bit.
There is still two libvlc_MediaInstanceReachedEvent but now the states are
libvlc_Ended and the second is libvlc_Opening. It still crashes after the
second event.

I know you probably haven't had a chance to work on this issue yet, but I
wanted to give you feedback since the behavior was slightly different in
case this information helps you in any way.

Jacques Boileau

On Jan 15, 2008 3:40 PM, Pierre d'Herbemont <pdherbemont at free.fr> wrote:

> It is not really explicit but I guess that's comes from the "seekable" and
> "pausable" variable that gets changed/destroyed.
> I'll try to fix that in the next days.
>
> Pierre.
>
>
> On Jan 15, 2008, at 9:36 PM, jboileau wrote:
>
>  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 _______________________________________________
> 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/20080121/17934da0/attachment.html>


More information about the vlc-devel mailing list