summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-10-16 16:25:05 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-10-18 14:22:47 +0200
commit54fe00f54abed31bc80af3d39c1b8d56289418d3 (patch)
tree25584b665867b3ef411843983793c036760f2df7
parent34755d7f8d47027ac8302e9fb5524d8e9888ab03 (diff)
eglglessink: Make sure to always reset the display region in start()
-rw-r--r--ext/eglgles/gsteglglessink.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/ext/eglgles/gsteglglessink.c b/ext/eglgles/gsteglglessink.c
index 2fbbf3bb8..ce2ee95c2 100644
--- a/ext/eglgles/gsteglglessink.c
+++ b/ext/eglgles/gsteglglessink.c
@@ -1140,8 +1140,7 @@ render_thread_func (GstEglGlesSink * eglglessink)
}
}
- if (!gst_eglglessink_context_make_current (eglglessink, FALSE))
- return FALSE;
+ gst_eglglessink_context_make_current (eglglessink, FALSE);
if (eglglessink->eglglesctx.surface) {
eglDestroySurface (eglglessink->eglglesctx.display,
@@ -1186,6 +1185,15 @@ gst_eglglessink_start (GstEglGlesSink * eglglessink)
goto HANDLE_ERROR;
}
+ GST_OBJECT_LOCK (eglglessink);
+ /* Reset display region
+ * XXX: Should probably keep old ones if set_render_rect()
+ * has been called.
+ */
+ eglglessink->display_region.w = 0;
+ eglglessink->display_region.h = 0;
+ GST_OBJECT_UNLOCK (eglglessink);
+
eglglessink->last_flow = GST_FLOW_OK;
gst_data_queue_set_flushing (eglglessink->queue, FALSE);