#include "IsoffMainParser.h"
#include "SegmentTemplate.h"
-#include "SegmentInfoDefault.h"
#include "ProgramInformation.h"
#include "xml/DOMHelper.h"
#include <vlc_strings.h>
size_t IsoffMainParser::parseSegmentList(Node * segListNode, SegmentInformation *info)
{
size_t total = 0;
+ mtime_t totaltime = 0;
if(segListNode)
{
std::vector<Node *> segments = DOMHelper::getElementByTagName(segListNode, "SegmentURL", false);
SegmentList *list;
if(!segments.empty() && (list = new (std::nothrow) SegmentList()))
{
+ if(segListNode->hasAttribute("duration"))
+ list->setDuration(Integer<mtime_t>(segListNode->getAttributeValue("duration")));
+
+ if(segListNode->hasAttribute("timescale"))
+ list->timescale.Set(Integer<uint64_t>(segListNode->getAttributeValue("timescale")));
+
std::vector<Node *>::const_iterator it;
for(it = segments.begin(); it != segments.end(); it++)
{
seg->setByteRange(atoi(range.substr(0, pos).c_str()), atoi(range.substr(pos + 1, range.size()).c_str()));
}
+ if(totaltime || list->getDuration())
+ {
+ seg->startTime.Set(totaltime);
+ totaltime += list->getDuration();
+ }
+
list->addSegment(seg);
total++;
}