mpdparser: renamed gst_mpd_client_get_next_segment_availability_end_time to gst_mpd_c...
authorFlorin Apostol <florin.apostol@oregan.net>
Tue, 10 Nov 2015 22:01:38 +0000 (22:01 +0000)
committerThiago Santos <thiagoss@osg.samsung.com>
Tue, 9 Feb 2016 19:49:37 +0000 (16:49 -0300)
The function actually returns the segment availability start time (as defined by the standard).
That is at the end of the segment, but it is called availability start time.

Availability end time is something else (the time when the segment is no longer
available on the server). The function name was misleading.

https://bugzilla.gnome.org/show_bug.cgi?id=757655

ext/dash/gstdashdemux.c
ext/dash/gstmpdparser.c
ext/dash/gstmpdparser.h
tests/check/elements/dash_mpd.c

index 7267ae0..0be653d 100644 (file)
@@ -1506,20 +1506,21 @@ gst_dash_demux_stream_get_fragment_waiting_time (GstAdaptiveDemuxStream *
 {
   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
index 21c00cb..df96c57 100644 (file)
@@ -5794,7 +5794,7 @@ gst_mpdparser_get_list_and_nb_of_audio_language (GstMpdClient * client,
 
 
 GstDateTime *
-gst_mpd_client_get_next_segment_availability_end_time (GstMpdClient * client,
+gst_mpd_client_get_next_segment_availability_start_time (GstMpdClient * client,
     GstActiveStream * stream)
 {
   GstDateTime *availability_start_time, *rv;
index 91f9180..1b303aa 100644 (file)
@@ -579,7 +579,7 @@ GList * gst_mpd_client_get_adaptation_sets (GstMpdClient * client);
 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);
index 9733867..348b65c 100644 (file)
@@ -3888,7 +3888,7 @@ GST_START_TEST (dash_mpdparser_segments)
   gboolean hasNextSegment;
   GstActiveStream *activeStream;
   GstFlowReturn flow;
-  GstDateTime *segmentEndTime;
+  GstDateTime *segmentAvailability;
   GstDateTime *gst_time;
   GDateTime *g_time;
 
@@ -3985,19 +3985,22 @@ GST_START_TEST (dash_mpdparser_segments)
 
   /* 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");
@@ -4600,7 +4603,7 @@ GST_START_TEST (dash_mpdparser_segment_timeline)
    * 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);