[vlc-devel] Libvlc: strange output window behaviour when starting files from media reached end callback

jboileau jboileau at gmail.com
Mon Feb 4 17:19:52 CET 2008


Hi Pierre,

I found some new problem with starting files from the media reached end
callback.

When the second file is played from the reached end callback of the first
file a new output window is opened. After that the third file is played in
the first output window, the fourth in the second window and so on.

Basically two output windows get opened and files alternate between the two.
The first window is titled "VLC (hardware YUV overlay DiretcX output)" the
second one is titled "VLC (hardware YUV DiretcX output)", if that is any
help.

Jacques

On Feb 4, 2008 9:09 AM, jboileau <jboileau at gmail.com> wrote:

> 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




-- 
Jacques Boileau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20080204/01cd01f0/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