vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Apr 7 23:31:42 2015 +0200| [50accb82e6e8b10a3f3493091dfcd832405ba234] | committer: Francois Cartegnie
demux: ts: delete/and recreate es on format change refs #14257 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=50accb82e6e8b10a3f3493091dfcd832405ba234 --- modules/demux/ts.c | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/modules/demux/ts.c b/modules/demux/ts.c index efb0fd8..d474680 100644 --- a/modules/demux/ts.c +++ b/modules/demux/ts.c @@ -5446,34 +5446,13 @@ static void PMTCallBack( void *data, dvbpsi_pmt_t *p_dvbpsipmt ) p_pes->es.fmt.psz_language ) ) ) ) { /* Differs, swap then */ - ts_pes_t *e = pespid->u.p_pes; + ts_pes_t *old = pespid->u.p_pes; 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, &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; - } - } + AddAndCreateES( p_demux, pespid, false ); + ts_pes_Del( p_demux, old ); } - - ts_pes_Del( p_demux, p_pes ); // delete temp + else + ts_pes_Del( p_demux, p_pes ); // delete temp, stay with current es/es_id } else { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
