es->p_pgrm->i_es--;
if( es->p_pgrm->i_es == 0 )
{
- msg_Err( p_sys->p_input, "Program doesn't contain anymore ES, "
- "TODO cleaning ?" );
+ msg_Warn( p_sys->p_input, "Program doesn't contain anymore ES, "
+ "TODO cleaning ?" );
}
if( p_sys->p_es_audio == es ) p_sys->p_es_audio = NULL;
{
/* This ain't pretty but is need by some demuxers (eg. Ogg )
* to update the p_extra data */
- es_format_t *p_fmt = (es_format_t*) va_arg( args, es_format_t * );
es = (es_out_id_t*) va_arg( args, es_out_id_t * );
- if( es == NULL || !es->p_dec ) return VLC_EGENERIC;
+ es_format_t *p_fmt = (es_format_t*) va_arg( args, es_format_t * );
+ if( es == NULL ) return VLC_EGENERIC;
if( p_fmt->i_extra )
{
es->fmt.p_extra = realloc( es->fmt.p_extra, p_fmt->i_extra );
memcpy( es->fmt.p_extra, p_fmt->p_extra, p_fmt->i_extra );
+ if( !es->p_dec ) return VLC_SUCCESS;
+
es->p_dec->fmt_in.i_extra = p_fmt->i_extra;
es->p_dec->fmt_in.p_extra =
realloc( es->p_dec->fmt_in.p_extra, p_fmt->i_extra );