GstClockTime expectedDuration;
GstClockTime expectedTimestamp;
GstFlowReturn flow;
+ GstDateTime *segmentAvailability;
const gchar *xml =
"<?xml version=\"1.0\"?>"
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);
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);
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);
}