[vlc-devel] libvlc_MediaPlayerMediaChanged events do not fire
thomas at gllm.fr
Mon Apr 27 09:17:21 CEST 2020
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.
On Sun, Apr 26, 2020, at 19:03, Mark Lee wrote:
> 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);
> 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:
> 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 */
> 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.
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vlc-devel