From 010e22b641a51989bd3b76563e029cdde3603fee Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Tue, 7 Mar 2006 21:56:09 +0000 Subject: [PATCH] ext/pango/gsttextoverlay.c: Fix wrong EOS handling on text pad. We were releasing the queued text buffer when we shou... Original commit message from CVS: 2006-03-07 Julien MOUTTE * ext/pango/gsttextoverlay.c: (gst_text_overlay_text_event), (gst_text_overlay_video_event): Fix wrong EOS handling on text pad. We were releasing the queued text buffer when we should keep it until video pad gets EOS or discard the text buffer because it's too old. That was eating the last subtitle buffer. Add some more debug. --- ChangeLog | 9 +++++++++ ext/pango/gsttextoverlay.c | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 75a8435590..d12b9dce75 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-03-07 Julien MOUTTE + + * ext/pango/gsttextoverlay.c: (gst_text_overlay_text_event), + (gst_text_overlay_video_event): Fix wrong EOS handling on text + pad. We were releasing the queued text buffer when we should keep + it until video pad gets EOS or discard the text buffer because it's + too old. That was eating the last subtitle buffer. Add some more + debug. + 2006-03-07 Tim-Philipp Müller * ext/pango/gsttextoverlay.c: (gst_text_overlay_render_text), diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c index 5f035bdfb4..865a20e669 100644 --- a/ext/pango/gsttextoverlay.c +++ b/ext/pango/gsttextoverlay.c @@ -1021,6 +1021,8 @@ gst_text_overlay_text_event (GstPad * pad, GstEvent * event) overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad)); + GST_DEBUG_OBJECT (pad, "received event %s", GST_EVENT_TYPE_NAME (event)); + switch (GST_EVENT_TYPE (event)) { case GST_EVENT_NEWSEGMENT: /* We just ignore those events from the text pad */ @@ -1047,7 +1049,8 @@ gst_text_overlay_text_event (GstPad * pad, GstEvent * event) GST_OBJECT_LOCK (overlay); /* We use flushing to make sure we return WRONG_STATE */ overlay->text_flushing = TRUE; - gst_text_overlay_pop_text (overlay); + /* We don't signal anything here because we want to keep the last queued + buffer until video pad receives EOS or discard the buffer */ GST_OBJECT_UNLOCK (overlay); gst_event_unref (event); ret = TRUE; @@ -1071,6 +1074,8 @@ gst_text_overlay_video_event (GstPad * pad, GstEvent * event) overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad)); + GST_DEBUG_OBJECT (pad, "received event %s", GST_EVENT_TYPE_NAME (event)); + switch (GST_EVENT_TYPE (event)) { case GST_EVENT_NEWSEGMENT: {