sout_stream_t *p_next;
/* add, remove a stream */
- sout_stream_id_sys_t *(*pf_add)( sout_stream_t *, es_format_t * );
+ sout_stream_id_sys_t *(*pf_add)( sout_stream_t *, const es_format_t * );
void (*pf_del)( sout_stream_t *, sout_stream_id_sys_t * );
/* manage a packet */
int (*pf_send)( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
VLC_API sout_stream_t *sout_StreamChainNew(sout_instance_t *p_sout,
char *psz_chain, sout_stream_t *p_next, sout_stream_t **p_last) VLC_USED;
-static inline sout_stream_id_sys_t *sout_StreamIdAdd( sout_stream_t *s, es_format_t *fmt )
+static inline sout_stream_id_sys_t *sout_StreamIdAdd( sout_stream_t *s,
+ const es_format_t *fmt )
{
return s->pf_add( s, fmt );
}
-static inline void sout_StreamIdDel( sout_stream_t *s, sout_stream_id_sys_t *id )
+
+static inline void sout_StreamIdDel( sout_stream_t *s,
+ sout_stream_id_sys_t *id )
{
s->pf_del( s, id );
}
-static inline int sout_StreamIdSend( sout_stream_t *s, sout_stream_id_sys_t *id, block_t *b )
+
+static inline int sout_StreamIdSend( sout_stream_t *s,
+ sout_stream_id_sys_t *id, block_t *b )
{
return s->pf_send( s, id, b );
}
/*****************************************************************************
* Local prototypes
*****************************************************************************/
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send ( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
free( p_sys );
}
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream,
+ const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
sout_stream_id_sys_t *p_es = malloc( sizeof(sout_stream_id_sys_t) );
NULL
};
-static sout_stream_id_sys_t *AddOut ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *AddOut( sout_stream_t *, const es_format_t * );
static void DelOut ( sout_stream_t *, sout_stream_id_sys_t * );
static int SendOut( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
-static sout_stream_id_sys_t *AddIn ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *AddIn( sout_stream_t *, const es_format_t * );
static void DelIn ( sout_stream_t *, sout_stream_id_sys_t * );
static int SendIn( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
free( p_sys );
}
-static sout_stream_id_sys_t * AddOut( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * AddOut( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
out_sout_stream_sys_t *p_sys = (out_sout_stream_sys_t *)p_stream->p_sys;
bridge_t *p_bridge;
int i_cat; /* es category. Used for placeholder option */
};
-static sout_stream_id_sys_t * AddIn( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * AddIn( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
in_sout_stream_sys_t *p_sys = (in_sout_stream_sys_t *)p_stream->p_sys;
static int Open ( vlc_object_t * );
static void Close ( vlc_object_t * );
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
free( p_sys );
}
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
sout_stream_id_sys_t *id = NULL;
/*****************************************************************************
* Sout callbacks
*****************************************************************************/
-static sout_stream_id_sys_t *Add(sout_stream_t *p_stream, es_format_t *p_fmt)
+static sout_stream_id_sys_t *Add(sout_stream_t *p_stream, const es_format_t *p_fmt)
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
return p_sys->p_out->pf_add(p_sys->p_out, p_fmt);
return block->i_dts;
}
-static sout_stream_id_sys_t *Add(sout_stream_t *stream, es_format_t *fmt)
+static sout_stream_id_sys_t *Add(sout_stream_t *stream, const es_format_t *fmt)
{
sout_stream_sys_t *sys = stream->p_sys;
sout_stream_id_sys_t *id = malloc(sizeof (*id));
"id", "delay", NULL
};
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send ( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
free( p_sys );
}
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
static int Open ( vlc_object_t * );
static void Close ( vlc_object_t * );
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add ( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
free( p_sys );
}
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
es_format_t *p_fmt_copy = malloc( sizeof( *p_fmt_copy ) );
"audio", "video", "delay", NULL
};
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
free( p_sys );
}
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
*****************************************************************************/
static int Open ( vlc_object_t * );
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
return VLC_SUCCESS;
}
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
VLC_UNUSED(p_stream); VLC_UNUSED(p_fmt);
return malloc( 1 );
/*****************************************************************************
* Exported prototypes
*****************************************************************************/
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *,
block_t* );
void **pp_ids;
};
-static bool ESSelected( es_format_t *fmt, char *psz_select );
+static bool ESSelected( const es_format_t *fmt, char *psz_select );
/*****************************************************************************
* Open:
/*****************************************************************************
* Add:
*****************************************************************************/
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
sout_stream_id_sys_t *id;
return i_start <= i_num && i_num <= i_stop;
}
-static bool ESSelected( es_format_t *fmt, char *psz_select )
+static bool ESSelected( const es_format_t *fmt, char *psz_select )
{
char *psz_dup;
char *psz;
NULL
};
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
return( psz_dst );
}
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
sout_stream_id_sys_t *id;
/*****************************************************************************
* Exported prototypes
*****************************************************************************/
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add ( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
/*****************************************************************************
* Add:
*****************************************************************************/
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
sout_stream_id_sys_t *id;
static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
+ sout_stream_id_sys_t *id;
+ es_format_t fmt;
if ( p_fmt->i_id == p_sys->i_id )
{
+ fmt = *p_fmt;
+
p_sys->psz_old_language = p_fmt->psz_language;
msg_Dbg( p_stream,
"changing language of ID %d (magazine %d page %x row %d)",
else
strcpy( p_fmt->psz_language, "unk" );
p_fmt->psz_language[3] = '\0';
-
- p_sys->p_id = p_stream->p_next->pf_add( p_stream->p_next, p_fmt );
- return p_sys->p_id;
}
- if ( p_fmt->i_codec == VLC_CODEC_TELETEXT )
- {
- p_sys->p_telx = p_stream->p_next->pf_add( p_stream->p_next, p_fmt );
- return p_sys->p_telx;
- }
+ id = sout_StreamIdAdd( p_stream->p_next, p_fmt );
+
+ if( p_fmt->i_id == p_sys->i_id )
+ p_sys->p_id = id;
+ if( p_fmt->i_codec == VLC_CODEC_TELETEXT )
+ p_sys->p_telx = id;
- return p_stream->p_next->pf_add( p_stream->p_next, p_fmt );
+ return id;
}
static void Del( sout_stream_t *p_stream, sout_stream_id_sys_t *id )
*****************************************************************************/
static int Open ( vlc_object_t * );
static void Close ( vlc_object_t * );
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
free( p_sys );
}
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
bridge_t *p_bridge;
static int Open( vlc_object_t * );
static void Close( vlc_object_t * );
-static sout_stream_id_sys_t *Add( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
/*****************************************************************************
* Add:
*****************************************************************************/
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
sout_stream_id_sys_t *id = NULL;
};
/* */
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
/*****************************************************************************
*
*****************************************************************************/
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
sout_stream_id_sys_t *id;
"mp4a-latm", NULL
};
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *,
block_t* );
-static sout_stream_id_sys_t *MuxAdd ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *MuxAdd( sout_stream_t *, const es_format_t * );
static void MuxDel ( sout_stream_t *, sout_stream_id_sys_t * );
static int MuxSend( sout_stream_t *, sout_stream_id_sys_t *,
block_t* );
}
/** Add an ES as a new RTP stream */
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream,
+ const es_format_t *p_fmt )
{
/* NOTE: As a special case, if we use a non-RTP
* mux (TS/PS), then p_fmt is NULL. */
*****************************************************************************/
/** Add an ES to a non-RTP muxed stream */
-static sout_stream_id_sys_t *MuxAdd( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *MuxAdd( sout_stream_t *p_stream,
+ const es_format_t *p_fmt )
{
sout_input_t *p_input;
sout_mux_t *p_mux = p_stream->p_sys->p_mux;
"id", "lang", NULL
};
-static sout_stream_id_sys_t *AddId ( sout_stream_t *, es_format_t * );
-static sout_stream_id_sys_t *AddLang ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *AddId ( sout_stream_t *, const es_format_t * );
+static sout_stream_id_sys_t *AddLang( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send ( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
free( p_sys );
}
-static sout_stream_id_sys_t * AddId( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * AddId( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
es_format_t fmt;
- if ( p_fmt->i_id == p_sys->i_id )
+ if( p_fmt->i_id == p_sys->i_id )
{
msg_Dbg( p_stream, "turning ID %d to %d", p_sys->i_id,
p_sys->i_new_id );
return sout_StreamIdAdd( p_stream->p_next, p_fmt );
}
-static sout_stream_id_sys_t * AddLang( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * AddLang( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
es_format_t fmt;
"video-postrender-callback", "audio-postrender-callback", "video-data", "audio-data", "time-sync", NULL
};
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
-static sout_stream_id_sys_t *AddVideo( sout_stream_t *p_stream, es_format_t *p_fmt );
-static sout_stream_id_sys_t *AddAudio( sout_stream_t *p_stream, es_format_t *p_fmt );
+static sout_stream_id_sys_t *AddVideo( sout_stream_t *p_stream,
+ const es_format_t *p_fmt );
+static sout_stream_id_sys_t *AddAudio( sout_stream_t *p_stream,
+ const es_format_t *p_fmt );
static int SendVideo( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
block_t *p_buffer );
free( p_stream->p_sys );
}
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream,
+ const es_format_t *p_fmt )
{
sout_stream_id_sys_t *id = NULL;
return id;
}
-static sout_stream_id_sys_t *AddVideo( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *AddVideo( sout_stream_t *p_stream,
+ const es_format_t *p_fmt )
{
char* psz_tmp;
sout_stream_id_sys_t *id;
return id;
}
-static sout_stream_id_sys_t *AddAudio( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *AddAudio( sout_stream_t *p_stream,
+ const es_format_t *p_fmt )
{
char* psz_tmp;
sout_stream_id_sys_t* id;
session_descriptor_t *p_session;
};
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
return (sout_stream_id_sys_t*)sout_MuxAddStream( p_stream->p_sys->p_mux, p_fmt );
}
"output", "prefix", NULL
};
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send ( sout_stream_t *, sout_stream_id_sys_t *, block_t * );
free( p_sys );
}
-static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
sout_stream_id_sys_t *id;
/*****************************************************************************
* Exported prototypes
*****************************************************************************/
-static sout_stream_id_sys_t *Add ( sout_stream_t *, es_format_t * );
+static sout_stream_id_sys_t *Add( sout_stream_t *, const es_format_t * );
static void Del ( sout_stream_t *, sout_stream_id_sys_t * );
static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t* );
free( p_sys );
}
-static sout_stream_id_sys_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
+static sout_stream_id_sys_t *Add( sout_stream_t *p_stream,
+ const es_format_t *p_fmt )
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
sout_stream_id_sys_t *id;