mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 19:42:26 +00:00
mpdparser: tests: added unit test for getting segment availability when segment timeline is used
https://bugzilla.gnome.org/show_bug.cgi?id=757655
This commit is contained in:
parent
13f66a68ed
commit
25c89b12d6
1 changed files with 51 additions and 0 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue