period->duration.Set(IsoTime((*it)->getAttributeValue("duration")));
if((*it)->hasAttribute("id"))
period->setId((*it)->getAttributeValue("id"));
+ std::vector<Node *> baseUrls = DOMHelper::getChildElementByTagName(*it, "BaseURL");
+ if(!baseUrls.empty())
+ period->baseUrl.Set( new Url( baseUrls.front()->getText() ) );
+
setAdaptationSets(*it, period);
mpd->addPeriod(period);
}
{
duration.Set(0);
startTime.Set(0);
+ baseUrl.Set(NULL);
}
Period::~Period ()
{
vlc_delete_all( this->adaptationSets );
+ delete baseUrl.Get();
childs.clear();
}
Url Period::getUrlSegment() const
{
- return getParentUrlSegment();
+ if( baseUrl.Get() )
+ return *(baseUrl.Get());
+ else
+ return getParentUrlSegment();
}
std::vector<std::string> Period::toString(int indent) const
virtual Url getUrlSegment() const; /* reimpl */
virtual mtime_t getPeriodStart() const; /* reimpl */
+ Property<Url *> baseUrl;
Property<mtime_t> duration;
Property<mtime_t> startTime;