[vlc-devel] [PATCH 3/4] video_output: try to create a decoder device even if creating the window failed

Steve Lhomme robux4 at ycbcr.xyz
Mon Jan 13 12:07:33 CET 2020


---
 src/video_output/video_output.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 5d583dbe0ca..9540707ab2b 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -2099,20 +2099,18 @@ vlc_decoder_device *vout_GetDevice(const vout_device_configuration_t *cfg)
     assert(cfg->fmt != NULL);
     vout_thread_sys_t *sys = cfg->vout->p;
 
-    if (!VoutCheckFormat(cfg->fmt))
-        return NULL;
-
-    video_format_t original;
-    VoutFixFormat(&original, cfg->fmt);
-
     vlc_mutex_lock(&sys->window_lock);
-    int res = EnableWindowLocked(cfg->vout, &original);
-    if (res == 0 && sys->dec_device == NULL)
+    if (VoutCheckFormat(cfg->fmt))
+    {
+        video_format_t original;
+        VoutFixFormat(&original, cfg->fmt);
+
+        EnableWindowLocked(cfg->vout, &original);
+        video_format_Clean(&original);
+    }
+    if (sys->dec_device == NULL)
         sys->dec_device = vlc_decoder_device_Create(&cfg->vout->obj, sys->display_cfg.window);
     dec_device = sys->dec_device ? vlc_decoder_device_Hold( sys->dec_device ) : NULL;
     vlc_mutex_unlock(&sys->window_lock);
-    video_format_Clean(&original);
-    if (res != 0)
-        return NULL;
     return dec_device;
 }
-- 
2.17.1



More information about the vlc-devel mailing list