if(best != NULL)
{
- std::vector<Segment *> segments = this->mpdManager->getSegments(best);
+ std::vector<Segment *> segments = best->getSegments();
for(size_t j = 0; j < segments.size(); j++)
{
this->schedule.push_back(segments.at(j));
if ( rep == NULL )
return NULL;
- std::vector<Segment *> segments = this->mpdManager->getSegments(rep);
+ std::vector<Segment *> segments = rep->getSegments();
if ( this->count == segments.size() )
{
}
-std::vector<Segment*> BasicCMManager::getSegments( const Representation *rep )
-{
- std::vector<Segment *> retSegments;
- SegmentInfo* info = rep->getSegmentInfo();
- Segment* initSegment = info->getInitialisationSegment();
-
- if ( initSegment )
- retSegments.push_back( initSegment );
- retSegments.insert( retSegments.end(), info->getSegments().begin(),
- info->getSegments().end() );
- return retSegments;
-}
-
Representation* BasicCMManager::getRepresentation (Period *period, uint64_t bitrate, int, int ) const
{
return IMPDManager::getRepresentation(period, bitrate);
public:
BasicCMManager (MPD *mpd);
- std::vector<Segment *> getSegments( const Representation *rep );
Representation* getRepresentation (Period *period, uint64_t bitrate,
int width, int height) const;
};
virtual Period* getFirstPeriod () const;
virtual Period* getNextPeriod (Period *period);
virtual Representation* getBestRepresentation (Period *period) const;
- virtual std::vector<Segment *> getSegments (const Representation *rep) = 0;
virtual Representation* getRepresentation (Period *period, uint64_t bitrate) const;
virtual const MPD* getMPD () const;
virtual Representation* getRepresentation (Period *period, uint64_t bitrate,
}
-std::vector<Segment*> IsoffMainManager::getSegments (const Representation *rep)
-{
- std::vector<Segment *> retSegments;
- SegmentList* list= rep->getSegmentList();
-
- if(rep->getSegmentBase())
- {
- Segment* initSegment = rep->getSegmentBase()->getInitSegment();
-
- if(initSegment)
- retSegments.push_back(initSegment);
- }
-
- if ( list )
- retSegments.insert(retSegments.end(), list->getSegments().begin(), list->getSegments().end());
- return retSegments;
-}
-
Representation* IsoffMainManager::getRepresentation (Period *period, uint64_t bitrate, int width, int height) const
{
if(period == NULL)
public:
IsoffMainManager (MPD *mpd);
- std::vector<Segment *> getSegments (const Representation *rep);
Representation* getRepresentation (Period *period, uint64_t bitrate,
int width, int height) const;
};
std::vector<Representation *>::const_iterator k;
for(k = (*j)->getRepresentations().begin(); k != (*j)->getRepresentations().end(); k++)
{
- msg_Dbg(p_stream, " Representation");
- msg_Dbg(p_stream, " InitSeg url=%s", (*k)->getSegmentBase()->getInitSegment()->getSourceUrl().c_str());
-
- const SegmentList *segmentList = (*k)->getSegmentList();
- if (segmentList)
+ std::vector<std::string> debug = (*k)->toString();
+ std::vector<std::string>::const_iterator l;
+ for(l = debug.begin(); l < debug.end(); l++)
{
- std::vector<Segment *>::const_iterator l;
- for(l = segmentList->getSegments().begin();
- l < segmentList->getSegments().end(); l++)
- {
- msg_Dbg(p_stream, " Segment url=%s", (*l)->getSourceUrl().c_str());
- }
+ msg_Dbg(p_stream, "%s", (*l).c_str());
}
}
}
if ( dep != NULL )
this->dependencies.push_back( dep );
}
-SegmentList* Representation::getSegmentList () const
+
+std::vector<Segment *> Representation::getSegments() const
{
- return this->segmentList;
+ std::vector<Segment *> retSegments;
+
+ if ( segmentInfo )
+ {
+ retSegments.push_back( segmentInfo->getInitialisationSegment() );
+
+ if ( !segmentInfo->getSegments().empty() )
+ retSegments.insert( retSegments.end(),
+ segmentInfo->getSegments().begin(),
+ segmentInfo->getSegments().end() );
+ }
+ else
+ {
+ if( segmentBase && segmentBase->getInitSegment() )
+ retSegments.push_back( segmentBase->getInitSegment() );
+
+ if ( segmentList )
+ retSegments.insert( retSegments.end(),
+ segmentList->getSegments().begin(),
+ segmentList->getSegments().end() );
+ }
+
+ return retSegments;
}
+
void Representation::setSegmentList (SegmentList *list)
{
this->segmentList = list;
}
-SegmentBase* Representation::getSegmentBase () const
-{
- return this->segmentBase;
-}
+
void Representation::setSegmentBase (SegmentBase *base)
{
this->segmentBase = base;
{
return this->height;
}
+
+std::vector<std::string> Representation::toString() const
+{
+ std::vector<std::string> ret;
+ ret.push_back(std::string(" Representation"));
+ ret.push_back(std::string(" InitSeg url=")
+ .append(segmentBase->getInitSegment()->getSourceUrl()));
+ if (segmentList)
+ {
+ std::vector<Segment *>::const_iterator l;
+ for(l = segmentList->getSegments().begin();
+ l < segmentList->getSegments().end(); l++)
+ {
+ ret.push_back(std::string(" Segment url=")
+ .append((*l)->getSourceUrl()));
+ }
+ }
+ return ret;
+}
const AdaptationSet* getParentGroup() const;
void setParentGroup( const AdaptationSet *group );
- SegmentList* getSegmentList () const;
+ std::vector<Segment*> getSegments ()const;
void setSegmentList (SegmentList *list);
- SegmentBase* getSegmentBase () const;
void setSegmentBase (SegmentBase *base);
void setWidth (int width);
int getWidth () const;
BaseUrl* getBaseUrl () const;
void setBaseUrl (BaseUrl *baseUrl);
+ std::vector<std::string> toString() const;
+
private:
uint64_t bandwidth;
std::string id;