summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFlorin Apostol <florin.apostol@oregan.net>2015-11-19 15:30:34 +0000
committerThiago Santos <thiagoss@osg.samsung.com>2016-02-09 16:35:44 -0300
commit25c89b12d6decc9599d1a90b4a9a59685b41b7cd (patch)
tree102c91a0f7643f192bfd37ef86704e6b5a9ad228 /tests
parent13f66a68edfc54f51c7743ac671d1a3eea164d38 (diff)
mpdparser: tests: added unit test for getting segment availability when segment timeline is used
https://bugzilla.gnome.org/show_bug.cgi?id=757655
Diffstat (limited to 'tests')
-rw-r--r--tests/check/elements/dash_mpd.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/check/elements/dash_mpd.c b/tests/check/elements/dash_mpd.c
index ba96b9262..973386749 100644
--- a/tests/check/elements/dash_mpd.c
+++ b/tests/check/elements/dash_mpd.c
@@ -4528,6 +4528,7 @@ GST_START_TEST (dash_mpdparser_segment_timeline)
GstClockTime expectedDuration;
GstClockTime expectedTimestamp;
GstFlowReturn flow;
+ GstDateTime *segmentAvailability;
const gchar *xml =
"<?xml version=\"1.0\"?>"
@@ -4594,6 +4595,22 @@ GST_START_TEST (dash_mpdparser_segment_timeline)
assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
gst_media_fragment_info_clear (&fragment);
+ /* first segment starts at 3s and has a duration of 2s.
+ * We also add period start time (10s) so we expect a segment availability
+ * start time of 15s
+ */
+ segmentAvailability =
+ gst_mpd_client_get_next_segment_availability_end_time (mpdclient,
+ activeStream);
+ fail_unless (segmentAvailability != NULL);
+ assert_equals_int (gst_date_time_get_year (segmentAvailability), 2015);
+ assert_equals_int (gst_date_time_get_month (segmentAvailability), 3);
+ assert_equals_int (gst_date_time_get_day (segmentAvailability), 24);
+ assert_equals_int (gst_date_time_get_hour (segmentAvailability), 0);
+ assert_equals_int (gst_date_time_get_minute (segmentAvailability), 0);
+ assert_equals_int (gst_date_time_get_second (segmentAvailability), 15);
+ gst_date_time_unref (segmentAvailability);
+
/* advance to next segment */
flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
assert_equals_int (flow, GST_FLOW_OK);
@@ -4612,6 +4629,24 @@ GST_START_TEST (dash_mpdparser_segment_timeline)
assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
gst_media_fragment_info_clear (&fragment);
+ /* first segment starts at 3s and has a duration of 2s.
+ * Second segment starts when the first ends (5s) and has a duration of 2s,
+ * so it ends at 7s.
+ * We also add period start time (10s) so we expect a segment availability
+ * start time of 17s
+ */
+ segmentAvailability =
+ gst_mpd_client_get_next_segment_availability_start_time (mpdclient,
+ activeStream);
+ fail_unless (segmentAvailability != NULL);
+ assert_equals_int (gst_date_time_get_year (segmentAvailability), 2015);
+ assert_equals_int (gst_date_time_get_month (segmentAvailability), 3);
+ assert_equals_int (gst_date_time_get_day (segmentAvailability), 24);
+ assert_equals_int (gst_date_time_get_hour (segmentAvailability), 0);
+ assert_equals_int (gst_date_time_get_minute (segmentAvailability), 0);
+ assert_equals_int (gst_date_time_get_second (segmentAvailability), 17);
+ gst_date_time_unref (segmentAvailability);
+
/* advance to next segment */
flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
assert_equals_int (flow, GST_FLOW_OK);
@@ -4629,6 +4664,22 @@ GST_START_TEST (dash_mpdparser_segment_timeline)
assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
gst_media_fragment_info_clear (&fragment);
+ /* Third segment starts at 10s and has a duration of 3s so it ends at 13s.
+ * We also add period start time (10s) so we expect a segment availability
+ * start time of 23s
+ */
+ segmentAvailability =
+ gst_mpd_client_get_next_segment_availability_start_time (mpdclient,
+ activeStream);
+ fail_unless (segmentAvailability != NULL);
+ assert_equals_int (gst_date_time_get_year (segmentAvailability), 2015);
+ assert_equals_int (gst_date_time_get_month (segmentAvailability), 3);
+ assert_equals_int (gst_date_time_get_day (segmentAvailability), 24);
+ assert_equals_int (gst_date_time_get_hour (segmentAvailability), 0);
+ assert_equals_int (gst_date_time_get_minute (segmentAvailability), 0);
+ assert_equals_int (gst_date_time_get_second (segmentAvailability), 23);
+ gst_date_time_unref (segmentAvailability);
+
gst_mpd_client_free (mpdclient);
}