]> git.sesse.net Git - vlc/commitdiff
* rename ES_OUT_SET_PCR into ES_OUT_SET_GROUP_PCR, now ES_OUT_SET_PCR
authorLaurent Aimar <fenrir@videolan.org>
Wed, 7 Jan 2004 15:31:31 +0000 (15:31 +0000)
committerLaurent Aimar <fenrir@videolan.org>
Wed, 7 Jan 2004 15:31:31 +0000 (15:31 +0000)
  apply to the selected program.

include/ninput.h
modules/demux/nsv.c
modules/demux/real.c
src/input/es_out.c

index 6c55b48fd45496c99d8eec435f01415b48c24a7f..7bb5827b2285046a8ba56a0d243069ba0ae4c4c9 100644 (file)
@@ -2,7 +2,7 @@
  * ninput.h
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: ninput.h,v 1.22 2004/01/06 21:42:43 sigmunau Exp $
+ * $Id: ninput.h,v 1.23 2004/01/07 15:31:31 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -52,7 +52,8 @@ enum es_out_query_e
     ES_OUT_GET_ES_STATE,/* arg1= es_out_id_t* arg2=vlc_bool_t*  */
 
     /* XXX XXX XXX Don't use them YET !!! */
-    ES_OUT_SET_PCR,     /* arg1= int i_group, arg2=int64_t i_pcr(microsecond!)*/
+    ES_OUT_SET_PCR,             /* arg1=int64_t i_pcr(microsecond!) (using default group 0)*/
+    ES_OUT_SET_GROUP_PCR,       /* arg1= int i_group, arg2=int64_t i_pcr(microsecond!)*/
     ES_OUT_RESET_PCR,   /* no arg */
 };
 
index 376276c0e9c45aaae7ff1c90a440c19313473248..56a76a8807c5f294d8cd5e4ee5e90097f644e689 100644 (file)
@@ -2,7 +2,7 @@
  * nsv.c: NullSoft Video demuxer.
  *****************************************************************************
  * Copyright (C) 2004 VideoLAN
- * $Id: nsv.c,v 1.3 2004/01/07 14:59:37 fenrir Exp $
+ * $Id: nsv.c,v 1.4 2004/01/07 15:31:31 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -192,7 +192,7 @@ static int Demux( demux_t *p_demux )
     }
 
     /* Set PCR */
-    es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+    es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
 
     /* Read video */
     i_size = ( header[0] >> 4 ) | ( header[1] << 4 ) | ( header[2] << 12 );
index ae2e19d40d4c1b4268f9af61d9cd128e5eab0a15..46623ed422e6e56f84839ad7c46239c30781cc5c 100644 (file)
@@ -2,7 +2,7 @@
  * real.c: Real demuxer.
  *****************************************************************************
  * Copyright (C) 2004 VideoLAN
- * $Id: real.c,v 1.1 2004/01/04 14:35:12 fenrir Exp $
+ * $Id: real.c,v 1.2 2004/01/07 15:31:31 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -314,7 +314,7 @@ static int Demux( demux_t *p_demux )
                 {
                     p_sys->i_pcr = tk->p_frame->i_dts;
 
-                    es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+                    es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
                 }
                 es_out_Send( p_demux->out, tk->p_es, tk->p_frame );
 
@@ -383,7 +383,7 @@ static int Demux( demux_t *p_demux )
                     if( p_sys->i_pcr < tk->p_frame->i_dts )
                     {
                         p_sys->i_pcr = tk->p_frame->i_dts;
-                        es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+                        es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
                     }
                     es_out_Send( p_demux->out, tk->p_es, tk->p_frame );
 
@@ -420,7 +420,7 @@ static int Demux( demux_t *p_demux )
                 if( p_sys->i_pcr < p_frame->i_dts )
                 {
                     p_sys->i_pcr = p_frame->i_dts;
-                    es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+                    es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
                 }
                 es_out_Send( p_demux->out, tk->p_es, p_frame );
             }
@@ -475,7 +475,7 @@ static int Demux( demux_t *p_demux )
         {
             p_sys->i_pcr = i_pts;
 
-            es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+            es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
         }
         es_out_Send( p_demux->out, tk->p_es, p_block );
     }
index 1055bbd1e0a800c5805527511bb9e7ad03af0c77..34bfca40b9d30603ae8720b5a2c72b2d2f4f5491 100644 (file)
@@ -2,7 +2,7 @@
  * es_out.c: Es Out handler for input.
  *****************************************************************************
  * Copyright (C) 2003-2004 VideoLAN
- * $Id: es_out.c,v 1.14 2004/01/06 12:02:06 zorglub Exp $
+ * $Id: es_out.c,v 1.15 2004/01/07 15:31:31 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -588,8 +588,6 @@ static int EsOutControl( es_out_t *out, int i_query, va_list args )
     es_out_sys_t *p_sys = out->p_sys;
     vlc_bool_t  b, *pb;
     int         i, *pi;
-    int         i_group;
-    int64_t     i_pcr;
 
     es_out_id_t *es;
 
@@ -699,14 +697,24 @@ static int EsOutControl( es_out_t *out, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case ES_OUT_SET_PCR:
+        case ES_OUT_SET_GROUP_PCR:
         {
             pgrm_descriptor_t *p_prgm = NULL;
+            int64_t           i_pcr;
 
-            i_group = (int)va_arg( args, int );
+            if( i_query == ES_OUT_SET_PCR )
+            {
+                p_prgm = p_sys->p_input->stream.p_selected_program;
+            }
+            else
+            {
+                int i_group = (int)va_arg( args, int );
+                p_prgm = input_FindProgram( p_sys->p_input, i_group );
+            }
             i_pcr   = (int64_t)va_arg( args, int64_t );
 
             /* search program */
-            if( ( p_prgm = input_FindProgram( p_sys->p_input, i_group ) ) )
+            if( p_prgm )
             {
                 input_ClockManageRef( p_sys->p_input, p_prgm, i_pcr * 9 / 100);
             }