Commit b2f2c6f8 authored by Francois Cartegnie's avatar Francois Cartegnie

demux: ts: correctly swap es id on restart

and missing extra es
parent 6d35a852
......@@ -5387,9 +5387,27 @@ static void PMTCallBack( void *data, dvbpsi_pmt_t *p_dvbpsipmt )
pespid->u.p_pes = p_pes;
p_pes = e;
/* p_pes still tmp, but now contains old config */
pespid->u.p_pes->es.id = p_pes->es.id;
if( pespid->u.p_pes->es.id )
{
p_pes->es.id = NULL;
es_out_Control( p_demux->out, ES_OUT_SET_ES_FMT,
pespid->u.p_pes->es.id, p_pes->es.fmt );
pespid->u.p_pes->es.id, pespid->u.p_pes->es.fmt );
}
for( int i=0; i<pespid->u.p_pes->extra_es.i_size &&
i<p_pes->extra_es.i_size; i++ )
{
pespid->u.p_pes->extra_es.p_elems[i]->id = p_pes->extra_es.p_elems[i]->id;
if( pespid->u.p_pes->extra_es.p_elems[i]->id )
{
es_out_Control( p_demux->out, ES_OUT_SET_ES_FMT,
pespid->u.p_pes->extra_es.p_elems[i]->id,
pespid->u.p_pes->extra_es.p_elems[i]->fmt );
p_pes->extra_es.p_elems[i]->id = NULL;
}
}
}
ts_pes_Del( p_demux, p_pes ); // delete temp
......
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