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

jboileau jboileau at gmail.com
Fri Feb 1 14:17:28 CET 2008


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20080201/c6ce11be/attachment.html>


More information about the vlc-devel mailing list