[vlc-devel] [Patch] Sending a signal when a vout is created/destroyed

Hugo Beauzee-Luyssen beauze.h at gmail.com
Wed Jan 20 14:35:49 CET 2010


2010/1/20 Rémi Denis-Courmont <remi at remlab.net>:
>
>   Hello,
>
> On Wed, 20 Jan 2010 00:13:49 +0100, Hugo Beauzee-Luyssen
> <beauze.h at gmail.com> wrote:
>> This patchs adds a libvlc_MediaPlayerVoutChanged event, that let an
>> application using libvlc know when a vout has been created.
>> This can be usefull when trying to know the width or height of a
>> media, using libvlc_video_get_width/height, as these functions
>> immediatly return when no vout has been spawned.
>
> It's none of the LibVLC application business when a video output is
> created; that's an internal implementation detail. It should only care that
> there is a new elementary stream. Hence I think that event does not deserve
> to exist.
>

I do agree that it should be none of libvlc's business. However, in
video.c you have :

int height;
vout_thread_t *p_vout = GetVout( p_mi, p_e );
if( !p_vout ) return 0;

If we don't have a way of knowing the vout has been created, the only
remaining solution is to loop until get_width/height returns a non 0
value.
If anything goes wrong, let's say the decoder isn't found, or the
video is screwed for any reason, get_width/height will never return
anything but 0, causing an infinite loop.

If you think of another solution, i'd be glad to use it and to forget
this patch.

Regards,

-- 
Hugo Beauzée-Luyssen



More information about the vlc-devel mailing list