Commit 75c556ad authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

demux playlist: Move the usage of vlc_object_find behind one function.

parent 279339a6
...@@ -234,7 +234,7 @@ static int Demux( demux_t *p_demux ) ...@@ -234,7 +234,7 @@ static int Demux( demux_t *p_demux )
char *psz_parse = NULL; char *psz_parse = NULL;
char *psz_backup = NULL; char *psz_backup = NULL;
bool b_entry = false; bool b_entry = false;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
/* init txt */ /* init txt */
if( p_sys->i_data_len < 0 ) if( p_sys->i_data_len < 0 )
...@@ -710,7 +710,7 @@ static int Demux( demux_t *p_demux ) ...@@ -710,7 +710,7 @@ static int Demux( demux_t *p_demux )
STARTMARK STARTMARK
#endif #endif
} }
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -91,7 +91,7 @@ static int Demux( demux_t *p_demux ) ...@@ -91,7 +91,7 @@ static int Demux( demux_t *p_demux )
char *psz_mrl = NULL, *psz_name = NULL, *psz_genre = NULL; char *psz_mrl = NULL, *psz_name = NULL, *psz_genre = NULL;
char *psz_now = NULL, *psz_listeners = NULL, *psz_bitrate = NULL; char *psz_now = NULL, *psz_listeners = NULL, *psz_bitrate = NULL;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
p_xml = p_sys->p_xml = xml_Create( p_demux ); p_xml = p_sys->p_xml = xml_Create( p_demux );
if( !p_xml ) return -1; if( !p_xml ) return -1;
...@@ -295,7 +295,7 @@ static int Demux( demux_t *p_demux ) ...@@ -295,7 +295,7 @@ static int Demux( demux_t *p_demux )
free( psz_elname ); free( psz_elname );
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -101,7 +101,7 @@ static int Demux( demux_t *p_demux ) ...@@ -101,7 +101,7 @@ static int Demux( demux_t *p_demux )
{ {
char *psz_line; char *psz_line;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
while( (psz_line = stream_ReadLine( p_demux->s )) ) while( (psz_line = stream_ReadLine( p_demux->s )) )
{ {
...@@ -131,7 +131,7 @@ static int Demux( demux_t *p_demux ) ...@@ -131,7 +131,7 @@ static int Demux( demux_t *p_demux )
free( psz_line ); free( psz_line );
} }
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -129,7 +129,7 @@ static int Demux( demux_t *p_demux ) ...@@ -129,7 +129,7 @@ static int Demux( demux_t *p_demux )
char *psz_description = NULL; char *psz_description = NULL;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
p_sys->p_current_input = p_current_input; p_sys->p_current_input = p_current_input;
...@@ -212,7 +212,7 @@ static int Demux( demux_t *p_demux ) ...@@ -212,7 +212,7 @@ static int Demux( demux_t *p_demux )
vlc_gc_decref( p_input ); vlc_gc_decref( p_input );
} }
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
free( psz_version ); free( psz_version );
free( psz_url ); free( psz_url );
......
...@@ -88,7 +88,7 @@ static int Demux( demux_t *p_demux ) ...@@ -88,7 +88,7 @@ static int Demux( demux_t *p_demux )
size_t len = 0; size_t len = 0;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
len = strlen( "dvd://" ) + strlen( p_demux->psz_path ) len = strlen( "dvd://" ) + strlen( p_demux->psz_path )
- strlen( "VIDEO_TS.IFO" ); - strlen( "VIDEO_TS.IFO" );
...@@ -99,7 +99,7 @@ static int Demux( demux_t *p_demux ) ...@@ -99,7 +99,7 @@ static int Demux( demux_t *p_demux )
input_item_AddSubItem( p_current_input, p_input ); input_item_AddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input ); vlc_gc_decref( p_input );
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -71,7 +71,7 @@ int Demux( demux_t *p_demux ) ...@@ -71,7 +71,7 @@ int Demux( demux_t *p_demux )
xml_reader_t *p_xml_reader = NULL; xml_reader_t *p_xml_reader = NULL;
char *psz_name = NULL; char *psz_name = NULL;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
p_demux->p_sys->i_ntracks = 0; p_demux->p_sys->i_ntracks = 0;
/* create new xml parser from stream */ /* create new xml parser from stream */
...@@ -106,7 +106,7 @@ int Demux( demux_t *p_demux ) ...@@ -106,7 +106,7 @@ int Demux( demux_t *p_demux )
parse_plist_node( p_demux, p_current_input, NULL, p_xml_reader, "plist", parse_plist_node( p_demux, p_current_input, NULL, p_xml_reader, "plist",
pl_elements ); pl_elements );
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
end: end:
free( psz_name ); free( psz_name );
......
...@@ -148,7 +148,7 @@ static int Demux( demux_t *p_demux ) ...@@ -148,7 +148,7 @@ static int Demux( demux_t *p_demux )
bool b_cleanup = false; bool b_cleanup = false;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
psz_line = stream_ReadLine( p_demux->s ); psz_line = stream_ReadLine( p_demux->s );
while( psz_line ) while( psz_line )
...@@ -249,7 +249,7 @@ static int Demux( demux_t *p_demux ) ...@@ -249,7 +249,7 @@ static int Demux( demux_t *p_demux )
b_cleanup = false; b_cleanup = false;
} }
} }
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
var_Destroy( p_demux, "m3u-extvlcopt" ); var_Destroy( p_demux, "m3u-extvlcopt" );
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -165,6 +165,14 @@ vlc_module_begin () ...@@ -165,6 +165,14 @@ vlc_module_begin ()
set_callbacks( Import_ZPL, Close_ZPL ) set_callbacks( Import_ZPL, Close_ZPL )
vlc_module_end () vlc_module_end ()
input_item_t * GetCurrentItem(demux_t *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 );
vlc_gc_incref(p_current_input);
vlc_object_release(p_input_thread);
return p_current_input;
}
/** /**
* Find directory part of the path to the playlist file, in case of * Find directory part of the path to the playlist file, in case of
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
*****************************************************************************/ *****************************************************************************/
#include <vlc_input.h> #include <vlc_input.h>
#include <vlc_playlist.h>
char *ProcessMRL( char *, char * ); char *ProcessMRL( char *, char * );
char *FindPrefix( demux_t * ); char *FindPrefix( demux_t * );
...@@ -82,13 +83,7 @@ void Close_WPL ( vlc_object_t * ); ...@@ -82,13 +83,7 @@ void Close_WPL ( vlc_object_t * );
int Import_ZPL ( vlc_object_t * ); int Import_ZPL ( vlc_object_t * );
void Close_ZPL ( vlc_object_t * ); void Close_ZPL ( vlc_object_t * );
#define INIT_PLAYLIST_STUFF \ extern input_item_t * GetCurrentItem(demux_t *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 );
#define STANDARD_DEMUX_INIT_MSG( msg ) do { \ #define STANDARD_DEMUX_INIT_MSG( msg ) do { \
DEMUX_INIT_COMMON(); \ DEMUX_INIT_COMMON(); \
......
...@@ -91,7 +91,7 @@ static int Demux( demux_t *p_demux ) ...@@ -91,7 +91,7 @@ static int Demux( demux_t *p_demux )
int i_key_length; int i_key_length;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
while( ( psz_line = stream_ReadLine( p_demux->s ) ) ) while( ( psz_line = stream_ReadLine( p_demux->s ) ) )
{ {
...@@ -228,7 +228,7 @@ static int Demux( demux_t *p_demux ) ...@@ -228,7 +228,7 @@ static int Demux( demux_t *p_demux )
free( psz_name ); free( psz_name );
psz_name = NULL; psz_name = NULL;
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -91,7 +91,7 @@ static int Demux( demux_t *p_demux ) ...@@ -91,7 +91,7 @@ static int Demux( demux_t *p_demux )
int i_type; int i_type;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
p_xml = xml_Create( p_demux ); p_xml = xml_Create( p_demux );
if( !p_xml ) if( !p_xml )
...@@ -363,7 +363,7 @@ static int Demux( demux_t *p_demux ) ...@@ -363,7 +363,7 @@ static int Demux( demux_t *p_demux )
xml_ReaderDelete( p_xml, p_xml_reader ); xml_ReaderDelete( p_xml, p_xml_reader );
xml_Delete( p_xml ); xml_Delete( p_xml );
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
error: error:
...@@ -386,7 +386,7 @@ error: ...@@ -386,7 +386,7 @@ error:
if( p_xml ) if( p_xml )
xml_Delete( p_xml ); xml_Delete( p_xml );
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return -1; return -1;
} }
......
...@@ -124,7 +124,7 @@ static int Demux( demux_t *p_demux ) ...@@ -124,7 +124,7 @@ static int Demux( demux_t *p_demux )
char *psz_mimetype = NULL; char *psz_mimetype = NULL;
int i_volume = 100; int i_volume = 100;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
p_xml = xml_Create( p_demux ); p_xml = xml_Create( p_demux );
if( !p_xml ) if( !p_xml )
...@@ -327,7 +327,7 @@ error: ...@@ -327,7 +327,7 @@ error:
if( p_xml ) if( p_xml )
xml_Delete( p_xml ); xml_Delete( p_xml );
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
free( psz_href ); free( psz_href );
free( psz_moviename ); free( psz_moviename );
......
...@@ -214,7 +214,7 @@ static int Demux( demux_t *p_demux ) ...@@ -214,7 +214,7 @@ static int Demux( demux_t *p_demux )
bool b_cleanup = false; bool b_cleanup = false;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
psz_line = stream_ReadLine( p_demux->s ); psz_line = stream_ReadLine( p_demux->s );
while( psz_line ) while( psz_line )
...@@ -360,7 +360,7 @@ static int Demux( demux_t *p_demux ) ...@@ -360,7 +360,7 @@ static int Demux( demux_t *p_demux )
b_cleanup = false; b_cleanup = false;
} }
} }
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
var_Destroy( p_demux, "m3u-extvlcopt" ); var_Destroy( p_demux, "m3u-extvlcopt" );
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -324,7 +324,7 @@ static int Demux ( demux_t *p_demux ) ...@@ -324,7 +324,7 @@ static int Demux ( demux_t *p_demux )
input_item_t *p_child = NULL; input_item_t *p_child = NULL;
char *psz_line; char *psz_line;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
while( ( psz_line = stream_ReadLine( p_demux->s ) ) ) while( ( psz_line = stream_ReadLine( p_demux->s ) ) )
{ {
...@@ -404,7 +404,7 @@ static int Demux ( demux_t *p_demux ) ...@@ -404,7 +404,7 @@ static int Demux ( demux_t *p_demux )
input_item_AddSubItem( p_current_input, p_child ); input_item_AddSubItem( p_current_input, p_child );
vlc_gc_decref( p_child ); vlc_gc_decref( p_child );
HANDLE_PLAY_AND_RELEASE vlc_gc_decref(p_current_input);
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -83,7 +83,7 @@ static int Demux( demux_t *p_demux ) ...@@ -83,7 +83,7 @@ static int Demux( demux_t *p_demux )
xml_reader_t *p_xml_reader = NULL; xml_reader_t *p_xml_reader = NULL;
char *psz_eltname = NULL; char *psz_eltname = NULL;
int i_ret = -1; int i_ret = -1;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
p_xml = xml_Create( p_demux ); p_xml = xml_Create( p_demux );
if( !p_xml ) if( !p_xml )
...@@ -132,7 +132,7 @@ error: ...@@ -132,7 +132,7 @@ error:
if( p_xml ) if( p_xml )
xml_Delete( p_xml ); xml_Delete( p_xml );
free( psz_eltname ); free( psz_eltname );
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
return i_ret; return i_ret;
} }
......
...@@ -93,7 +93,7 @@ static int Demux( demux_t *p_demux ) ...@@ -93,7 +93,7 @@ static int Demux( demux_t *p_demux )
char *psz_parse; char *psz_parse;
input_item_t *p_input; input_item_t *p_input;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
psz_line = stream_ReadLine( p_demux->s ); psz_line = stream_ReadLine( p_demux->s );
while( psz_line ) while( psz_line )
...@@ -124,7 +124,7 @@ static int Demux( demux_t *p_demux ) ...@@ -124,7 +124,7 @@ static int Demux( demux_t *p_demux )
psz_line = stream_ReadLine( p_demux->s ); psz_line = stream_ReadLine( p_demux->s );
} }
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
var_Destroy( p_demux, "wpl-extvlcopt" ); var_Destroy( p_demux, "wpl-extvlcopt" );
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -83,7 +83,7 @@ int Demux( demux_t *p_demux ) ...@@ -83,7 +83,7 @@ int Demux( demux_t *p_demux )
xml_t *p_xml = NULL; xml_t *p_xml = NULL;
xml_reader_t *p_xml_reader = NULL; xml_reader_t *p_xml_reader = NULL;
char *psz_name = NULL; char *psz_name = NULL;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
p_demux->p_sys->pp_tracklist = NULL; p_demux->p_sys->pp_tracklist = NULL;
p_demux->p_sys->i_tracklist_entries = 0; p_demux->p_sys->i_tracklist_entries = 0;
p_demux->p_sys->i_track_id = -1; p_demux->p_sys->i_track_id = -1;
...@@ -130,7 +130,7 @@ int Demux( demux_t *p_demux ) ...@@ -130,7 +130,7 @@ int Demux( demux_t *p_demux )
} }
end: end:
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
if( p_xml_reader ) if( p_xml_reader )
xml_ReaderDelete( p_xml, p_xml_reader ); xml_ReaderDelete( p_xml, p_xml_reader );
if( p_xml ) if( p_xml )
......
...@@ -97,7 +97,7 @@ static int Demux( demux_t *p_demux ) ...@@ -97,7 +97,7 @@ static int Demux( demux_t *p_demux )
*psz_description = NULL, *psz_url = NULL, *psz_copyright = NULL, *psz_description = NULL, *psz_url = NULL, *psz_copyright = NULL,
*psz_mrl = NULL; *psz_mrl = NULL;
INIT_PLAYLIST_STUFF; input_item_t *p_current_input = GetCurrentItem(p_demux);
psz_line = stream_ReadLine( p_demux->s ); psz_line = stream_ReadLine( p_demux->s );
char *psz_parse = psz_line; char *psz_parse = psz_line;
...@@ -212,7 +212,7 @@ static int Demux( demux_t *p_demux ) ...@@ -212,7 +212,7 @@ static int Demux( demux_t *p_demux )
psz_line = stream_ReadLine( p_demux->s ); psz_line = stream_ReadLine( p_demux->s );
} }
HANDLE_PLAY_AND_RELEASE; vlc_gc_decref(p_current_input);
var_Destroy( p_demux, "zpl-extvlcopt" ); var_Destroy( p_demux, "zpl-extvlcopt" );
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment