diff --git a/ChangeLog b/ChangeLog index 22d7a28c10..090463e079 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-07-19 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (gst_ximagesink_change_state), + (gst_ximagesink_set_property): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state), + (gst_xvimagesink_set_property): + make sure SYNCHRONOUS is respected after getting the X context + 2004-07-18 Thomas Vander Stichele * gst/matroska/matroska-demux.c: diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c index 0d232d5df7..5e8f10fb2a 100644 --- a/sys/ximage/ximagesink.c +++ b/sys/ximage/ximagesink.c @@ -869,6 +869,10 @@ gst_ximagesink_change_state (GstElement * element) ximagesink->xcontext = gst_ximagesink_xcontext_get (ximagesink); if (!ximagesink->xcontext) return GST_STATE_FAILURE; + /* call XSynchronize with the current value of synchronous */ + GST_DEBUG_OBJECT (ximagesink, "XSynchronize called with %s", + ximagesink->synchronous ? "TRUE" : "FALSE"); + XSynchronize (ximagesink->xcontext->disp, ximagesink->synchronous); break; case GST_STATE_READY_TO_PAUSED: if (ximagesink->xwindow) @@ -1269,6 +1273,8 @@ gst_ximagesink_set_property (GObject * object, guint prop_id, case ARG_SYNCHRONOUS: ximagesink->synchronous = g_value_get_boolean (value); if (ximagesink->xcontext) { + GST_DEBUG_OBJECT (ximagesink, "XSynchronize called with %s", + ximagesink->synchronous ? "TRUE" : "FALSE"); XSynchronize (ximagesink->xcontext->disp, ximagesink->synchronous); } break; diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c index af4f7be177..22e6688c03 100644 --- a/sys/xvimage/xvimagesink.c +++ b/sys/xvimage/xvimagesink.c @@ -1164,6 +1164,10 @@ gst_xvimagesink_change_state (GstElement * element) if (!xvimagesink->xcontext && !(xvimagesink->xcontext = gst_xvimagesink_xcontext_get (xvimagesink))) return GST_STATE_FAILURE; + /* call XSynchronize with the current value of synchronous */ + GST_DEBUG_OBJECT (xvimagesink, "XSynchronize called with %s", + xvimagesink->synchronous ? "TRUE" : "FALSE"); + XSynchronize (xvimagesink->xcontext->disp, xvimagesink->synchronous); gst_xvimagesink_update_colorbalance (xvimagesink); break; case GST_STATE_READY_TO_PAUSED: @@ -1641,6 +1645,8 @@ gst_xvimagesink_set_property (GObject * object, guint prop_id, xvimagesink->synchronous = g_value_get_boolean (value); if (xvimagesink->xcontext) { XSynchronize (xvimagesink->xcontext->disp, xvimagesink->synchronous); + GST_DEBUG_OBJECT (xvimagesink, "XSynchronize called with %s", + xvimagesink->synchronous ? "TRUE" : "FALSE"); } break; default: