summaryrefslogtreecommitdiff
path: root/tests/check/gnl/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check/gnl/common.h')
-rw-r--r--tests/check/gnl/common.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/tests/check/gnl/common.h b/tests/check/gnl/common.h
index 88f0a17..5ec207f 100644
--- a/tests/check/gnl/common.h
+++ b/tests/check/gnl/common.h
@@ -45,6 +45,7 @@ typedef struct _CollectStructure {
gboolean gotsegment;
GList *seen_segments;
GList *expected_segments;
+ guint64 expected_base;
} CollectStructure;
static GstElement *
@@ -66,33 +67,43 @@ composition_pad_added_cb (GstElement *composition, GstPad *pad, CollectStructure
/* return TRUE to discard the Segment */
static gboolean
-compare_segments (Segment * segment, GstEvent * event)
+compare_segments (CollectStructure *collect, Segment * segment, GstEvent * event)
{
const GstSegment *orig;
+ guint64 running_stop, running_start, running_duration;
gst_event_parse_segment (event, &orig);
GST_DEBUG ("Got Segment rate:%f, format:%s, start:%"GST_TIME_FORMAT
- ", stop:%"GST_TIME_FORMAT", position:%"GST_TIME_FORMAT
+ ", stop:%"GST_TIME_FORMAT", time:%"GST_TIME_FORMAT
", base:%"GST_TIME_FORMAT", offset:%"GST_TIME_FORMAT,
orig->rate, gst_format_get_name(orig->format), GST_TIME_ARGS (orig->start),
GST_TIME_ARGS (orig->stop),
- GST_TIME_ARGS (orig->position),
+ GST_TIME_ARGS (orig->time),
GST_TIME_ARGS (orig->base),
GST_TIME_ARGS (orig->offset));
+ GST_DEBUG ("[RUNNING] start:%"GST_TIME_FORMAT" [STREAM] start:%"GST_TIME_FORMAT,
+ GST_TIME_ARGS (gst_segment_to_running_time (orig, GST_FORMAT_TIME, orig->start)),
+ GST_TIME_ARGS (gst_segment_to_stream_time (orig, GST_FORMAT_TIME, orig->start)));
GST_DEBUG ("Expecting rate:%f, format:%s, start:%"GST_TIME_FORMAT
- ", stop:%"GST_TIME_FORMAT", position:%"GST_TIME_FORMAT,
+ ", stop:%"GST_TIME_FORMAT", position:%"GST_TIME_FORMAT", base:%"GST_TIME_FORMAT,
segment->rate, gst_format_get_name (segment->format),
GST_TIME_ARGS (segment->start),
GST_TIME_ARGS (segment->stop),
- GST_TIME_ARGS (segment->position));
+ GST_TIME_ARGS (segment->position),
+ GST_TIME_ARGS (collect->expected_base));
+ running_start = gst_segment_to_running_time (orig, GST_FORMAT_TIME, orig->start);
+ running_stop = gst_segment_to_running_time (orig, GST_FORMAT_TIME, orig->stop);
+ running_duration = running_stop - running_start;
fail_if (orig->rate != segment->rate);
fail_if (orig->format != segment->format);
- fail_unless_equals_uint64 (orig->start, segment->start);
- fail_unless_equals_uint64 (orig->stop, segment->stop);
fail_unless_equals_int64 (orig->time, segment->position);
+ fail_unless_equals_int64 (orig->base, collect->expected_base);
+ fail_unless_equals_uint64 (orig->stop - orig->start, segment->stop -segment->start);
+
+ collect->expected_base += running_duration;
GST_DEBUG ("Segment was valid, discarding expected Segment");
@@ -121,7 +132,7 @@ sinkpad_event_probe (GstPad * sinkpad, GstEvent * event, CollectStructure * coll
segment = (Segment *) collect->expected_segments->data;
- if (compare_segments (segment, event)) {
+ if (compare_segments (collect, segment, event)) {
collect->expected_segments = g_list_remove (collect->expected_segments, segment);
g_free (segment);
}