sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps): Fixed mid stream...
authorHaakon Sporsheim <haakon.sporsheim@tandberg.com>
Wed, 7 May 2008 15:09:10 +0000 (15:09 +0000)
committerOle André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
Wed, 7 May 2008 15:09:10 +0000 (15:09 +0000)
Original commit message from CVS:
patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
* sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps):
Fixed mid stream resolution change bug, the offscreen surface is now
released when set_caps is called.
Partially fixes #520885.

ChangeLog
sys/directdraw/gstdirectdrawsink.c

index 84e5b660f3df44500ba3b3cb67b151c24ba6c195..b9e54a09e393903524179e3989aeb1b92283489d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-05-07  Ole André Vadla Ravnås  <ole.andre.ravnas at tandberg com>
+
+       patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
+
+       * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps):
+         Fixed mid stream resolution change bug, the offscreen surface is now
+         released when set_caps is called.
+         Partially fixes #520885.
+
 2008-05-07  Ole André Vadla Ravnås  <ole.andre.ravnas at tandberg com>
 
        * sys/directdraw/gstdirectdrawsink.c
index 9d34cf2230b768fb4e5eed3059416dbd28d680fa..d049c5754362ede7d0d46f78be9a402fa6a331c9 100644 (file)
@@ -510,6 +510,12 @@ gst_directdraw_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
         (GetSystemMetrics (SM_CYSIZEFRAME) * 2), SWP_SHOWWINDOW | SWP_NOMOVE);
   }
 
+  /* release the surface, we have to recreate it! */
+  if (ddrawsink->offscreen_surface) {
+    IDirectDrawSurface7_Release (ddrawsink->offscreen_surface);
+    ddrawsink->offscreen_surface = NULL;
+  }
+
   /* create an offscreen surface with the caps */
   ret = gst_directdraw_sink_check_offscreen_surface (ddrawsink);
   if (!ret) {