pad-monitor: reset buffer timestamp data after a flush
authorThiago Santos <thiago.sousa.santos@collabora.com>
Tue, 27 Aug 2013 21:23:09 +0000 (18:23 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.com>
Tue, 27 Aug 2013 21:26:14 +0000 (18:26 -0300)
As the pad/element also clears its internal state

validate/gst/validate/gst-validate-pad-monitor.c

index e447e6f..60def67 100644 (file)
@@ -1047,6 +1047,18 @@ gst_validate_pad_monitor_add_expected_newsegment (GstValidatePadMonitor *
   gst_iterator_free (iter);
 }
 
+static void
+gst_validate_pad_monitor_flush (GstValidatePadMonitor * pad_monitor)
+{
+  pad_monitor->current_timestamp = GST_CLOCK_TIME_NONE;
+  pad_monitor->current_duration = GST_CLOCK_TIME_NONE;
+  pad_monitor->timestamp_range_start = GST_CLOCK_TIME_NONE;
+  pad_monitor->timestamp_range_end = GST_CLOCK_TIME_NONE;
+  pad_monitor->has_segment = FALSE;
+  pad_monitor->is_eos = FALSE;
+  gst_caps_replace (&pad_monitor->last_caps, NULL);
+}
+
 /* common checks for both sink and src event functions */
 static void
 gst_validate_pad_monitor_common_event_check (GstValidatePadMonitor *
@@ -1093,6 +1105,9 @@ gst_validate_pad_monitor_common_event_check (GstValidatePadMonitor *
             "Unexpected flush-stop %p" GST_PTR_FORMAT, event);
       }
       pad_monitor->pending_flush_stop = FALSE;
+
+      /* cleanup our data */
+      gst_validate_pad_monitor_flush (pad_monitor);
     }
       break;
     default: