mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 11:32:38 +00:00
dvbsuboverlay: Don't send flush events
It is up to the element handling the seek to send flush events downstream, otherwise we end up with a situation where upstream would get unexpected GST_FLOW_FLUSHING
This commit is contained in:
parent
734d5a79c5
commit
1a1bfb19d4
1 changed files with 3 additions and 30 deletions
|
@ -403,36 +403,9 @@ gst_dvbsub_overlay_event_src (GstPad * pad, GstObject * parent,
|
||||||
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (parent);
|
GstDVBSubOverlay *render = GST_DVBSUB_OVERLAY (parent);
|
||||||
gboolean ret = FALSE;
|
gboolean ret = FALSE;
|
||||||
|
|
||||||
switch (GST_EVENT_TYPE (event)) {
|
gst_event_ref (event);
|
||||||
case GST_EVENT_SEEK:{
|
ret = gst_pad_push_event (render->video_sinkpad, event);
|
||||||
GstSeekFlags flags;
|
gst_pad_push_event (render->text_sinkpad, event);
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (render, "seek received, driving from here");
|
|
||||||
|
|
||||||
gst_event_parse_seek (event, NULL, NULL, &flags, NULL, NULL, NULL, NULL);
|
|
||||||
|
|
||||||
/* Flush downstream, only for flushing seek */
|
|
||||||
if (flags & GST_SEEK_FLAG_FLUSH)
|
|
||||||
gst_pad_push_event (render->srcpad, gst_event_new_flush_start ());
|
|
||||||
|
|
||||||
gst_dvbsub_overlay_flush_subtitles (render);
|
|
||||||
|
|
||||||
/* Seek on each sink pad */
|
|
||||||
gst_event_ref (event);
|
|
||||||
ret = gst_pad_push_event (render->video_sinkpad, event);
|
|
||||||
if (ret) {
|
|
||||||
ret = gst_pad_push_event (render->text_sinkpad, event);
|
|
||||||
} else {
|
|
||||||
gst_event_unref (event);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
gst_event_ref (event);
|
|
||||||
ret = gst_pad_push_event (render->video_sinkpad, event);
|
|
||||||
gst_pad_push_event (render->text_sinkpad, event);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue