mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
resync on discont events
Original commit message from CVS: resync on discont events
This commit is contained in:
parent
2ce9feebb7
commit
a92a485542
1 changed files with 21 additions and 0 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue