{
GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (stream->demux);
GstDashDemuxStream *dashstream = (GstDashDemuxStream *) stream;
- GstDateTime *seg_end_time;
+ GstDateTime *segmentAvailability;
GstActiveStream *active_stream = dashstream->active_stream;
- seg_end_time =
- gst_mpd_client_get_next_segment_availability_end_time (dashdemux->client,
- active_stream);
+ segmentAvailability =
+ gst_mpd_client_get_next_segment_availability_start_time
+ (dashdemux->client, active_stream);
- if (seg_end_time) {
+ if (segmentAvailability) {
gint64 diff;
GstDateTime *cur_time;
cur_time = gst_date_time_new_now_utc ();
- diff = gst_mpd_client_calculate_time_difference (cur_time, seg_end_time);
- gst_date_time_unref (seg_end_time);
+ diff = gst_mpd_client_calculate_time_difference (cur_time,
+ segmentAvailability);
+ gst_date_time_unref (segmentAvailability);
gst_date_time_unref (cur_time);
/* subtract the server's clock drift, so that if the server's
time is behind our idea of UTC, we need to sleep for longer
gboolean gst_mpd_client_has_next_segment (GstMpdClient * client, GstActiveStream * stream, gboolean forward);
GstFlowReturn gst_mpd_client_advance_segment (GstMpdClient * client, GstActiveStream * stream, gboolean forward);
void gst_mpd_client_seek_to_first_segment (GstMpdClient * client);
-GstDateTime *gst_mpd_client_get_next_segment_availability_end_time (GstMpdClient * client, GstActiveStream * stream);
+GstDateTime *gst_mpd_client_get_next_segment_availability_start_time (GstMpdClient * client, GstActiveStream * stream);
/* Get audio/video stream parameters (caps, width, height, rate, number of channels) */
GstCaps * gst_mpd_client_get_stream_caps (GstActiveStream * stream);
gboolean hasNextSegment;
GstActiveStream *activeStream;
GstFlowReturn flow;
- GstDateTime *segmentEndTime;
+ GstDateTime *segmentAvailability;
GstDateTime *gst_time;
GDateTime *g_time;
/* each segment has a duration of 0 hours, 0 min 45 seconds
* segment index is 1.
- * End time is at the end of segment 1, so 2 * segment_duration = 2 * 45s
+ * Start time is at the beginning of segment 1, so 1 * segment_duration = 1 * 45s
+ * Availability start time is at the end of the segment, so we add duration (45s)
* We also add period start time (10s)
+ * So, availability start time for segment 1 is: 10 (period start) +
+ * 45 (segment start) + 45 (duration) = 1'40s
*/
- segmentEndTime =
- gst_mpd_client_get_next_segment_availability_end_time (mpdclient,
+ segmentAvailability =
+ gst_mpd_client_get_next_segment_availability_start_time (mpdclient,
activeStream);
- assert_equals_int (gst_date_time_get_year (segmentEndTime), 2015);
- assert_equals_int (gst_date_time_get_month (segmentEndTime), 3);
- assert_equals_int (gst_date_time_get_day (segmentEndTime), 24);
- assert_equals_int (gst_date_time_get_hour (segmentEndTime), 0);
- assert_equals_int (gst_date_time_get_minute (segmentEndTime), 1);
- assert_equals_int (gst_date_time_get_second (segmentEndTime), 40);
- gst_date_time_unref (segmentEndTime);
+ 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), 1);
+ assert_equals_int (gst_date_time_get_second (segmentAvailability), 40);
+ gst_date_time_unref (segmentAvailability);
/* seek to time */
gst_time = gst_date_time_new_from_iso8601_string ("2015-03-24T0:0:20Z");
* start time of 15s
*/
segmentAvailability =
- gst_mpd_client_get_next_segment_availability_end_time (mpdclient,
+ 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);