From 4e978f0ebc66c6822a8c4ec529f52a5c12788bfb Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Sun, 19 Feb 2006 12:05:23 +0000 Subject: [PATCH] ext/pango/gsttextoverlay.c: Fix state change deadlock. Original commit message from CVS: 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. --- ChangeLog | 11 +++++++++++ ext/pango/gsttextoverlay.c | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index eaad233..ee5951d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,17 @@ (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), + (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): * ext/pango/gsttextoverlay.h: Fix seeking both for muxed formats and subtitles files. diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c index 0a371b3..9566b2d 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; -- 2.7.4