vlc | branch: master | Rémi Denis-Courmont <r...@remlab.net> | Sun Dec  9 
12:50:59 2018 +0200| [706d291795ca4f5740757ec7bd65af7a6bd86dd1] | committer: 
Rémi Denis-Courmont

vout: merge vout_OpenWrapper() and vout_InitWrapper()

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

 src/video_output/video_output.c  |  5 -----
 src/video_output/vout_internal.h |  3 +--
 src/video_output/vout_wrapper.c  | 45 ++++++++++++++++++----------------------
 3 files changed, 21 insertions(+), 32 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 591b648a03..0fa136b454 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1449,11 +1449,6 @@ static int ThreadStart(vout_thread_t *vout, 
vout_display_cfg_t *cfg)
 
     if (vout_OpenWrapper(vout, vout->p->splitter_name, cfg))
         goto error;
-    if (vout_InitWrapper(vout))
-    {
-        vout_CloseWrapper(vout, cfg);
-        goto error;
-    }
     assert(vout->p->decoder_pool && vout->p->private_pool);
 
     vout->p->displayed.current       = NULL;
diff --git a/src/video_output/vout_internal.h b/src/video_output/vout_internal.h
index 5abf91e744..a696549425 100644
--- a/src/video_output/vout_internal.h
+++ b/src/video_output/vout_internal.h
@@ -214,9 +214,8 @@ void vout_IntfInit( vout_thread_t * );
 void vout_IntfReinit( vout_thread_t * );
 
 /* */
-int  vout_OpenWrapper (vout_thread_t *, const char *, const vout_display_cfg_t 
*);
+int  vout_OpenWrapper(vout_thread_t *, const char *, vout_display_cfg_t *);
 void vout_CloseWrapper(vout_thread_t *, vout_display_cfg_t *);
-int  vout_InitWrapper(vout_thread_t *);
 void vout_EndWrapper(vout_thread_t *);
 void vout_ManageWrapper(vout_thread_t *);
 
diff --git a/src/video_output/vout_wrapper.c b/src/video_output/vout_wrapper.c
index 102370c6b2..c151d42391 100644
--- a/src/video_output/vout_wrapper.c
+++ b/src/video_output/vout_wrapper.c
@@ -58,43 +58,27 @@ static void NoDrInit(vout_thread_sys_t *sys)
  *
  *****************************************************************************/
 int vout_OpenWrapper(vout_thread_t *vout,
-                     const char *splitter_name, const vout_display_cfg_t *cfg)
+                     const char *splitter_name, vout_display_cfg_t *cfg)
 {
     vout_thread_sys_t *sys = vout->p;
+    vout_display_t *vd;
+
     msg_Dbg(vout, "Opening vout display wrapper");
 
     /* */
     char *modlist = var_InheritString(vout, "vout");
 
     if (splitter_name)
-        sys->display.vd = vout_NewSplitter(vout, &vout->p->original, cfg, 
modlist, splitter_name);
+        vd = vout_NewSplitter(vout, &vout->p->original, cfg, modlist, 
splitter_name);
     else
-        sys->display.vd = vout_NewDisplay(vout, &vout->p->original, cfg, 
modlist);
+        vd = vout_NewDisplay(vout, &vout->p->original, cfg, modlist);
     free(modlist);
 
-    if (!sys->display.vd)
+    if (vd == NULL)
         return VLC_EGENERIC;
 
-    /* */
-#ifdef _WIN32
-    var_Create(vout, "video-wallpaper", VLC_VAR_BOOL|VLC_VAR_DOINHERIT);
-    var_AddCallback(vout, "video-wallpaper", Forward, NULL);
-#endif
-
-    /* */
     sys->decoder_pool = NULL;
 
-    return VLC_SUCCESS;
-}
-
-/*****************************************************************************
- *
- *****************************************************************************/
-int vout_InitWrapper(vout_thread_t *vout)
-{
-    vout_thread_sys_t *sys = vout->p;
-    vout_display_t *vd = sys->display.vd;
-
     sys->display.use_dr = !vout_IsDisplayFiltered(vd);
     const bool allow_dr = !vd->info.has_pictures_invalid && !vd->info.is_slow 
&& sys->display.use_dr;
     const unsigned private_picture  = 4; /* XXX 3 for filter, 1 for SPU */
@@ -107,7 +91,7 @@ int vout_InitWrapper(vout_thread_t *vout)
                                                         reserved_picture + 
decoder_picture) : 3;
     picture_pool_t *display_pool = vout_display_Pool(vd, display_pool_size);
     if (display_pool == NULL)
-        return VLC_EGENERIC;
+        goto error;
 
 #ifndef NDEBUG
     if ( picture_pool_GetSize(display_pool) < display_pool_size )
@@ -126,7 +110,7 @@ int vout_InitWrapper(vout_thread_t *vout)
                                        __MAX(VOUT_MAX_PICTURES,
                                              reserved_picture + 
decoder_picture - DISPLAY_PICTURE_COUNT));
         if (!sys->decoder_pool)
-            return VLC_EGENERIC;
+            goto error;
         if (allow_dr) {
             msg_Warn(vout, "Not enough direct buffers, using system memory");
             sys->dpb_size = 0;
@@ -141,9 +125,20 @@ int vout_InitWrapper(vout_thread_t *vout)
         if (sys->decoder_pool != sys->display_pool)
             picture_pool_Release(sys->decoder_pool);
         sys->display_pool = sys->decoder_pool = NULL;
-        return VLC_EGENERIC;
+        goto error;
     }
+
+    sys->display.vd = vd;
+
+#ifdef _WIN32
+    var_Create(vout, "video-wallpaper", VLC_VAR_BOOL|VLC_VAR_DOINHERIT);
+    var_AddCallback(vout, "video-wallpaper", Forward, NULL);
+#endif
     return VLC_SUCCESS;
+
+error:
+    vout_DeleteDisplay(vd, cfg);
+    return VLC_EGENERIC;
 }
 
 /*****************************************************************************

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to