[vlc-devel] [PATCH] Set the media descriptor on the MediaListPlayerNextItemSet event.

Rémi Denis-Courmont remi at remlab.net
Mon May 7 21:50:08 CEST 2012


Le lundi 7 mai 2012 22:45:10 Mark Lee, vous avez écrit :
> ---
>  lib/media_list_player.c |    9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/media_list_player.c b/lib/media_list_player.c
> index 7522e5e..09109c7 100644
> --- a/lib/media_list_player.c
> +++ b/lib/media_list_player.c
> @@ -646,14 +646,21 @@
> libvlc_media_list_player_get_state(libvlc_media_list_player_t * p_mlp) int
> libvlc_media_list_player_play_item_at_index(libvlc_media_list_player_t *
> p_mlp, int i_index) {
>      lock(p_mlp);
> -    set_current_playing_item(p_mlp,
> libvlc_media_list_path_with_root_index(i_index)); +   
> libvlc_media_list_path_t path =
> libvlc_media_list_path_with_root_index(i_index); +   
> set_current_playing_item(p_mlp, path);
>      libvlc_media_player_play(p_mlp->p_mi);
> +    libvlc_media_t* p_md = libvlc_media_list_item_at_path(p_mlp->p_mlist,
> path); unlock(p_mlp);
> 
>      /* Send the next item event */
>      libvlc_event_t event;
>      event.type = libvlc_MediaListPlayerNextItemSet;
> +    event.u.media_list_player_next_item_set.item = p_md;
>      libvlc_event_send(p_mlp->p_event_manager, &event);
> +
> +    if (p_md)
> +        libvlc_media_release(p_md);

I don't understand where the reference is acquired. The new code does not seem 
to add any new reference. Was there a leak before?

> +
>      return 0;
>  }


-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis



More information about the vlc-devel mailing list