[vlc-commits] video_output: split vout_Request to have a function to enable the vout window

Steve Lhomme git at videolan.org
Wed Oct 9 10:15:53 CEST 2019


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Wed Sep 25 13:59:36 2019 +0200| [9955e94aa0f3dc107acb3b82e98c2def873791b7] | committer: Steve Lhomme

video_output: split vout_Request to have a function to enable the vout window

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

 src/video_output/video_output.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 21d55bc89c..ffd2d3b747 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1915,7 +1915,7 @@ vout_thread_t *vout_Hold(vout_thread_t *vout)
     return vout;
 }
 
-int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
+static int VoutEnableWindow(const vout_configuration_t *cfg)
 {
     vout_thread_t *vout = cfg->vout;
     vout_thread_sys_t *sys = vout->p;
@@ -1923,7 +1923,6 @@ int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
     assert(!sys->dummy);
     assert(vout != NULL);
     assert(cfg->fmt != NULL);
-    assert(cfg->clock != NULL);
 
     if (!VoutCheckFormat(cfg->fmt))
         return -1;
@@ -1967,19 +1966,33 @@ int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
 
         if (vout_window_Enable(sys->display_cfg.window, &wcfg)) {
             vlc_mutex_unlock(&sys->window_lock);
-            goto error;
+            msg_Err(vout, "window enabling failed");
+            video_format_Clean(&sys->original);
+            return -1;
         }
         sys->window_enabled = true;
     } else
         vout_UpdateWindowSizeLocked(vout);
+    vlc_mutex_unlock(&sys->window_lock);
+
+    return 0;
+}
+
+int vout_Request(const vout_configuration_t *cfg, input_thread_t *input)
+{
+    vout_thread_t *vout = cfg->vout;
+    vout_thread_sys_t *sys = vout->p;
+
+    assert(cfg->clock != NULL);
+
+    if (VoutEnableWindow(cfg) != 0)
+        return -1;
 
     sys->delay = 0;
     sys->rate = 1.f;
     sys->clock = cfg->clock;
     sys->delay = 0;
 
-    vlc_mutex_unlock(&sys->window_lock);
-
     if (vout_Start(vout, cfg))
     {
         vlc_mutex_lock(&sys->window_lock);



More information about the vlc-commits mailing list