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 84e5b66..b9e54a0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 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
          (gst_directdraw_sink_buffer_alloc):
          Make it so that gst_directdraw_sink_buffer_alloc uses the right
index 9d34cf2..d049c57 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) {