]> git.sesse.net Git - vlc/commitdiff
demux: ts: add DEMUX_SET_TIME
authorFrancois Cartegnie <fcvlcdev@free.fr>
Sun, 22 Feb 2015 15:13:18 +0000 (16:13 +0100)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Sun, 22 Feb 2015 15:38:21 +0000 (16:38 +0100)
modules/demux/ts.c

index 1324a8034de941264dd0503f4d97ed176aeb62bc..09e9611c3564e196c7e659aa8428c079e58c50df 100644 (file)
@@ -1554,6 +1554,21 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
         }
         break;
 
+    case DEMUX_SET_TIME:
+        i64 = (int64_t)va_arg( args, int64_t );
+
+        if( p_sys->b_canseek &&
+           (p_prg = GetProgramByID( p_sys, i_first_program )) &&
+            p_prg->pcr.i_first > -1 &&
+           !SeekToTime( p_demux, p_prg, p_prg->pcr.i_first + TO_SCALE(i64) ) )
+        {
+            ReadyQueuesPostSeek( p_sys );
+            es_out_Control( p_demux->out, ES_OUT_SET_NEXT_DISPLAY_TIME,
+                            FROM_SCALE(p_prg->pcr.i_first) + i64 - VLC_TS_0 );
+            return VLC_SUCCESS;
+        }
+        break;
+
     case DEMUX_GET_TIME:
         pi64 = (int64_t*)va_arg( args, int64_t * );