]> git.sesse.net Git - vlc/commitdiff
Clean up b_access_control usage in TS.
authorLaurent Aimar <fenrir@videolan.org>
Sun, 27 Jun 2010 23:21:12 +0000 (01:21 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 28 Jun 2010 19:04:07 +0000 (21:04 +0200)
modules/demux/ts.c

index 2ea1a40b939fd2b8e0a49fd7976a5d540dcfe087..63ec362a77a461721c600f47fc4c3377d8a58cc8 100644 (file)
@@ -1282,15 +1282,17 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
         p_list = (vlc_list_t *)va_arg( args, vlc_list_t * );
         msg_Dbg( p_demux, "DEMUX_SET_GROUP %d %p", i_int, p_list );
 
-        if( p_sys->b_access_control && i_int > 0 && i_int != p_sys->i_current_program )
+        if( i_int > 0 )
         {
-            SetPrgFilter( p_demux, p_sys->i_current_program, false );
+            if( i_int != p_sys->i_current_program )
+            {
+                SetPrgFilter( p_demux, p_sys->i_current_program, false );
 
-            /* select new program */
-            p_sys->i_current_program = i_int;
-            SetPrgFilter( p_demux, p_sys->i_current_program, true );
+                p_sys->i_current_program = i_int;
+                SetPrgFilter( p_demux, p_sys->i_current_program, true );
+            }
         }
-        else if( i_int <= 0 )
+        else
         {
             p_sys->i_current_program = -1;
             p_sys->programs_list.i_count = 0;
@@ -2554,8 +2556,6 @@ static bool ProgramIsSelected( demux_t *p_demux, uint16_t i_pgrm )
 {
     demux_sys_t          *p_sys = p_demux->p_sys;
 
-    if( !p_sys->b_access_control )
-        return false;
     if( ( p_sys->i_current_program == -1 && p_sys->programs_list.i_count == 0 ) ||
         p_sys->i_current_program == 0 )
         return true;
@@ -3984,7 +3984,7 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
         /* Set demux filter */
         SetPIDFilter( p_demux, prg->i_pid_pcr, true );
     }
-    else if ( p_sys->b_access_control )
+    else
     {
         msg_Warn( p_demux, "skipping program (not selected)" );
         dvbpsi_DeletePMT(p_pmt);
@@ -4345,16 +4345,13 @@ static void PATCallBack( demux_t *p_demux, dvbpsi_pat_t *p_pat )
                     p_program->i_pid;
 
                 /* Now select PID at access level */
-                if( p_sys->b_access_control )
+                if( ProgramIsSelected( p_demux, p_program->i_number ) )
                 {
-                    if( ProgramIsSelected( p_demux, p_program->i_number ) )
-                    {
-                        if( p_sys->i_current_program == 0 )
-                            p_sys->i_current_program = p_program->i_number;
+                    if( p_sys->i_current_program == 0 )
+                        p_sys->i_current_program = p_program->i_number;
 
-                        if( SetPIDFilter( p_demux, p_program->i_pid, true ) )
-                            p_sys->b_access_control = false;
-                    }
+                    if( SetPIDFilter( p_demux, p_program->i_pid, true ) )
+                        p_sys->b_access_control = false;
                 }
             }
         }