mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 14:06:23 +00:00
[MOVED FROM GST-P-FARSIGHT] Ignore upstream newsegment events in mimdec
20080725193358-3e2dc-7c0f22386e0208a45eae9c1d7eb62e86f61d14ba.gz
This commit is contained in:
parent
a66cd25919
commit
ca53565719
1 changed files with 23 additions and 0 deletions
|
@ -67,6 +67,8 @@ static GstStateChangeReturn
|
||||||
gst_mimdec_change_state (GstElement *element,
|
gst_mimdec_change_state (GstElement *element,
|
||||||
GstStateChange transition);
|
GstStateChange transition);
|
||||||
|
|
||||||
|
static gboolean gst_mimdec_sink_event (GstPad *pad, GstEvent *event);
|
||||||
|
|
||||||
|
|
||||||
GST_BOILERPLATE (GstMimDec, gst_mimdec, GstElement, GST_TYPE_ELEMENT);
|
GST_BOILERPLATE (GstMimDec, gst_mimdec, GstElement, GST_TYPE_ELEMENT);
|
||||||
|
|
||||||
|
@ -114,6 +116,7 @@ gst_mimdec_init (GstMimDec *mimdec, GstMimDecClass *klass)
|
||||||
gst_static_pad_template_get (&sink_factory), "sink");
|
gst_static_pad_template_get (&sink_factory), "sink");
|
||||||
gst_element_add_pad (GST_ELEMENT (mimdec), mimdec->sinkpad);
|
gst_element_add_pad (GST_ELEMENT (mimdec), mimdec->sinkpad);
|
||||||
gst_pad_set_chain_function (mimdec->sinkpad, gst_mimdec_chain);
|
gst_pad_set_chain_function (mimdec->sinkpad, gst_mimdec_chain);
|
||||||
|
gst_pad_set_event_function (mimdec->sinkpad, gst_mimdec_sink_event);
|
||||||
|
|
||||||
mimdec->srcpad = gst_pad_new_from_template (
|
mimdec->srcpad = gst_pad_new_from_template (
|
||||||
gst_static_pad_template_get (&src_factory), "src");
|
gst_static_pad_template_get (&src_factory), "src");
|
||||||
|
@ -341,3 +344,23 @@ gst_mimdec_change_state (GstElement *element, GstStateChange transition)
|
||||||
|
|
||||||
return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
|
return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gst_mimdec_sink_event (GstPad *pad, GstEvent *event)
|
||||||
|
{
|
||||||
|
gboolean res = TRUE;
|
||||||
|
GstMimDec *mimdec = GST_MIMDEC (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ignore upstream newsegment event, its EVIL, we should implement
|
||||||
|
* proper seeking instead
|
||||||
|
*/
|
||||||
|
if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT)
|
||||||
|
gst_event_unref (event);
|
||||||
|
else
|
||||||
|
res = gst_pad_push_event (mimdec->srcpad, event);
|
||||||
|
|
||||||
|
gst_object_unref (mimdec);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue