psz_string = malloc( i_strlen*sizeof( char ) +1);
memcpy( psz_string, psz_backup, i_strlen );
psz_string[i_strlen] = '\0';
- p_input = input_ItemNew( p_playlist, psz_string, psz_title_asx );
+ p_input = input_ItemNew( p_demux, psz_string, psz_title_asx );
input_ItemCopyOptions( p_current_input, p_input );
input_ItemAddSubItem( p_current_input, p_input );
free( psz_string );
/* create the new entry */
asprintf( &psz_name, "%d %s", i_entry_count, ( psz_title_entry ? psz_title_entry : p_current_input->psz_name ) );
- p_entry = input_ItemNewExt( p_playlist, psz_href, psz_name, i_options, (const char * const *)ppsz_options, -1 );
+ p_entry = input_ItemNewExt( p_demux, psz_href, psz_name, i_options, (const char * const *)ppsz_options, -1 );
FREENULL( psz_name );
input_ItemCopyOptions( p_current_input, p_entry );
while( i_options )
if( xml_ReaderRead( p_xml_reader ) != 1 )
{
msg_Err( p_demux, "invalid file (no root node)" );
- vlc_object_release( p_playlist );
return -1;
}
msg_Err( p_demux, "invalid root node %i, %s",
xml_ReaderNodeType( p_xml_reader ), psz_elname );
free( psz_elname );
- vlc_object_release( p_playlist );
return -1;
}
free( psz_elname );
if( !psz_elname ) return -1;
if( !strcmp( psz_elname, "entry" ) )
{
- p_input = input_ItemNewExt( p_playlist, psz_mrl, psz_name,
+ p_input = input_ItemNewExt( p_demux, psz_mrl, psz_name,
0, NULL, -1 );
if( psz_now )
input_item_SetNowPlaying( p_input, psz_now );
if( psz_genre )
input_item_SetGenre( p_input, psz_genre );
if( psz_listeners )
- msg_Err( p_playlist, "Unsupported meta listeners" );
+ msg_Err( p_demux, "Unsupported meta listeners" );
if( psz_bitrate )
- msg_Err( p_playlist, "Unsupported meta bitrate" );
+ msg_Err( p_demux, "Unsupported meta bitrate" );
input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
EnsureUTF8( psz_name );
- p_input = input_ItemNewExt( p_playlist, "dvb://", psz_name, 0, NULL, -1 );
+ p_input = input_ItemNewExt( p_demux, "dvb://", psz_name, 0, NULL, -1 );
for( i = 0; i< i_options; i++ )
{
EnsureUTF8( ppsz_options[i] );
struct demux_sys_t
{
- playlist_t *p_playlist;
input_item_t *p_current_input;
};
p_demux->pf_control = Control;
p_demux->pf_demux = Demux;
MALLOC_ERR( p_demux->p_sys, demux_sys_t );
- p_demux->p_sys->p_playlist = NULL;
return VLC_SUCCESS;
}
demux_t *p_demux = (demux_t *)p_this;
demux_sys_t *p_sys = p_demux->p_sys;
- if( p_sys->p_playlist )
- vlc_object_release( p_sys->p_playlist );
free( p_sys );
}
INIT_PLAYLIST_STUFF;
- p_sys->p_playlist = p_playlist;
p_sys->p_current_input = p_current_input;
while( ( psz_line = stream_ReadLine( p_demux->s ) ) )
}
else
{
- p_input = input_ItemNewExt( p_sys->p_playlist,
+ p_input = input_ItemNewExt( p_demux,
psz_url, psz_title, 0, NULL, -1 );
#define SADD_INFO( type, field ) if( field ) { input_ItemAddInfo( \
p_input, _("Google Video"), _(type), "%s", field ) ; }
free( psz_title );
free( psz_description );
- p_sys->p_playlist = NULL;
-
return 0; /* Needed for correct operation of go back */
}
psz_url = (char *)malloc( len+1 );
snprintf( psz_url, len+1, "dvd://%s", p_demux->psz_path );
- p_input = input_ItemNewExt( p_playlist, psz_url, psz_url, 0, NULL, -1 );
+ p_input = input_ItemNewExt( p_demux, psz_url, psz_url, 0, NULL, -1 );
input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
{
xml_elem_hnd_t pl_elements[] =
{ {"dict", COMPLEX_CONTENT, {.cmplx = parse_plist_dict} } };
- i_ret = parse_plist_node( p_demux, p_playlist, p_current_input,
+ i_ret = parse_plist_node( p_demux, p_current_input,
NULL, p_xml_reader, "plist",
pl_elements );
HANDLE_PLAY_AND_RELEASE;
if( !b_version_found )
msg_Warn( p_demux, "<plist> requires \"version\" attribute" );
- return parse_dict( p_demux, p_playlist, p_input_item, NULL, p_xml_reader,
+ return parse_dict( p_demux, p_input_item, NULL, p_xml_reader,
"plist", p_handlers );
}
if( p_handler->type == COMPLEX_CONTENT )
{
if( p_handler->pf_handler.cmplx( p_demux,
- p_playlist,
p_input_item,
NULL,
p_xml_reader,
{NULL, UNKNOWN_CONTENT, {NULL} }
};
- return parse_dict( p_demux, p_playlist, p_input_item, NULL, p_xml_reader,
+ return parse_dict( p_demux, p_input_item, NULL, p_xml_reader,
"dict", pl_elements );
}
{NULL, UNKNOWN_CONTENT, {NULL} }
};
- parse_dict( p_demux, p_playlist, p_input_item, NULL, p_xml_reader,
+ parse_dict( p_demux, p_input_item, NULL, p_xml_reader,
"dict", tracks_elements );
msg_Info( p_demux, "added %i tracks successfully",
{NULL, UNKNOWN_CONTENT, {NULL} }
};
- i_ret = parse_dict( p_demux, p_playlist, p_input_item, p_track,
+ i_ret = parse_dict( p_demux, p_input_item, p_track,
p_xml_reader, "dict", track_elements );
msg_Dbg( p_demux, "name: %s, artist: %s, album: %s, genre: %s, trackNum: %s, location: %s",
memmove( psz_uri + 7, psz_uri + 17, strlen( psz_uri ) - 9 );
msg_Info( p_demux, "Adding '%s'", psz_uri );
- p_new_input = input_ItemNewExt( p_playlist, psz_uri,
+ p_new_input = input_ItemNewExt( p_demux, psz_uri,
NULL, 0, NULL, -1 );
input_ItemAddSubItem( p_input_item, p_new_input );
*/
static bool skip_element COMPLEX_INTERFACE
{
- VLC_UNUSED(p_demux); VLC_UNUSED(p_playlist); VLC_UNUSED(p_input_item);
+ VLC_UNUSED(p_demux); VLC_UNUSED(p_input_item);
VLC_UNUSED(p_track); VLC_UNUSED(p_handlers);
char *psz_endname;
const char *psz_name,\
char *psz_value)
#define COMPLEX_INTERFACE (demux_t *p_demux,\
- playlist_t *p_playlist,\
input_item_t *p_input_item,\
track_elem_t *p_track,\
xml_reader_t *p_xml_reader,\
b_cleanup = true;
if( !psz_mrl ) goto error;
- p_input = input_ItemNewExt( p_playlist, psz_mrl, psz_name,
+ p_input = input_ItemNewExt( p_demux, psz_mrl, psz_name,
0, NULL, i_duration );
if ( psz_artist && *psz_artist )
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include <vlc_playlist.h>
+#include <vlc_input.h>
+
char *ProcessMRL( char *, char * );
char *FindPrefix( demux_t * );
void Close_iTML ( vlc_object_t * );
#define INIT_PLAYLIST_STUFF \
- playlist_t *p_playlist = pl_Yield( p_demux ); \
input_thread_t *p_input_thread = (input_thread_t *)vlc_object_find( p_demux, VLC_OBJECT_INPUT, FIND_PARENT ); \
input_item_t *p_current_input = input_GetItem( p_input_thread );
#define HANDLE_PLAY_AND_RELEASE \
- vlc_object_release( p_input_thread ); \
- vlc_object_release( p_playlist );
-
+ vlc_object_release( p_input_thread );