diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 654397d560..c2f001351e 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -29,3 +29,4 @@ Oskar Arvidsson Sanborn Hilland Timothy Drews Vasanth Polipelli +Vignesh Venkatasubramanian diff --git a/lib/dash/mpd_parser.js b/lib/dash/mpd_parser.js index ffaeebeb59..8cd94efeac 100644 --- a/lib/dash/mpd_parser.js +++ b/lib/dash/mpd_parser.js @@ -830,12 +830,21 @@ shaka.dash.mpd.Mpd.prototype.parse = function(parent, elem) { mpd.parseDuration_, this.minBufferTime); - // Disallow zero. this.minUpdatePeriod = mpd.parseAttr_(elem, 'minimumUpdatePeriod', mpd.parseDuration_, - this.minUpdatePeriod) || null; + this.minUpdatePeriod); + + // If minimumUpdatePeriod is set to 0, then we shouldn't refresh the manifest + // unless there is explicit signalling in the stream, according to: + // http://azure.microsoft.com/blog/2014/09/13/dash-live-streaming-with-azure-media-service/ + // There is no way to get the signal from within the stream in MSE as of now. + // So, if we see a minimumUpdatePeriod of zero, we merely set it to 10 + // seconds. + if (this.minUpdatePeriod == 0) { + this.minUpdatePeriod = 10; + } this.availabilityStartTime = mpd.parseAttr_(elem,