mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-01 21:18:52 +00:00
pad-monitor: accept unexpected flow return if pad is eos
Track eos event and mark that pad as eos so that checking for the flow return knows when 'unexpected' is acceptable
This commit is contained in:
parent
b5f31f0c8c
commit
887afecc22
2 changed files with 14 additions and 1 deletions
|
@ -729,6 +729,10 @@ gst_qa_pad_monitor_check_aggregated_return (GstQaPadMonitor * monitor,
|
||||||
/* no peer pad found, nothing to do */
|
/* no peer pad found, nothing to do */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (monitor->is_eos && ret == GST_FLOW_UNEXPECTED) {
|
||||||
|
/* this is acceptable */
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (aggregated != ret) {
|
if (aggregated != ret) {
|
||||||
/* TODO review this error code */
|
/* TODO review this error code */
|
||||||
GST_QA_MONITOR_REPORT_CRITICAL (monitor, TRUE, BUFFER, UNEXPECTED,
|
GST_QA_MONITOR_REPORT_CRITICAL (monitor, TRUE, BUFFER, UNEXPECTED,
|
||||||
|
@ -1010,11 +1014,19 @@ gst_qa_pad_monitor_sink_event_check (GstQaPadMonitor * pad_monitor,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case GST_EVENT_EOS:
|
||||||
|
pad_monitor->is_eos = TRUE;
|
||||||
|
/*
|
||||||
|
* TODO add end of stream checks for
|
||||||
|
* - events not pushed
|
||||||
|
* - buffer data not pushed
|
||||||
|
* - pending events not received
|
||||||
|
*/
|
||||||
|
break;
|
||||||
|
|
||||||
/* both flushes are handled by the common event function */
|
/* both flushes are handled by the common event function */
|
||||||
case GST_EVENT_FLUSH_START:
|
case GST_EVENT_FLUSH_START:
|
||||||
case GST_EVENT_FLUSH_STOP:
|
case GST_EVENT_FLUSH_STOP:
|
||||||
case GST_EVENT_EOS:
|
|
||||||
case GST_EVENT_TAG:
|
case GST_EVENT_TAG:
|
||||||
case GST_EVENT_SINK_MESSAGE:
|
case GST_EVENT_SINK_MESSAGE:
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -73,6 +73,7 @@ struct _GstQaPadMonitor {
|
||||||
gboolean first_buffer;
|
gboolean first_buffer;
|
||||||
|
|
||||||
gboolean has_segment;
|
gboolean has_segment;
|
||||||
|
gboolean is_eos;
|
||||||
|
|
||||||
gboolean pending_flush_stop;
|
gboolean pending_flush_stop;
|
||||||
guint32 pending_flush_stop_seqnum;
|
guint32 pending_flush_stop_seqnum;
|
||||||
|
|
Loading…
Reference in a new issue