[vlc-devel] [PATCH 2/3] [RFC] playlist: add an interim "sout" so that the running input thread can be updated

Steve Lhomme robux4 at videolabs.io
Tue Apr 26 15:10:56 CEST 2016


---
 src/playlist/engine.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/playlist/engine.c b/src/playlist/engine.c
index 6000a37..8f3dce7 100644
--- a/src/playlist/engine.c
+++ b/src/playlist/engine.c
@@ -190,6 +190,23 @@ static int VideoSplitterCallback( vlc_object_t *p_this, char const *psz_cmd,
     return VLC_SUCCESS;
 }
 
+static int SoutCallback( vlc_object_t *p_this, char const *psz_cmd,
+                         vlc_value_t oldval, vlc_value_t newval, void *a )
+{
+    VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(newval); VLC_UNUSED(a);
+    playlist_t *p_playlist = (playlist_t*)p_this;
+    playlist_private_t *p_sys = pl_priv(p_playlist);
+
+    PL_LOCK;
+    if ( p_sys->p_input != NULL )
+    {
+        var_SetString( p_sys->p_input, "sout", newval.psz_string );
+        input_RequestUpdateOutput( p_sys->p_input );
+    }
+    PL_UNLOCK;
+    return VLC_SUCCESS;
+}
+
 /**
  * Create playlist
  *
@@ -484,6 +501,10 @@ static void VariablesInit( playlist_t *p_playlist )
     var_Create( p_playlist, "mute", VLC_VAR_BOOL );
     var_Create( p_playlist, "volume", VLC_VAR_FLOAT );
     var_SetFloat( p_playlist, "volume", -1.f );
+
+    /* Sout for the renderer */
+    var_Create( p_playlist, "sout", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
+    var_AddCallback( p_playlist, "sout", SoutCallback, NULL );
 }
 
 playlist_item_t * playlist_CurrentPlayingItem( playlist_t * p_playlist )
-- 
2.7.0



More information about the vlc-devel mailing list