mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-09 17:05:52 +00:00
omx: Don't handle FLUSHING and NOT_LINKED as errors
Also don't stop the task on NOT_LINKED. We're not a demuxer.
This commit is contained in:
parent
8b4ef3e1e5
commit
1bf4edf721
3 changed files with 21 additions and 6 deletions
|
@ -534,15 +534,20 @@ flow_error:
|
|||
gst_pad_push_event (GST_AUDIO_ENCODER_SRC_PAD (self),
|
||||
gst_event_new_eos ());
|
||||
gst_pad_pause_task (GST_AUDIO_ENCODER_SRC_PAD (self));
|
||||
} else if (flow_ret == GST_FLOW_NOT_LINKED || flow_ret < GST_FLOW_EOS) {
|
||||
self->started = FALSE;
|
||||
} else if (flow_ret < GST_FLOW_EOS) {
|
||||
GST_ELEMENT_ERROR (self, STREAM, FAILED, ("Internal data stream error."),
|
||||
("stream stopped, reason %s", gst_flow_get_name (flow_ret)));
|
||||
|
||||
gst_pad_push_event (GST_AUDIO_ENCODER_SRC_PAD (self),
|
||||
gst_event_new_eos ());
|
||||
gst_pad_pause_task (GST_AUDIO_ENCODER_SRC_PAD (self));
|
||||
self->started = FALSE;
|
||||
} else if (flow_ret == GST_FLOW_FLUSHING) {
|
||||
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
|
||||
gst_pad_pause_task (GST_AUDIO_ENCODER_SRC_PAD (self));
|
||||
self->started = FALSE;
|
||||
}
|
||||
self->started = FALSE;
|
||||
GST_AUDIO_ENCODER_STREAM_UNLOCK (self);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2177,7 +2177,8 @@ flow_error:
|
|||
gst_pad_push_event (GST_VIDEO_DECODER_SRC_PAD (self),
|
||||
gst_event_new_eos ());
|
||||
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
|
||||
} else if (flow_ret == GST_FLOW_NOT_LINKED || flow_ret < GST_FLOW_EOS) {
|
||||
self->started = FALSE;
|
||||
} else if (flow_ret < GST_FLOW_EOS) {
|
||||
GST_ELEMENT_ERROR (self, STREAM, FAILED,
|
||||
("Internal data stream error."), ("stream stopped, reason %s",
|
||||
gst_flow_get_name (flow_ret)));
|
||||
|
@ -2185,8 +2186,12 @@ flow_error:
|
|||
gst_pad_push_event (GST_VIDEO_DECODER_SRC_PAD (self),
|
||||
gst_event_new_eos ());
|
||||
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
|
||||
self->started = FALSE;
|
||||
} else if (flow_ret == GST_FLOW_FLUSHING) {
|
||||
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
|
||||
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
|
||||
self->started = FALSE;
|
||||
}
|
||||
self->started = FALSE;
|
||||
GST_VIDEO_DECODER_STREAM_UNLOCK (self);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -928,15 +928,20 @@ flow_error:
|
|||
gst_pad_push_event (GST_VIDEO_ENCODER_SRC_PAD (self),
|
||||
gst_event_new_eos ());
|
||||
gst_pad_pause_task (GST_VIDEO_ENCODER_SRC_PAD (self));
|
||||
} else if (flow_ret == GST_FLOW_NOT_LINKED || flow_ret < GST_FLOW_EOS) {
|
||||
self->started = FALSE;
|
||||
} else if (flow_ret < GST_FLOW_EOS) {
|
||||
GST_ELEMENT_ERROR (self, STREAM, FAILED, ("Internal data stream error."),
|
||||
("stream stopped, reason %s", gst_flow_get_name (flow_ret)));
|
||||
|
||||
gst_pad_push_event (GST_VIDEO_ENCODER_SRC_PAD (self),
|
||||
gst_event_new_eos ());
|
||||
gst_pad_pause_task (GST_VIDEO_ENCODER_SRC_PAD (self));
|
||||
self->started = FALSE;
|
||||
} else if (flow_ret == GST_FLOW_FLUSHING) {
|
||||
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
|
||||
gst_pad_pause_task (GST_VIDEO_ENCODER_SRC_PAD (self));
|
||||
self->started = FALSE;
|
||||
}
|
||||
self->started = FALSE;
|
||||
GST_VIDEO_ENCODER_STREAM_UNLOCK (self);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue