[Bug 701404] dashdemux: should not buffer the entire Period

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jul 8 22:19:20 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=701404
  GStreamer | gst-plugins-bad | 1.x

Thiago Sousa Santos <thiago.sousa.santos> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #247331|none                        |needs-work
             status|                            |

--- Comment #21 from Thiago Sousa Santos <thiago.sousa.santos at collabora.co.uk> 2013-07-09 05:19:15 UTC ---
Review of attachment 247331:
 --> (https://bugzilla.gnome.org/review?bug=701404&attachment=247331)

Some suggestions below.

::: ext/dash/gstdashdemux.c
@@ +1897,3 @@
+    gint64 diff =
+        gst_mpd_client_calculate_time_difference (cur_time, seg_end_time)
+        / GST_MSECOND;

For this case, we can just use GDateTime and use the g_date_time_difference
function instead of adding our own.

@@ +1899,3 @@
+        / GST_MSECOND;
+    if (-1 != demux->client->mpd_node->suggestedPresentationDelay) {
+      diff += demux->client->mpd_node->suggestedPresentationDelay;

We shouldn't prevent that dashdemux downloads the segment if it is ready,
instead we want to download as soon it is available and use the
suggestedPresentationDelay do delay playback, not download.

I'm still unsure of the best way of using suggestedPresentationDelay, maybe it
should be handled in another patch as it seems a different issue.

@@ +1908,3 @@
+          "), delaying download", diff);
+      end_of_period = FALSE;
+      selected_stream = NULL;

There is now a gst_dash_demux_download_wait function that puts the thread to
wait for a specified amount of time or until the demuxer is stopped/reset

::: ext/dash/gstmpdparser.c
@@ +3819,3 @@
+  }
+
+  offset = (1 + seg_idx) * seg_duration;

This is only true when duration are all the same. In a SegmentList scenario the
durations might be different.

@@ +3824,3 @@
+  gst_date_time_unref (availability_start_time);
+  return rv;
+}

Maybe we want to make the get_next_fragment_timestamp function also return the
duration? And then dashdemux can sum timestamp+duration and get the end time to
be mapped to UTC time instead of re-doing some of this work here.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list