From dc130ca2b358ed5da3cb783f222eb28cad6aea9f Mon Sep 17 00:00:00 2001 From: Aleksandr Pasechnik Date: Fri, 13 Mar 2015 01:49:52 +0000 Subject: [PATCH] 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 --- NEWS | 1 + src/input/input.c | 7 +++++++ src/libvlc-module.c | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/NEWS b/NEWS index b2e443b674..420a4be7ed 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 23ee04166f..f1d9e8f7a3 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 a2474cb345..46180f5cf7 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 ) -- 2.39.2