[vlc-commits] added start playback in paused mode (#2936)

Aleksandr Pasechnik git at videolan.org
Wed Mar 25 15:51:41 CET 2015


vlc | branch: master | Aleksandr Pasechnik <al at megamicron.net> | Fri Mar 13 01:49:52 2015 +0000| [dc130ca2b358ed5da3cb783f222eb28cad6aea9f] | committer: Jean-Baptiste Kempf

added start playback in paused mode (#2936)

Added a boolean Playlist preference called start-pause.

Setting the preference causes the src/input/input.c Run function to call the
ControlPause function after Init finishes successfully.

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

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

 NEWS                |    1 +
 src/input/input.c   |    7 +++++++
 src/libvlc-module.c |    5 +++++
 3 files changed, 13 insertions(+)

diff --git a/NEWS b/NEWS
index b2e443b..420a4be 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ Changes between 2.2.x and 3.0.0-git:
 
 Core:
  * Support wayland surface type
+ * Allow to start the video paused on the first frame
 
 Access:
  * Support HDS (Http Dynamic Streaming) from Adobe (f4m, f4v, etc.)
diff --git a/src/input/input.c b/src/input/input.c
index 23ee041..f1d9e8f 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -72,6 +72,7 @@ static inline int ControlPop( input_thread_t *, int *, vlc_value_t *, mtime_t i_
 static void       ControlRelease( int i_type, vlc_value_t val );
 static bool       ControlIsSeekRequest( int i_type );
 static bool       Control( input_thread_t *, int, vlc_value_t );
+static void       ControlPause( input_thread_t *, mtime_t );
 
 static int  UpdateTitleSeekpointFromDemux( input_thread_t * );
 static void UpdateGenericFromDemux( input_thread_t * );
@@ -539,6 +540,12 @@ static void *Run( void *obj )
 
     if( !Init( p_input ) )
     {
+        if( var_InheritBool( p_input, "start-paused" ) )
+        {
+            const mtime_t i_control_date = mdate();
+            ControlPause( p_input, i_control_date );
+        }
+
         MainLoop( p_input, true ); /* FIXME it can be wrong (like with VLM) */
 
         /* Clean up */
diff --git a/src/libvlc-module.c b/src/libvlc-module.c
index a2474cb..46180f5 100644
--- a/src/libvlc-module.c
+++ b/src/libvlc-module.c
@@ -1133,6 +1133,10 @@ static const char *const psz_recursive_list_text[] = {
 #define PAP_LONGTEXT N_( \
     "Pause each item in the playlist on the last frame." )
 
+#define SP_TEXT N_("Start paused")
+#define SP_LONGTEXT N_( \
+    "Pause each item in the playlist on the first frame." )
+
 #define AUTOSTART_TEXT N_( "Auto start" )
 #define AUTOSTART_LONGTEXT N_( "Automatically start playing the playlist " \
                 "content once it's loaded." )
@@ -1994,6 +1998,7 @@ vlc_module_begin ()
         change_safe()
     add_bool( "play-and-pause", 0, PAP_TEXT, PAP_LONGTEXT, true )
         change_safe()
+    add_bool( "start-paused", 0, SP_TEXT, SP_LONGTEXT, false )
     add_bool( "playlist-autostart", true,
               AUTOSTART_TEXT, AUTOSTART_LONGTEXT, false )
     add_bool( "playlist-cork", true, CORK_TEXT, CORK_LONGTEXT, false )



More information about the vlc-commits mailing list