diff --git a/ChangeLog b/ChangeLog index eaad233ee8..ee5951dcd5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2006-02-19 Julien MOUTTE + + * ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init), + (gst_text_overlay_finalize), (gst_text_overlay_init), + (gst_text_overlay_setcaps), (gst_text_overlay_src_event), + (gst_text_overlay_render_text), (gst_text_overlay_text_pad_link), + (gst_text_overlay_text_event), (gst_text_overlay_video_event), + (gst_text_overlay_pop_text), (gst_text_overlay_text_chain), + (gst_text_overlay_video_chain), (gst_text_overlay_change_state): + Fix state change deadlock. + 2006-02-19 Julien MOUTTE * ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init), diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c index 0a371b340f..9566b2d315 100644 --- a/ext/pango/gsttextoverlay.c +++ b/ext/pango/gsttextoverlay.c @@ -1235,13 +1235,16 @@ static GstStateChangeReturn gst_text_overlay_change_state (GstElement * element, GstStateChange transition) { GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - - /*GstTextOverlay *overlay = GST_TEXT_OVERLAY (element); */ + GstTextOverlay *overlay = GST_TEXT_OVERLAY (element); switch (transition) { case GST_STATE_CHANGE_READY_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_OBJECT_LOCK (overlay); + overlay->text_flushing = TRUE; + gst_text_overlay_pop_text (overlay); + GST_OBJECT_UNLOCK (overlay); break; default: break;