[vlc-devel] Libvlc hangs when setting media descriptor in media reached end callback

jboileau jboileau at gmail.com
Mon Feb 4 15:09:29 CET 2008


Moved :no-video-title-show from the media descriptor options to a
global --no-video-title-show
option and it works fine.
On Feb 4, 2008 8:52 AM, jboileau <jboileau at gmail.com> wrote:

> Hi Pierre,
>
> In the immortal words of Dr. Frankenstien: "It vorks Igor! It VORKS!!!!"
>
> I did some tests this morning with the latest nightly build dated
> 2008-01-25 and this issue has been resolved. I don`t know what magic has
> been done but it works now, thanks. The reason I had not been using the
> latest builds was because of the other problem: the media reached end
> callback being called twice with a state of libvlc_Ended. The latest nightly
> build still has this problem BUT the second time the state is libvlc_Playing
> so now I can simply ignore that second one.
> One small problem with that latest build I have to investigate is that the
> option :no-video-title-show does not work anymore.
>
> Thanks for your help,
>
> Jacques
>   On Feb 1, 2008 1:26 PM, Pierre d'Herbemont <pdherbemont at free.fr> wrote:
>
> > Hi Jacques,
> > Could you backtrace the running stuck process to see where in vlc it
> > does hang?
> >
> > Pierre.
> >
> >   On Feb 1, 2008, at 2:17 PM, jboileau wrote:
> >
> >   Hi Pierre,
> >
> > Have you had a chance to look at this (see description below)? I can
> > download and try the latest build, but wanted to know if anything changed
> > before trying it out. Of course I never rule out that there isn't any
> > problem and that I am just doing things wrong. In that eventuality, let me
> > know if you have any idea on how differently I should do things, I would
> > greatly appreciate. It is a bit problematic for me to not be able to start a
> > new play from inside the media reached end callback.
> >
> > Thanks for your help,
> >
> > Jacques Boileau
> >
> > On Jan 24, 2008 4:14 PM, jboileau <jboileau at gmail.com> wrote:
> >
> > > Hi Pierre,
> > >
> > > Unfortunatly my plan didn't work as well as I had hoped. Here is in a
> > > nutshell what I do in the callback now:
> > >
> > > I create a new media descriptor (libvlc_media_descriptor_new)
> > > I add options (libvlc_media_descriptor_add_option)
> > > I set the descriptor (libvlc_media_instance_set_media_descriptor)
> > > I start the play (libvlc_media_instance_play)
> > >
> > > The rest I do once at start up:
> > >
> > >  I create a media instance (
> > > libvlc_media_instance_new_from_media_descriptor)
> > >  I get the event manager (libvlc_media_instance_event_manager)
> > >  I attach to it (libvlc_event_attach)
> > >
> > > Now when I am in the event it hangs in the call to
> > > libvlc_media_instance_set_media_descriptor. This happens independently if I
> > > call from the event or if I post myself a message and do it there!
> > > Strange! In an attempt to figure things out I have added a call to libvlc_media_instance_stop
> > > prior to calling libvlc_media_instance_set_media_descriptor. This
> > > makes things work IF not called directly from the event, otherwise it hangs
> > > in libvlc_media_instance_stop.
> > > Hopefully I have included enough details to help you out.
> > >
> > > Jacques Boileau
> > >
> > >
> > > On Jan 24, 2008 1:32 PM, jboileau <jboileau at gmail.com> wrote:
> > >
> > > > Hi Pierre,
> > > >
> > > > I just took a closer look at the API and I will try creating a media
> > > > instance that will be used for the life of my application and use
> > > > libvlc_media_instance_set_media_descriptor for each new file I play. That
> > > > way I won't release the media instance from inside my event. This seems like
> > > > a much better idea. I'll let you know how it turns out.
> > > >
> > > > Jacques
> > > >
> > > >   On Jan 24, 2008 9:04 AM, jboileau <jboileau at gmail.com> wrote:
> > > >
> > > > > Hi Pierre,
> > > > >
> > > > > Well yes the problem is with the release of the media instance and
> > > > > it probably make sense that it hangs there. But I don't know how to do
> > > > > things diffrently. If I need to create a new media descriptor and then get a
> > > > > new media instance from it, if I don't release the previous one won't I end
> > > > > up with memory leaks? Here is what I do in my event callback. Any
> > > > > suggestions on what to do differently for things to work?
> > > > >
> > > > > I detach from the event manager (libvlc_event_detach)
> > > > > I release the media instance (libvlc_media_instance_release)
> > > > > --> and it hangs right here as expected <---
> > > > > I create a new media descriptor (libvlc_media_descriptor_new)
> > > > > I add options (libvlc_media_descriptor_add_option)
> > > > > I create a media instance (
> > > > > libvlc_media_instance_new_from_media_descriptor)
> > > > > I release the media descriptor (libvlc_media_descriptor_release)
> > > > > I get the new event manager (libvlc_media_instance_event_manager)
> > > > > I attach to it (libvlc_event_attach)
> > > > > I start the play (libvlc_media_instance_play)
> > > > >
> > > > > I hope this helps you figure things out. Let me know if you need
> > > > > more details.
> > > > >
> > > > > As always: thanks for your help it is greatly appreciated!
> > > > >
> > > > > Jacques
> > > > >
> > > > >   On Jan 23, 2008 5:58 PM, Pierre d'Herbemont <pdherbemont at free.fr>
> > > > > wrote:
> > > > >
> > > > > >
> > > > > >  On Jan 23, 2008, at 10:48 PM, jboileau wrote:
> > > > > >
> > > > > > My reason to do that is to be able to start a new play from
> > > > > > inside the libvlc_MediaInstanceReachedEnd event. I may not be
> > > > > > doing things correctly but presently it simply hangs in my callback.
> > > > > > Probably because I am trying to release something that is probably what is
> > > > > > calling me back! :-) The media descriptor. I have circumvented the problem
> > > > > > by posting myself a message (I am working under Windowzzzz) and this lets me
> > > > > > do what I want since in the handler for this message I am out of the
> > > > > > libvlc_MediaInstanceReachedEnd event callback. But I would rather not have
> > > > > > to resort to this double callback scheme to get things working.
> > > > > >
> > > > > >
> > > > > > This is a bit weird cause you shouldn't get issue when releasing
> > > > > > the media descriptor in the media_instance callback, unless you are
> > > > > > releasing the media instance that currently plays the media descriptor.
> > > > > >
> > > > > > Tell me if you encounters more trouble, I'll have a look over
> > > > > > the weekend.
> > > > > >
> > > > > > Pierre.
> > > > > >
> > > > > > _______________________________________________
> > > > > > 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
>



-- 
Jacques Boileau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20080204/fcabc80c/attachment.html>
-------------- next part --------------
_______________________________________________
vlc-devel mailing list
To unsubscribe or modify your subscription options:
http://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list