Commit e5234448 authored by Gildas Bazin's avatar Gildas Bazin

* modules/demux/ts.c: keep compatibility with non-DVB streams (SDT/EDT issue).

parent 9024ec1d
...@@ -2419,11 +2419,24 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt ) ...@@ -2419,11 +2419,24 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
} }
if( !old_pid && p_sys->pid[p_es->i_pid].b_valid ) if( !old_pid && p_sys->pid[p_es->i_pid].b_valid )
{
ts_pid_t *pid = &p_sys->pid[p_es->i_pid];
if( ( pid->i_pid == 0x11 /* SDT */ ||
pid->i_pid == 0x12 /* EDT */ ) && pid->psi )
{
/* This doesn't look like a DVB stream so don't try
* parsing the SDT/EDT */
dvbpsi_DetachDemux( pid->psi->handle );
free( pid->psi );
pid->psi = 0;
}
else
{ {
msg_Warn( p_demux, "pmt error: pid=%d already defined", msg_Warn( p_demux, "pmt error: pid=%d already defined",
p_es->i_pid ); p_es->i_pid );
continue; continue;
} }
}
PIDInit( pid, VLC_FALSE, pmt->psi ); PIDInit( pid, VLC_FALSE, pmt->psi );
PIDFillFormat( pid, p_es->i_type ); PIDFillFormat( pid, p_es->i_type );
......
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