summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--sys/directdraw/gstdirectdrawsink.c6
2 files changed, 14 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 77d7bf82..dd8c283c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,15 @@
patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
+ * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame):
+ Added checking of surface lost case after an unsuccessful
+ IDirectDrawSurface7_Lock() call.
+ If surface is lost, return GST_FLOW_OK.
+
+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_show_frame,
WndProc, gst_directdraw_sink_window_thread):
Improved Windows message loop and fixed window destruction issue.
diff --git a/sys/directdraw/gstdirectdrawsink.c b/sys/directdraw/gstdirectdrawsink.c
index a0df1c57..b5a93225 100644
--- a/sys/directdraw/gstdirectdrawsink.c
+++ b/sys/directdraw/gstdirectdrawsink.c
@@ -880,7 +880,11 @@ gst_directdraw_sink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
GST_CAT_WARNING_OBJECT (directdrawsink_debug, ddrawsink,
"gst_directdraw_sink_show_frame failed locking surface %s",
DDErrorString (hRes));
- return GST_FLOW_ERROR;
+
+ if (IDirectDrawSurface7_IsLost (ddrawsink->offscreen_surface) == DD_OK)
+ return GST_FLOW_OK;
+ else
+ return GST_FLOW_ERROR;
}
/* Write each line respecting the destination surface pitch */