vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Mon May 22 20:42:37 2017 +0300| [e25666f71690034d2bc89f3e762b91f3e97a6dc8] | committer: Rémi Denis-Courmont
podcast: convert to stream filter > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e25666f71690034d2bc89f3e762b91f3e97a6dc8 --- modules/demux/playlist/playlist.c | 4 ++-- modules/demux/playlist/podcast.c | 26 ++++++++++---------------- src/input/demux.c | 1 - 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/modules/demux/playlist/playlist.c b/modules/demux/playlist/playlist.c index 51fc0deed4..dfa76b4407 100644 --- a/modules/demux/playlist/playlist.c +++ b/modules/demux/playlist/playlist.c @@ -88,8 +88,8 @@ vlc_module_begin () set_callbacks( Import_DVB, NULL ) add_submodule () set_description( N_("Podcast parser") ) - add_shortcut( "playlist", "podcast" ) - set_capability( "demux", 10 ) + add_shortcut( "podcast" ) + set_capability( "stream_filter", 10 ) set_callbacks( Import_podcast, NULL ) add_submodule () set_description( N_("XSPF playlist import") ) diff --git a/modules/demux/playlist/podcast.c b/modules/demux/playlist/podcast.c index d1e588a143..8c47d5ab6f 100644 --- a/modules/demux/playlist/podcast.c +++ b/modules/demux/playlist/podcast.c @@ -29,7 +29,7 @@ #endif #include <vlc_common.h> -#include <vlc_demux.h> +#include <vlc_access.h> #include "playlist.h" #include <vlc_xml.h> @@ -38,7 +38,7 @@ /***************************************************************************** * Local prototypes *****************************************************************************/ -static int Demux( demux_t *p_demux); +static int ReadDir( stream_t *, input_item_node_t * ); static mtime_t strTimeToMTime( const char *psz ); /***************************************************************************** @@ -46,21 +46,21 @@ static mtime_t strTimeToMTime( const char *psz ); *****************************************************************************/ int Import_podcast( 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); - if( !demux_IsForced( p_demux, "podcast" ) ) + if( !stream_IsMimeType( p_demux->p_source, "application/rss+xml" ) ) return VLC_EGENERIC; - p_demux->pf_demux = Demux; - p_demux->pf_control = Control; + p_demux->pf_readdir = ReadDir; + p_demux->pf_control = access_vaDirectoryControlHelper; msg_Dbg( p_demux, "using podcast reader" ); return VLC_SUCCESS; } /* "specs" : http://phobos.apple.com/static/iTunesRSS.html */ -static int Demux( demux_t *p_demux ) +static int ReadDir( stream_t *p_demux, input_item_node_t *p_subitems ) { bool b_item = false; bool b_image = false; @@ -82,11 +82,10 @@ static int Demux( demux_t *p_demux ) const char *node; int i_type; input_item_t *p_input; - input_item_node_t *p_subitems = NULL; input_item_t *p_current_input = GetCurrentItem(p_demux); - 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; @@ -104,8 +103,6 @@ static int Demux( demux_t *p_demux ) goto error; } - p_subitems = input_item_node_Create( p_current_input ); - while( (i_type = xml_ReaderNextNode( p_xml_reader, &node )) > 0 ) { switch( i_type ) @@ -318,8 +315,7 @@ static int Demux( demux_t *p_demux ) free( psz_elname ); xml_ReaderDelete( p_xml_reader ); - input_item_node_PostAndDelete( p_subitems ); - return 0; /* Needed for correct operation of go back */ + return VLC_SUCCESS; error: free( psz_item_name ); @@ -338,10 +334,8 @@ error: if( p_xml_reader ) xml_ReaderDelete( p_xml_reader ); - if( p_subitems ) - input_item_node_Delete( p_subitems ); - return -1; + return VLC_EGENERIC; } static mtime_t strTimeToMTime( const char *psz ) diff --git a/src/input/demux.c b/src/input/demux.c index 006b426436..0ccc2dcc8d 100644 --- a/src/input/demux.c +++ b/src/input/demux.c @@ -65,7 +65,6 @@ static const char *demux_NameFromMimeType(const char *mime) { "audio/aac", "m4a" }, { "audio/aacp", "m4a" }, { "audio/mpeg", "mp3" }, - { "application/rss+xml", "podcast" }, //{ "video/MP1S", "es,mpgv" }, !b_force { "video/dv", "rawdv" }, { "video/MP2P", "ps" }, _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
