mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +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->sinkpad);
|
||||||
gst_element_add_pad (GST_ELEMENT (goom), goom->srcpad);
|
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_chain_function (goom->sinkpad, gst_goom_chain);
|
||||||
gst_pad_set_link_function (goom->sinkpad, gst_goom_sinkconnect);
|
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");
|
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);
|
samples_in = GST_BUFFER_SIZE (bufin) / sizeof (gint16);
|
||||||
|
|
||||||
GST_DEBUG (0, "input buffer has %d samples", samples_in);
|
GST_DEBUG (0, "input buffer has %d samples", samples_in);
|
||||||
|
|
Loading…
Reference in a new issue