]> git.sesse.net Git - vlc/commitdiff
Fixed a segfault with opengl provider.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 26 Jun 2010 21:07:09 +0000 (23:07 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Sun, 27 Jun 2010 17:03:19 +0000 (19:03 +0200)
src/video_output/display.c

index af80213e150ac20236b5820bc85dc1a2fa24bca0..af73be86988c14da809cd7d64e8dab2efc7b0cde 100644 (file)
@@ -681,12 +681,29 @@ static vout_window_t *VoutDisplayNewWindow(vout_display_t *vd, const vout_window
 {
     vout_display_owner_sys_t *osys = vd->owner.sys;
 
+#ifdef ALLOW_DUMMY_VOUT
+    if (!osys->vout->p) {
+        vout_window_cfg_t cfg_override = *cfg;
+
+        if (!var_InheritBool(osys->vout, "embedded-video"))
+            cfg_override.is_standalone = true;
+
+        return vout_window_New(VLC_OBJECT(osys->vout), NULL, &cfg_override);
+    }
+#endif
     return vout_NewDisplayWindow(osys->vout, vd, cfg);
 }
 static void VoutDisplayDelWindow(vout_display_t *vd, vout_window_t *window)
 {
     vout_display_owner_sys_t *osys = vd->owner.sys;
 
+#ifdef ALLOW_DUMMY_VOUT
+    if (!osys->vout->p) {
+        if( window)
+            vout_window_Delete(window);
+        return;
+    }
+#endif
     vout_DeleteDisplayWindow(osys->vout, vd, window);
 }