mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 04:31:06 +00:00
pad-monitor: allow flushing flow returns when pad is flushing
It should always be acceptable to return GST_FLOW_FLUSHING when the pad is flushing
This commit is contained in:
parent
a1775e75e5
commit
1860712098
1 changed files with 8 additions and 3 deletions
|
@ -856,10 +856,9 @@ gst_validate_pad_monitor_check_aggregated_return (GstValidatePadMonitor *
|
||||||
GstValidatePadMonitor *othermonitor;
|
GstValidatePadMonitor *othermonitor;
|
||||||
GstFlowReturn aggregated = GST_FLOW_NOT_LINKED;
|
GstFlowReturn aggregated = GST_FLOW_NOT_LINKED;
|
||||||
gboolean found_a_pad = FALSE;
|
gboolean found_a_pad = FALSE;
|
||||||
|
GstPad *pad = GST_VALIDATE_PAD_MONITOR_GET_PAD (monitor);
|
||||||
|
|
||||||
iter =
|
iter = gst_pad_iterate_internal_links (pad);
|
||||||
gst_pad_iterate_internal_links (GST_VALIDATE_PAD_MONITOR_GET_PAD
|
|
||||||
(monitor));
|
|
||||||
done = FALSE;
|
done = FALSE;
|
||||||
while (!done) {
|
while (!done) {
|
||||||
GValue value = { 0, };
|
GValue value = { 0, };
|
||||||
|
@ -902,6 +901,11 @@ gst_validate_pad_monitor_check_aggregated_return (GstValidatePadMonitor *
|
||||||
if (aggregated == GST_FLOW_OK || aggregated == GST_FLOW_EOS) {
|
if (aggregated == GST_FLOW_OK || aggregated == GST_FLOW_EOS) {
|
||||||
/* those are acceptable situations */
|
/* those are acceptable situations */
|
||||||
|
|
||||||
|
if (GST_PAD_IS_FLUSHING (pad) && ret == GST_FLOW_FLUSHING) {
|
||||||
|
/* pad is flushing, always acceptable to return flushing */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (monitor->is_eos && ret == GST_FLOW_EOS) {
|
if (monitor->is_eos && ret == GST_FLOW_EOS) {
|
||||||
/* this element received eos and returned eos */
|
/* this element received eos and returned eos */
|
||||||
return;
|
return;
|
||||||
|
@ -1125,6 +1129,7 @@ gst_validate_pad_monitor_flush (GstValidatePadMonitor * pad_monitor)
|
||||||
pad_monitor->timestamp_range_end = GST_CLOCK_TIME_NONE;
|
pad_monitor->timestamp_range_end = GST_CLOCK_TIME_NONE;
|
||||||
pad_monitor->has_segment = FALSE;
|
pad_monitor->has_segment = FALSE;
|
||||||
pad_monitor->is_eos = FALSE;
|
pad_monitor->is_eos = FALSE;
|
||||||
|
pad_monitor->last_flow_return = GST_FLOW_OK;
|
||||||
gst_caps_replace (&pad_monitor->last_caps, NULL);
|
gst_caps_replace (&pad_monitor->last_caps, NULL);
|
||||||
pad_monitor->caps_is_audio = pad_monitor->caps_is_video = FALSE;
|
pad_monitor->caps_is_audio = pad_monitor->caps_is_video = FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue