[vlc-commits] demux: ts: filter out other streams

Francois Cartegnie git at videolan.org
Thu Feb 26 17:54:17 CET 2015


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu Feb 26 17:30:52 2015 +0100| [a0be840a1c0e7cafa5f5385e7d8419880637c891] | committer: Francois Cartegnie

demux: ts: filter out other streams

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

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

diff --git a/modules/demux/ts.c b/modules/demux/ts.c
index cd85856..d063898 100644
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -263,6 +263,7 @@ typedef struct
     dvbpsi_handle   handle; /* PAT/SDT/EIT */
     int             i_pat_version;
     int             i_sdt_version;
+    int             i_ts_id;
 
     /* For PMT */
     int             i_prg;
@@ -1928,6 +1929,7 @@ static void PIDInit( ts_pid_t *pid, bool b_psi, ts_psi_t *p_owner )
 
         pid->psi->i_pat_version  = -1;
         pid->psi->i_sdt_version  = -1;
+        pid->psi->i_ts_id        = -1;
         if( p_owner )
         {
             ts_prg_psi_t *prg = malloc( sizeof( ts_prg_psi_t ) );
@@ -5624,6 +5626,7 @@ static void PATCallBack( void *data, dvbpsi_pat_t *p_pat )
     if( ( pat->psi->i_pat_version != -1 &&
             ( !p_pat->b_current_next ||
               p_pat->i_version == pat->psi->i_pat_version ) ) ||
+        ( pat->psi->i_ts_id != -1 && p_pat->i_ts_id != pat->psi->i_ts_id ) ||
         p_sys->b_user_pmt || PATCheck( p_demux, p_pat ) )
     {
         dvbpsi_DeletePAT( p_pat );
@@ -5770,6 +5773,7 @@ static void PATCallBack( void *data, dvbpsi_pat_t *p_pat )
         }
     }
     pat->psi->i_pat_version = p_pat->i_version;
+    pat->psi->i_ts_id = p_pat->i_ts_id;
 
     dvbpsi_DeletePAT( p_pat );
 }



More information about the vlc-commits mailing list