From dac113a867b3803211edea217d41c155583c4cb3 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Sat, 24 Jun 2017 22:03:21 +0200 Subject: [PATCH] subparse: ensure serialized sending of segment event at proper time --- gst/subparse/gstsubparse.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c index f61c6d4e64..4cf354d9a4 100644 --- a/gst/subparse/gstsubparse.c +++ b/gst/subparse/gstsubparse.c @@ -284,7 +284,9 @@ gst_sub_parse_src_event (GstPad * pad, GstObject * parent, GstEvent * event) GST_DEBUG_OBJECT (self, "segment after seek: %" GST_SEGMENT_FORMAT, &self->segment); - self->need_segment = TRUE; + /* will mark need_segment when receiving segment from upstream, + * after FLUSH and all that has happened, + * rather than racing with chain */ } else { GST_WARNING_OBJECT (self, "seek to 0 bytes failed"); } @@ -1881,6 +1883,10 @@ gst_sub_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) * it received via its video pads instead, so all is fine then too) */ ret = TRUE; gst_event_unref (event); + /* in either case, let's not simply discard this event; + * trigger sending of the saved requested seek segment + * or the one taken here from upstream */ + self->need_segment = TRUE; break; } case GST_EVENT_FLUSH_START: