[vlc-devel] libvlc_MediaPlayerMediaChanged events do not fire

Thomas Guillem thomas at gllm.fr
Mon Apr 27 09:17:21 CEST 2020


Hi Mark,

Thanks for the detailed bug report. The libvlc player has been recently ported to use the new vlc player but we made a mistake here. We will work on that.

Regards,
Thomas

On Sun, Apr 26, 2020, at 19:03, Mark Lee wrote:
> Hi,
> 
> I am trying to debug why libvlc_MediaPlayerMediaChanged events are no longer firing when changing media (latest master).
> 
> In a typical LibVLC application I would do this:
> 
>  libvlc_media_player_set_media(mp, md);
>  libvlc_media_player_play();
> 
> The libvlc_media_player_set_media() call in lib/media_player.c does this:
> 
>  p_mi->p_md = p_md; <--- the new media reference
> 
>  vlc_player_SetCurrentMedia(p_mi->player, p_md->p_input_item); <--- input item of the new media reference
> 
> At the end of libvlc_media_player_set_media(), it will call this method in src/player/player.c:
> 
>  vlc_player_OpenNextMedia(player);
> 
> That method will itself call:
> 
>  vlc_player_SendEvent(player, on_current_media_changed, player->media); <--- player->media is the input item of the new media reference
> 
> Inside the on_current_media_changed() method in lib/media_player.c:
> 
>  input_item_t *media = md ? md->p_input_item : NULL; <--- media is assigned input item of the *new* media reference, not the prior one
>  if (new_media == media) <--- always evaluates to true, both of these variables reference the input item of the new media
>  /* no changes */
>  return;
> 
> This problem is that the "media" variable already has the new value for the new media, it was set right at the start via libvlc_media_player_set_media().
> 
> So "new_media == media" always evaluates to true, the method returns early and the event never fires.
> 
> Regards,
> 
> 
> -M.
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20200427/9bdac3fd/attachment.html>


More information about the vlc-devel mailing list