From 0d6a31dcdae08457c666172023acd7b72e128e4c Mon Sep 17 00:00:00 2001 From: Francois Cartegnie Date: Wed, 23 Jan 2019 13:12:40 +0100 Subject: [PATCH] demux: dash: handle infinite repeat in timeline no spec... guessing --- modules/demux/dash/mpd/IsoffMainParser.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/demux/dash/mpd/IsoffMainParser.cpp b/modules/demux/dash/mpd/IsoffMainParser.cpp index a86d10afd7..42baf0381a 100644 --- a/modules/demux/dash/mpd/IsoffMainParser.cpp +++ b/modules/demux/dash/mpd/IsoffMainParser.cpp @@ -45,6 +45,7 @@ #include "../adaptive/tools/Conversions.hpp" #include #include +#include using namespace dash::mpd; using namespace adaptive::xml; @@ -461,9 +462,13 @@ void IsoffMainParser::parseTimeline(Node *node, MediaSegmentTemplate *templ) if(!s->hasAttribute("d")) /* Mandatory */ continue; stime_t d = Integer(s->getAttributeValue("d")); - uint64_t r = 0; // never repeats by default + int64_t r = 0; // never repeats by default if(s->hasAttribute("r")) - r = Integer(s->getAttributeValue("r")); + { + r = Integer(s->getAttributeValue("r")); + if(r < 0) + r = std::numeric_limits::max(); + } if(s->hasAttribute("t")) { -- 2.11.4.GIT