mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 05:16:13 +00:00
mxfdemux: Don't use GST_FLOW_IS_FATAL()
This commit is contained in:
parent
f6713f9c3b
commit
dd8ae4e027
1 changed files with 32 additions and 34 deletions
|
@ -2761,44 +2761,42 @@ pause:
|
||||||
GST_LOG_OBJECT (demux, "pausing task, reason %s", reason);
|
GST_LOG_OBJECT (demux, "pausing task, reason %s", reason);
|
||||||
gst_pad_pause_task (pad);
|
gst_pad_pause_task (pad);
|
||||||
|
|
||||||
if (GST_FLOW_IS_FATAL (ret) || ret == GST_FLOW_NOT_LINKED) {
|
if (ret == GST_FLOW_UNEXPECTED) {
|
||||||
if (ret == GST_FLOW_UNEXPECTED) {
|
/* perform EOS logic */
|
||||||
/* perform EOS logic */
|
if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) {
|
||||||
if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) {
|
gint64 stop;
|
||||||
gint64 stop;
|
GstMessage *m;
|
||||||
GstMessage *m;
|
|
||||||
|
|
||||||
/* for segment playback we need to post when (in stream time)
|
/* for segment playback we need to post when (in stream time)
|
||||||
* we stopped, this is either stop (when set) or the duration. */
|
* we stopped, this is either stop (when set) or the duration. */
|
||||||
if ((stop = demux->segment.stop) == -1)
|
if ((stop = demux->segment.stop) == -1)
|
||||||
stop = demux->segment.duration;
|
stop = demux->segment.duration;
|
||||||
|
|
||||||
GST_LOG_OBJECT (demux, "Sending segment done, at end of segment");
|
GST_LOG_OBJECT (demux, "Sending segment done, at end of segment");
|
||||||
m = gst_message_new_segment_done (GST_OBJECT_CAST (demux),
|
m = gst_message_new_segment_done (GST_OBJECT_CAST (demux),
|
||||||
GST_FORMAT_TIME, stop);
|
GST_FORMAT_TIME, stop);
|
||||||
gst_message_set_seqnum (m, demux->seqnum);
|
gst_message_set_seqnum (m, demux->seqnum);
|
||||||
gst_element_post_message (GST_ELEMENT_CAST (demux), m);
|
gst_element_post_message (GST_ELEMENT_CAST (demux), m);
|
||||||
} else {
|
|
||||||
GstEvent *e;
|
|
||||||
|
|
||||||
/* normal playback, send EOS to all linked pads */
|
|
||||||
GST_LOG_OBJECT (demux, "Sending EOS, at end of stream");
|
|
||||||
e = gst_event_new_eos ();
|
|
||||||
gst_event_set_seqnum (e, demux->seqnum);
|
|
||||||
if (!gst_mxf_demux_push_src_event (demux, e)) {
|
|
||||||
GST_WARNING_OBJECT (demux, "failed pushing EOS on streams");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
GstEvent *e;
|
GstEvent *e;
|
||||||
|
|
||||||
GST_ELEMENT_ERROR (demux, STREAM, FAILED,
|
/* normal playback, send EOS to all linked pads */
|
||||||
("Internal data stream error."),
|
GST_LOG_OBJECT (demux, "Sending EOS, at end of stream");
|
||||||
("stream stopped, reason %s", reason));
|
|
||||||
e = gst_event_new_eos ();
|
e = gst_event_new_eos ();
|
||||||
gst_event_set_seqnum (e, demux->seqnum);
|
gst_event_set_seqnum (e, demux->seqnum);
|
||||||
gst_mxf_demux_push_src_event (demux, e);
|
if (!gst_mxf_demux_push_src_event (demux, e)) {
|
||||||
|
GST_WARNING_OBJECT (demux, "failed pushing EOS on streams");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_UNEXPECTED) {
|
||||||
|
GstEvent *e;
|
||||||
|
|
||||||
|
GST_ELEMENT_ERROR (demux, STREAM, FAILED,
|
||||||
|
("Internal data stream error."),
|
||||||
|
("stream stopped, reason %s", reason));
|
||||||
|
e = gst_event_new_eos ();
|
||||||
|
gst_event_set_seqnum (e, demux->seqnum);
|
||||||
|
gst_mxf_demux_push_src_event (demux, e);
|
||||||
}
|
}
|
||||||
gst_object_unref (demux);
|
gst_object_unref (demux);
|
||||||
return;
|
return;
|
||||||
|
@ -3078,8 +3076,8 @@ gst_mxf_demux_seek_push (GstMXFDemux * demux, GstEvent * event)
|
||||||
if (format != GST_FORMAT_TIME)
|
if (format != GST_FORMAT_TIME)
|
||||||
goto wrong_format;
|
goto wrong_format;
|
||||||
|
|
||||||
flush = !!(flags & GST_SEEK_FLAG_FLUSH);
|
flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
|
||||||
keyframe = !!(flags & GST_SEEK_FLAG_KEY_UNIT);
|
keyframe = ! !(flags & GST_SEEK_FLAG_KEY_UNIT);
|
||||||
|
|
||||||
/* Work on a copy until we are sure the seek succeeded. */
|
/* Work on a copy until we are sure the seek succeeded. */
|
||||||
memcpy (&seeksegment, &demux->segment, sizeof (GstSegment));
|
memcpy (&seeksegment, &demux->segment, sizeof (GstSegment));
|
||||||
|
@ -3211,8 +3209,8 @@ gst_mxf_demux_seek_pull (GstMXFDemux * demux, GstEvent * event)
|
||||||
if (rate <= 0.0)
|
if (rate <= 0.0)
|
||||||
goto wrong_rate;
|
goto wrong_rate;
|
||||||
|
|
||||||
flush = !!(flags & GST_SEEK_FLAG_FLUSH);
|
flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
|
||||||
keyframe = !!(flags & GST_SEEK_FLAG_KEY_UNIT);
|
keyframe = ! !(flags & GST_SEEK_FLAG_KEY_UNIT);
|
||||||
|
|
||||||
if (flush) {
|
if (flush) {
|
||||||
GstEvent *e;
|
GstEvent *e;
|
||||||
|
|
Loading…
Reference in a new issue