[vlc-commits] demux: ts: reject shared pes for now

Francois Cartegnie git at videolan.org
Sun Mar 15 22:03:53 CET 2015


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Sun Mar 15 14:06:20 2015 +0100| [94f16c6b763ff45a1872854c56d60f2518477ea8] | committer: Francois Cartegnie

demux: ts: reject shared pes for now

We need one ES by program

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=94f16c6b763ff45a1872854c56d60f2518477ea8
---

 modules/demux/ts.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/modules/demux/ts.c b/modules/demux/ts.c
index 8e97b89..95883c3 100644
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -5021,6 +5021,7 @@ static void AddAndCreateES( demux_t *p_demux, ts_pid_t *pid, bool b_create_delay
 
     if( pid && p_sys->es_creation == CREATE_ES )
     {
+        /* FIXME: other owners / shared pid */
         pid->u.p_pes->es.id = es_out_Add( p_demux->out, &pid->u.p_pes->es.fmt );
         for( int i = 0; i < pid->u.p_pes->extra_es.i_size; i++ )
         {
@@ -5221,6 +5222,11 @@ static void PMTCallBack( void *data, dvbpsi_pmt_t *p_dvbpsipmt )
         ts_pes_t *p_pes;
 
         ts_pid_t *pespid = &p_sys->pid[p_dvbpsies->i_pid];
+        if ( pespid->type == TYPE_PES && pespid->p_parent->u.p_pmt->i_number != p_pmt->i_number )
+        {
+            msg_Warn( p_demux, " * PMT wants to get a share or pid %d (unsupported)", pespid->i_pid );
+            continue;
+        }
 
         /* Find out if the PID was already declared */
         for( int i = 0; i < old_es_rm.i_size; i++ )



More information about the vlc-commits mailing list