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:
Thiago Santos 2013-07-24 09:51:05 -03:00
parent b5f31f0c8c
commit 887afecc22
2 changed files with 14 additions and 1 deletions

View file

@ -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:

View file

@ -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;