diff options
author | Seungha Yang <sh.yang@lge.com> | 2017-01-01 14:06:28 +0900 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2017-02-02 12:39:34 +0200 |
commit | dab74c926b154e2b72955a8861bb916a2b50ac2f (patch) | |
tree | bcefeb0fa5d5429806125e05c28bf36ca2487cc3 | |
parent | 7bc2ab5472ccc608c81bca7b184e834fd10f7dfb (diff) | |
download | gstreamer-plugins-bad-dab74c926b154e2b72955a8861bb916a2b50ac2f.tar.gz |
adaptivedemux: Handle SEEK event only once
send_event() of parent class (i.e., GstBinClass) iterates srcpads
to send SEEK event. And performing it per srcpad is inefficient.
So, let's drop duplicated SEEK event by checking seqnum
https://bugzilla.gnome.org/show_bug.cgi?id=776612
-rw-r--r-- | gst-libs/gst/adaptivedemux/gstadaptivedemux.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c index 1a307c866..e5b11a4c2 100644 --- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c +++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c @@ -1550,6 +1550,13 @@ gst_adaptive_demux_src_event (GstPad * pad, GstObject * parent, switch (event->type) { case GST_EVENT_SEEK: { + guint32 seqnum = gst_event_get_seqnum (event); + if (seqnum == demux->priv->segment_seqnum) { + GST_LOG_OBJECT (pad, + "Drop duplicated SEEK event seqnum %" G_GUINT32_FORMAT, seqnum); + gst_event_unref (event); + return TRUE; + } return gst_adaptive_demux_handle_seek_event (demux, pad, event); } case GST_EVENT_RECONFIGURE:{ |