diff options
author | Haakon Sporsheim <haakon.sporsheim@tandberg.com> | 2008-05-07 15:28:06 +0000 |
---|---|---|
committer | Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com> | 2008-05-07 15:28:06 +0000 |
commit | 368834ab4e959453d34e192ecfd480a263d8d727 (patch) | |
tree | 742f644ba0c9cff76b6652696136dcbd63ab869b | |
parent | dd1f932e3e667f3ed43ef83f333b2c2e6cd63cff (diff) |
sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame): Added checking of surface lost case after an uns...
Original commit message from CVS:
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.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | sys/directdraw/gstdirectdrawsink.c | 6 |
2 files changed, 14 insertions, 1 deletions
@@ -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 */ |