<font style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt">Thank you Erwan10! That makes sense. How do I extract that media_list after the playlist is parsed? libvlc_media_subitems()? <br>I tried refreshing my media object with libvlc_media_player_get_media() and then called libvlc_media_subitems() but it returned a null pointer. How else can I grab the information? Thanks!<br>
Sincerely,<br>
Chris Larsen<br><br><font size="2" face="Tahoma, Arial, Sans-Serif"><hr size="2" width="100%" align="center"><strong>From</strong>: "brezhoneg1" <brezhoneg1@yahoo.fr><br><strong>Sent</strong>: Friday, February 20, 2009 1:33 PM<br><strong>To</strong>: "Mailing list for VLC media player developers" <vlc-devel@videolan.org><br><strong>Subject</strong>: [vlc-devel] RE : How to continue playing an online playlist with LibVLC?</font><br><br>Hi,<br><br>   When using a media/media_player in libvlc, playlists (asx, m3u, xspf,<br>dir, ...) are only parsed and never launched automatically.<br><br>   Once the parsing is done, a media_list made up of all the items found<br>in the playlist is available at the media level. It's up to you to<br>decide what to do with it.<br><br>Erwan10   <br><br>-----Message d'origine-----<br>De : vlc-devel-bounces@videolan.org<br>[mailto:vlc-devel-bounces@videolan.org] De la part de Stream Alerts<br>Envoyé : vendredi 20 février 2009 17:53<br>À : vlc-devel@videolan.org<br>Objet : [vlc-devel] How to continue playing an online playlist with<br>LibVLC?<br><br>Hello!<br>I'm having trouble figuring out how to make a LibVLC player play through<br>a playlist found online. The player grabs the playlist and is able to<br>parse it (in this case a Windows Media .ASX file) but after it finishes<br>parsing, it just returns libvlc_MediaPlayerEndReached and does not<br>actually play the streams in the list. If I open the same URL in VLC<br>proper, it plays without any problems. Below is the debug output and the<br>code and options I'm using. Thank you in advanced for any help ya'll can<br>give me!<br>Sincerely,<br>Chris Larsen<br><br>DEBUG:<br><br>[00000001] main libvlc debug: VLC media player - version 0.9.8a<br>Grishenko - (c)<br>1996-2008 the VideoLAN team<br>[00000001] main libvlc debug: libvlc was configured with ./configure <br>'--host=i5<br>86-mingw32msvc' '--build=i386-linux' '--enable-mkv' '--enable-release'<br>'--withou<br>t-contrib' '--enable-nls' '--enable-shared-libvlc'<br>'--enable-update-check' '--en<br>able-lua' '--enable-faad' '--enable-flac' '--enable-theora'<br>'--enable-twolame' '<br>--enable-quicktime' '--enable-real' '--enable-realrtsp'<br>'--enable-ffmpeg' '--wit<br>h-ffmpeg-mp3lame' '--with-ffmpeg-faac'<br>'--with-ffmpeg-config-path=/usr/win32/bin<br>' '--with-ffmpeg-zlib' '--enable-live555'<br>'--with-live555-tree=/usr/win32/live.c<br>om' '--ena<br>[00000001] main libvlc debug: translation test: code is "C"<br>[00000001] main libvlc debug: checking builtin modules<br>[00000001] main libvlc debug: checking plugin modules<br>[00000001] main libvlc debug: recursively browsing<br>`c:\VLC\vlc_tester\Debug\modules'<br>[00000001] main libvlc debug: recursively browsing<br>`c:\VLC\vlc_tester\Debug\plugins'<br>[00000001] main libvlc debug: recursively browsing `C:\VLC\plugins'<br>[00000001] main libvlc debug: module bank initialized, found 264 modules<br>[00000001] main libvlc debug: CPU has capabilities 486 586 MMX MMXEXT<br>SSE SSE2 F<br>PU<br>[00000001] main libvlc debug: looking for memcpy module: 3 candidates<br>[00000001] main libvlc debug: using memcpy module "memcpymmxext"<br>[00000360] main interaction debug: thread 4964 (Interaction control)<br>created at<br>priority 0 (interface/interaction.c:382)<br>[00000360] main interaction debug: thread started<br>[00000362] main input debug: Creating an input for 'Media Library'<br>[00000362] main input debug: Input is a meta file: disabling unneeded<br>options<br>[00000362] main input debug:<br>`file/xspf-open://C:\Users\~\AppData\Roaming\v<br>lc\ml.xspf' gives access `file' demux `xspf-open' path<br>`C:\Users\~\AppData\<br>Roaming\vlc\ml.xspf'<br>[00000362] main input debug: creating access 'file'<br>path='C:\Users\~\AppDat<br>a\Roaming\vlc\ml.xspf'<br>[00000363] main access debug: looking for access module: 2 candidates<br>[00000363] access_file access debug: opening file<br>`C:\Users\~\AppData\Roami<br>ng\vlc\ml.xspf'<br>[00000363] main access debug: using access module "access_file"<br>[00000363] main access debug: TIMER module_Need() : 2.000 ms - Total<br>2.000 ms /<br>1 intvls (Avg 2.000 ms)<br>[00000364] main stream debug: Using AStream*Stream<br>[00000364] main stream debug: pre-buffering...<br>[00000364] main stream debug: received first data for our buffer<br>[00000362] main input debug: creating demux: access='file'<br>demux='xspf-open' pat<br>h='C:\Users\~\AppData\Roaming\vlc\ml.xspf'<br>[00000365] main demux debug: looking for demux module: 1 candidate<br>[00000365] playlist demux debug: using XSPF playlist reader<br>[00000365] main demux debug: using demux module "playlist"<br>[00000365] main demux debug: TIMER module_Need() : 2.000 ms - Total<br>2.000 ms / 1<br> intvls (Avg 2.000 ms)<br>[00000362] main input debug:<br>`file/xspf-open://C:\Users\~\AppData\Roaming\v<br>lc\ml.xspf' successfully opened<br>[00000366] main xml debug: looking for xml module: 2 candidates<br>[00000366] main xml debug: using xml module "xml"<br>[00000366] main xml debug: TIMER module_Need() : 1.000 ms - Total 1.000<br>ms / 1 i<br>ntvls (Avg 1.000 ms)<br>[00000365] playlist demux debug: parsed 0 tracks successfully<br>[00000366] main xml debug: removing module "xml"<br>[00000362] main input debug: EOF reached<br>[00000362] main input debug: control type=1<br>[00000365] main demux debug: removing module "playlist"<br>[00000363] main access debug: removing module "access_file"<br>[00000362] main input debug: TIMER input launching for 'Media Library' :<br>21.000<br>ms - Total 21.000 ms / 1 intvls (Avg 21.000 ms)<br>[00000367] main preparser debug: waiting for thread initialization<br>[00000367] main preparser debug: thread started<br>[00000367] main preparser debug: thread 5044 (preparser) created at<br>priority 0 (<br>playlist/thread.c:79)<br>[00000368] main fetcher debug: waiting for thread initialization<br>[00000368] main fetcher debug: thread started<br>[00000368] main fetcher debug: thread 5056 (fetcher) created at priority<br>0 (play<br>list/thread.c:108)<br>[00000361] main playlist debug: waiting for thread initialization<br>[00000361] main playlist debug: thread started<br>[00000361] main playlist debug: rebuilding array of current - root<br>Playlist<br>[00000361] main playlist debug: rebuild done - 0 items, index -1<br>[00000361] main playlist debug: thread 5052 (playlist) created at<br>priority 0 (pl<br>aylist/thread.c:117)<br>[00000369] main interface debug: looking for interface module: 1<br>candidate<br>[00000369] main interface debug: using interface module "hotkeys"<br>[00000369] main interface debug: TIMER module_Need() : 1.000 ms - Total<br>1.000 ms<br> / 1 intvls (Avg 1.000 ms)<br>[00000369] main interface debug: thread 5076 (interface) created at<br>priority 0 (<br>interface/interface.c:168)<br>[00000369] main interface debug: thread started<br>[00000361] main playlist debug: adding item `' (  )<br>[00000361] main playlist debug: adding item `' (  )<br>[00000361] main playlist debug: adding item `' (  )<br>----- try to play....<br>[00000370] main input debug: Creating an input for<br>'http://www.beethoven.com/bee<br>thoven_ad.asx'<br>[00000370] main input debug: waiting for thread initialization<br>[00000370] main input debug: thread started<br>[00000370] main input debug: `http://www.beethoven.com/beethoven_ad.asx'<br>gives a<br>ccess `http' demux `' path `www.beethoven.com/beethoven_ad.asx'<br>[00000370] main input debug: thread 5188 (input) created at priority 1<br>(input/in<br>put.c:370)<br>[00000370] main input debug: creating demux: access='http' demux=''<br>path='www.be<br>ethoven.com/beethoven_ad.asx'<br>[00000371] main demux debug: looking for access_demux module: 0<br>candidates<br>[00000361] main playlist debug: no fetch required for<br>http://www.beethoven.com/b<br>eethoven_ad.asx (art currently (null))<br>State: 0<br>[00000371] main demux warning: no access_demux module matched "http"<br>[00000371] main demux debug: TIMER module_Need() : 2.000 ms - Total<br>2.000 ms / 1<br> intvls (Avg 2.000 ms)<br>[00000370] main input debug: creating access 'http'<br>path='www.beethoven.com/beet<br>hoven_ad.asx'<br>[00000372] main access debug: looking for access module: 2 candidates<br>[00000372] access_http access debug: http: server='www.beethoven.com'<br>port=80 fi<br>le='/beethoven_ad.asx<br>[00000372] main access debug: net: connecting to www.beethoven.com port<br>80<br>[00000372] main access debug: connection: Resource temporarily<br>unavailable<br>[00000372] main access debug: connection succeeded (socket = 5360)<br>[00000372] access_http access debug: protocol 'HTTP' answer code 206<br>[00000372] access_http access debug: this frame size=1482<br>[00000372] access_http access debug: Content-Type: video/x-ms-asf<br>[00000372] access_http access debug: stream<br>size=1482,pos=0,remaining=1482<br>[00000372] access_http access debug: Server: Microsoft-IIS/6.0<br>[00000372] access_http access debug: We have a Cookie we won't remember:<br>Coyote-<br>2-ac10036f=ac10030a:0; path=/<br>[00000372] main access debug: using access module "access_http"<br>[00000372] main access debug: TIMER module_Need() : 200.000 ms - Total<br>200.000 m<br>s / 1 intvls (Avg 200.000 ms)<br>[00000373] main stream debug: Using AStream*Stream<br>[00000373] main stream debug: pre-buffering...<br>[00000373] main stream debug: received first data for our buffer<br>[00000370] main input debug: creating demux: access='http' demux=''<br>path='www.be<br>ethoven.com/beethoven_ad.asx'<br>[00000374] main demux debug: looking for demux module: 51 candidates<br>[00000374] playlist demux debug: found valid ASX playlist<br>[00000374] main demux debug: using demux module "playlist"<br>[00000374] main demux debug: TIMER module_Need() : 1.000 ms - Total<br>1.000 ms / 1<br> intvls (Avg 1.000 ms)<br>[00000370] main input debug: `http://www.beethoven.com/beethoven_ad.asx'<br>success<br>fully opened<br>@@@@@@@@@@@@@ Caught event: libvlc_MediaPlayerPlaying<br>[00000374] playlist demux debug: param name strlen: 8<br>[00000374] playlist demux debug: param name: HTMLView<br>[00000374] playlist demux debug: param name strlen: 8<br>[00000374] playlist demux debug: param name: HTMLView<br>[00000374] playlist demux debug: param name strlen: 8<br>[00000374] playlist demux debug: param name: HTMLView<br>[00000370] main input debug: EOF reached<br>[00000370] main input debug: control type=1<br>@@@@@@@@@@@@@ Caught event: libvlc_MediaPlayerEndReached<br><br>OPTIONS:<br>-I dummy<br>--vout dummy<br>--aout dummy<br>--no-plugins-cache<br>--verbose=2<br>--no-video-title-show<br>--ignore-config<br>--no-sub-autodetect<br><br>CODE:<br>libvlc_exception_init (&ex);<br>inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args,<br>&ex);<br>m = libvlc_media_new (inst, url.c_str(), &ex);<br>mp = libvlc_media_player_new_from_media (m, &ex);<br>libvlc_event_manager_t *em;<br>em = libvlc_media_player_event_manager( mp, &ex );<br>libvlc_event_attach( em, libvlc_MediaPlayerPlaying, Media_State_Changed,<br>NULL, &ex );<br>libvlc_event_attach( em, libvlc_MediaPlayerEndReached,<br>Media_State_Changed, NULL, &ex );<br>libvlc_media_player_play (mp, &ex);<br>Sleep(INFINITE);<br><br><br>_______________________________________________<br>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br>http://mailman.videolan.org/listinfo/vlc-devel<br><br></font>