Changeset 794a69356e450a617a4adde3775cfa50ae643a20

Show
Ignore:
Timestamp:
03/18/08 19:28:38 (4 months ago)
Author:
Filippo Carone <littlejohn@videolan.org>
git-committer:
Filippo Carone <littlejohn@videolan.org> 1205864918 +0100
git-parent:

[9806c813954db8bd465c2520c2f6ca6ef118faf6]

git-author:
Filippo Carone <littlejohn@videolan.org> 1205864918 +0100
Message:

fixes for libvlc medialistplayer_play_item and medialistplayer_play_item_at_index - medialistplayer_play is still out of order

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • bindings/java/core/src/test/java/org/videolan/jvlc/internal/MediaListPlayerTest.java

    r031256f r794a693  
    111111    } 
    112112     
    113 //    @Test 
    114113    /** 
    115      * disabled: see https://trac.videolan.org/vlc/attachment/ticket/1527 
     114     * this fails: see https://trac.videolan.org/vlc/attachment/ticket/1527 
    116115     */ 
     116    @Test 
    117117    public void mediaListPlayerPlay() 
    118118    { 
     
    124124        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception); 
    125125        libvlc.libvlc_media_list_player_play(mediaListPlayer, exception); 
     126        Assert.assertEquals("Exception message: " + exception.message + ".\n", 0, exception.raised); 
     127    } 
     128     
     129    @Test 
     130    public void mediaListPlayerPlayItemAtIndex() 
     131    { 
     132        libvlc_exception_t exception = new libvlc_exception_t(); 
     133        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); 
     134        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception); 
     135        LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_descriptor_new(libvlcInstance, mrl, exception); 
     136        libvlc.libvlc_media_list_add_media_descriptor(mediaList, mediaDescriptor, exception); 
     137        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception); 
     138        libvlc.libvlc_media_list_player_play_item_at_index(mediaListPlayer, 0, exception); 
     139    } 
     140     
     141    @Test 
     142    public void mediaListPlayerPlayItem() throws Exception 
     143    { 
     144        libvlc_exception_t exception = new libvlc_exception_t(); 
     145        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); 
     146        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception); 
     147        LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_descriptor_new(libvlcInstance, mrl, exception); 
     148        libvlc.libvlc_media_list_add_media_descriptor(mediaList, mediaDescriptor, exception); 
     149        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception); 
     150        libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor, exception); 
     151        Thread.sleep(6000); 
     152    } 
     153     
     154    @Test 
     155    public void mediaListPlayerGetStateStopped() 
     156    { 
     157        libvlc_exception_t exception = new libvlc_exception_t(); 
     158        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception); 
     159        int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception); 
     160        Assert.assertEquals(LibVlcState.libvlc_Stopped.ordinal(), state); 
    126161    } 
    127162 
  • src/control/media_list_player.c

    r34ab57a r794a693  
    4242    libvlc_media_list_t * p_sublist_of_playing_item; 
    4343 
     44    if ( !p_mlp->current_playing_item_path ) 
     45    { 
     46        p_mlp->current_playing_item_path = libvlc_media_list_path_empty(); 
     47    } 
     48     
    4449    p_sublist_of_playing_item = libvlc_media_list_sublist_at_path( 
    4550                            p_mlp->p_mlist, 
     
    150155uninstall_playlist_observer( libvlc_media_list_player_t * p_mlp ) 
    151156{ 
     157    if ( !p_mlp->p_mlist ) 
     158    { 
     159        return; 
     160    } 
     161 
    152162    libvlc_event_detach( libvlc_media_list_event_manager( p_mlp->p_mlist, NULL ), 
    153163            libvlc_MediaListItemDeleted, mlist_item_deleted, p_mlp, NULL ); 
     
    172182uninstall_media_instance_observer( libvlc_media_list_player_t * p_mlp ) 
    173183{ 
     184    if ( !p_mlp->p_mi ) 
     185    { 
     186        return; 
     187    } 
     188         
    174189    libvlc_event_detach( libvlc_media_instance_event_manager( p_mlp->p_mi, NULL ), 
    175190                         libvlc_MediaInstanceReachedEnd, 
     
    205220    /* We are not interested in getting media_descriptor stop event now */ 
    206221    uninstall_media_instance_observer( p_mlp ); 
     222 
     223    if ( !p_mlp->p_mi ) 
     224    { 
     225        p_mlp->p_mi = libvlc_media_instance_new_from_media_descriptor(p_md, p_e); 
     226    } 
     227     
    207228    if( p_md->p_subitems && libvlc_media_list_count( p_md->p_subitems, NULL ) > 0 ) 
    208229    { 
     
    219240    vlc_mutex_unlock( &p_mlp->object_lock ); 
    220241 
    221     libvlc_media_list_unlock( p_mlp->p_mlist );         
    222      
    223242    libvlc_media_descriptor_release( p_md ); /* for libvlc_media_list_item_at_index */ 
    224243} 
     
    414433                                    libvlc_exception_t * p_e ) 
    415434{ 
    416     libvlc_media_instance_stop( p_mlp->p_mi, p_e ); 
     435    if ( p_mlp->p_mi ) 
     436    { 
     437        libvlc_media_instance_stop( p_mlp->p_mi, p_e );         
     438    } 
    417439 
    418440    vlc_mutex_lock( &p_mlp->object_lock );