ext/wavpack/gstwavpackparse.c: Add handling for segment seeks.

Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_loop):
Add handling for segment seeks.
This commit is contained in:
Sebastian Dröge 2007-05-02 16:19:58 +00:00
parent 8a0d262daf
commit 4604b1f1a2

View file

@ -1014,15 +1014,29 @@ pause:
gst_pad_pause_task (parse->sinkpad); gst_pad_pause_task (parse->sinkpad);
if (GST_FLOW_IS_FATAL (flow_ret) || flow_ret == GST_FLOW_NOT_LINKED) { if (GST_FLOW_IS_FATAL (flow_ret) || flow_ret == GST_FLOW_NOT_LINKED) {
if (flow_ret == GST_FLOW_UNEXPECTED) { if (flow_ret == GST_FLOW_UNEXPECTED && parse->srcpad) {
GST_LOG_OBJECT (parse, "Sending EOS, at end of stream"); if (parse->segment.flags & GST_SEEK_FLAG_SEGMENT) {
GstClockTime stop;
GST_LOG_OBJECT (parse, "Sending segment done");
if ((stop = parse->segment.stop) == -1)
stop = parse->segment.duration;
gst_element_post_message (GST_ELEMENT_CAST (parse),
gst_message_new_segment_done (GST_OBJECT_CAST (parse),
parse->segment.format, stop));
} else {
GST_LOG_OBJECT (parse, "Sending EOS, at end of stream");
gst_pad_push_event (parse->srcpad, gst_event_new_eos ());
}
} else { } else {
GST_ELEMENT_ERROR (parse, STREAM, FAILED, GST_ELEMENT_ERROR (parse, STREAM, FAILED,
(_("Internal data stream error.")), (_("Internal data stream error.")),
("stream stopped, reason %s", reason)); ("stream stopped, reason %s", reason));
if (parse->srcpad)
gst_pad_push_event (parse->srcpad, gst_event_new_eos ());
} }
if (parse->srcpad)
gst_pad_push_event (parse->srcpad, gst_event_new_eos ());
} }
return; return;
} }