From a92a4855427c41c92509ca328e0e3698ec6133db Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 4 Mar 2003 22:04:05 +0000 Subject: [PATCH] resync on discont events Original commit message from CVS: resync on discont events --- gst/goom/gstgoom.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gst/goom/gstgoom.c b/gst/goom/gstgoom.c index 8af7557..9a75af8 100644 --- a/gst/goom/gstgoom.c +++ b/gst/goom/gstgoom.c @@ -198,6 +198,8 @@ gst_goom_init (GstGOOM *goom) gst_element_add_pad (GST_ELEMENT (goom), goom->sinkpad); gst_element_add_pad (GST_ELEMENT (goom), goom->srcpad); + GST_FLAG_SET (goom, GST_ELEMENT_EVENT_AWARE); + gst_pad_set_chain_function (goom->sinkpad, gst_goom_chain); gst_pad_set_link_function (goom->sinkpad, gst_goom_sinkconnect); @@ -232,6 +234,25 @@ gst_goom_chain (GstPad *pad, GstBuffer *bufin) GST_DEBUG (0, "GOOM: chainfunc called"); + if (GST_IS_EVENT (bufin)) { + GstEvent *event = GST_EVENT (bufin); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_DISCONTINUOUS: + { + gint64 value = 0; + + gst_event_discont_get_value (event, GST_FORMAT_TIME, &value); + + goom->next_time = value; + } + default: + gst_pad_event_default (pad, event); + break; + } + return; + } + samples_in = GST_BUFFER_SIZE (bufin) / sizeof (gint16); GST_DEBUG (0, "input buffer has %d samples", samples_in); -- 2.7.4