[MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps...
authorHaakon Sporsheim <haakon.sporsheim@tandberg.com>
Wed, 7 May 2008 15:09:10 +0000 (15:09 +0000)
committerJan Schmidt <thaytan@noraisin.net>
Sat, 16 May 2009 00:29:18 +0000 (01:29 +0100)
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.

sys/directdraw/gstdirectdrawsink.c

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) {