vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Mon May 22 20:42:37 2017 +0300| [bf421514e28067d226f1ec5c791efa0322233ac0] | committer: Rémi Denis-Courmont
shoutcast: convert to stream filter > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bf421514e28067d226f1ec5c791efa0322233ac0 --- modules/demux/playlist/playlist.c | 2 +- modules/demux/playlist/shoutcast.c | 35 ++++++++++++++--------------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/modules/demux/playlist/playlist.c b/modules/demux/playlist/playlist.c index b7029be2b7..bff5e477e2 100644 --- a/modules/demux/playlist/playlist.c +++ b/modules/demux/playlist/playlist.c @@ -98,7 +98,7 @@ vlc_module_begin () add_submodule () set_description( N_("New winamp 5.2 shoutcast import") ) add_shortcut( "shout-winamp" ) - set_capability( "demux", 0 ) + set_capability( "stream_filter", 0 ) set_callbacks( Import_Shoutcast, NULL ) add_bool( "shoutcast-show-adult", false, SHOW_ADULT_TEXT, SHOW_ADULT_LONGTEXT, false ) diff --git a/modules/demux/playlist/shoutcast.c b/modules/demux/playlist/shoutcast.c index cef0c8685d..7432cac73c 100644 --- a/modules/demux/playlist/shoutcast.c +++ b/modules/demux/playlist/shoutcast.c @@ -31,7 +31,7 @@ #endif #include <vlc_common.h> -#include <vlc_demux.h> +#include <vlc_access.h> #include "playlist.h" #include <vlc_xml.h> @@ -45,11 +45,11 @@ /***************************************************************************** * Local prototypes *****************************************************************************/ -static int Demux( demux_t *p_demux); +static int Demux( stream_t *, input_item_node_t * ); -static int DemuxGenre( demux_t *p_demux, xml_reader_t *p_xml_reader, +static int DemuxGenre( stream_t *p_demux, xml_reader_t *p_xml_reader, input_item_node_t *p_input_node ); -static int DemuxStation( demux_t *p_demux, xml_reader_t *p_xml_reader, +static int DemuxStation( stream_t *p_demux, xml_reader_t *p_xml_reader, input_item_node_t *p_input_node, bool b_adult ); /***************************************************************************** @@ -57,26 +57,24 @@ static int DemuxStation( demux_t *p_demux, xml_reader_t *p_xml_reader, *****************************************************************************/ int Import_Shoutcast( vlc_object_t *p_this ) { - demux_t *p_demux = (demux_t *)p_this; + stream_t *p_demux = (stream_t *)p_this; CHECK_FILE(p_demux); - p_demux->pf_demux = Demux; - p_demux->pf_control = Control; + p_demux->pf_readdir = Demux; + p_demux->pf_control = access_vaDirectoryControlHelper; msg_Dbg( p_demux, "using shoutcast playlist reader" ); return VLC_SUCCESS; } -static int Demux( demux_t *p_demux ) +static int Demux( stream_t *p_demux, input_item_node_t *p_input_node ) { xml_reader_t *p_xml_reader = NULL; const char *node; - int i_ret = -1; - input_item_t *p_current_input = GetCurrentItem(p_demux); - input_item_node_t *p_input_node = NULL; + int i_ret = VLC_EGENERIC; - p_xml_reader = xml_ReaderCreate( p_demux, p_demux->s ); + p_xml_reader = xml_ReaderCreate( p_demux, p_demux->p_source ); if( !p_xml_reader ) goto error; @@ -93,8 +91,6 @@ static int Demux( demux_t *p_demux ) goto error; } - p_input_node = input_item_node_Create( p_current_input ); - if( !strcmp( node, "genrelist" ) ) { /* we're reading a genre list */ @@ -109,10 +105,7 @@ static int Demux( demux_t *p_demux ) goto error; } - input_item_node_PostAndDelete( p_input_node ); - p_input_node = NULL; - - i_ret = 0; /* Needed for correct operation of go back */ + i_ret = VLC_SUCCESS; error: if( p_xml_reader ) @@ -126,7 +119,7 @@ error: * ... * </genrelist> **/ -static int DemuxGenre( demux_t *p_demux, xml_reader_t *p_xml_reader, +static int DemuxGenre( stream_t *p_demux, xml_reader_t *p_xml_reader, input_item_node_t *p_input_node ) { const char *node; @@ -171,7 +164,7 @@ static int DemuxGenre( demux_t *p_demux, xml_reader_t *p_xml_reader, vlc_xml_decode( psz_mrl ); p_input = input_item_New( psz_mrl, psz_name ); input_item_CopyOptions( p_input, p_input_node->p_item ); - input_item_AddOption( p_input, "demux=shout-winamp", VLC_INPUT_OPTION_TRUSTED ); + input_item_AddOption( p_input, "stream-filter=shout-winamp", VLC_INPUT_OPTION_TRUSTED ); free( psz_mrl ); input_item_node_AppendItem( p_input_node, p_input ); input_item_Release( p_input ); @@ -211,7 +204,7 @@ static int DemuxGenre( demux_t *p_demux, xml_reader_t *p_xml_reader, * lc="listener count"></station> * </stationlist> **/ -static int DemuxStation( demux_t *p_demux, xml_reader_t *p_xml_reader, +static int DemuxStation( stream_t *p_demux, xml_reader_t *p_xml_reader, input_item_node_t *p_input_node, bool b_adult ) { char *psz_base = NULL; /* */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
