1
mirror of https://code.videolan.org/videolan/vlc synced 2024-10-07 03:56:28 +02:00

demux: playlist: xspf: revector

"ppl can't do xml"

Refactored code, better rogue nodes handling,
properly handles empty nodes and skipping,
reclaims badly referenced nodes.
This commit is contained in:
Francois Cartegnie 2017-09-05 22:36:17 +02:00
parent cb6823f8a1
commit e21706e9e3
3 changed files with 354 additions and 469 deletions

View File

@ -227,7 +227,7 @@ static bool parse_dict( stream_t *p_demux, input_item_node_t *p_input_node,
/* call the simple handler */
else if( p_handler->pf_handler.smpl )
{
p_handler->pf_handler.smpl( p_track, psz_key, psz_value );
p_handler->pf_handler.smpl( p_track, psz_key, psz_value, p_demux->p_sys );
}
FREENULL(psz_value);
p_handler = NULL;
@ -364,8 +364,9 @@ static void free_track( track_elem_t *p_track )
}
static bool save_data( track_elem_t *p_track, const char *psz_name,
char *psz_value)
char *psz_value, void *opaque )
{
VLC_UNUSED(opaque);
/* exit if setting is impossible */
if( !psz_name || !psz_value || !p_track )
return false;

View File

@ -32,7 +32,8 @@
#define SIMPLE_INTERFACE (track_elem_t *p_track,\
const char *psz_name,\
char *psz_value)
char *psz_value,\
void *opaque)
#define COMPLEX_INTERFACE (stream_t *p_demux,\
input_item_node_t *p_input_node,\
track_elem_t *p_track,\

File diff suppressed because it is too large Load Diff