vlc/vlc-1.2 | branch: master | Hugo Beauzée-Luyssen <beauz...@gmail.com> | Tue Jan 3 16:05:09 2012 +0100| [3e6823521f37f2582d38583064211569538f10d6] | committer: Jean-Baptiste Kempf
dash: Store the parent Group in every representations. Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> (cherry picked from commit bc77d458c167012d56054404a481c5f328e1da3b) Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=3e6823521f37f2582d38583064211569538f10d6 --- modules/stream_filter/dash/mpd/BasicCMParser.cpp | 3 ++- modules/stream_filter/dash/mpd/Representation.cpp | 17 ++++++++++++++--- modules/stream_filter/dash/mpd/Representation.h | 11 ++++++++--- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/modules/stream_filter/dash/mpd/BasicCMParser.cpp b/modules/stream_filter/dash/mpd/BasicCMParser.cpp index 25d3f6d..9b5f0f2 100644 --- a/modules/stream_filter/dash/mpd/BasicCMParser.cpp +++ b/modules/stream_filter/dash/mpd/BasicCMParser.cpp @@ -287,7 +287,8 @@ void BasicCMParser::setRepresentations (Node *root, Group *group) { const std::map<std::string, std::string> attributes = representations.at(i)->getAttributes(); - Representation *rep = new Representation( attributes ); + Representation *rep = new Representation; + rep->setParentGroup( group ); if ( this->parseCommonAttributesElements( representations.at( i ), rep, group ) == false ) { delete rep; diff --git a/modules/stream_filter/dash/mpd/Representation.cpp b/modules/stream_filter/dash/mpd/Representation.cpp index 079323b..f7be5bf 100644 --- a/modules/stream_filter/dash/mpd/Representation.cpp +++ b/modules/stream_filter/dash/mpd/Representation.cpp @@ -31,11 +31,11 @@ using namespace dash::mpd; -Representation::Representation (const std::map<std::string, std::string>& attributes) : +Representation::Representation() : qualityRanking( -1 ), - attributes( attributes ), segmentInfo( NULL ), - trickModeType( NULL ) + trickModeType( NULL ), + parentGroup( NULL ) { } @@ -82,6 +82,17 @@ void Representation::setTrickMode (TrickModeType *trickMod this->trickModeType = trickModeType; } +const Group *Representation::getParentGroup() const +{ + return this->parentGroup; +} + +void Representation::setParentGroup(const Group *group) +{ + if ( group != NULL ) + this->parentGroup = group; +} + void Representation::setSegmentInfo (SegmentInfo *info) { this->segmentInfo = info; diff --git a/modules/stream_filter/dash/mpd/Representation.h b/modules/stream_filter/dash/mpd/Representation.h index 04c25b7..0d01c47 100644 --- a/modules/stream_filter/dash/mpd/Representation.h +++ b/modules/stream_filter/dash/mpd/Representation.h @@ -35,10 +35,12 @@ namespace dash { namespace mpd { + class Group; + class Representation : public CommonAttributesElements { public: - Representation ( const std::map<std::string, std::string>& attributes); + Representation(); virtual ~Representation (); const std::string& getId () const; @@ -65,14 +67,17 @@ namespace dash void setSegmentInfo( SegmentInfo *info ); void setTrickMode( TrickModeType *trickModeType ); + const Group* getParentGroup() const; + void setParentGroup( const Group *group ); private: int bandwidth; - std::string id; int qualityRanking; + std::string id; + int qualityRanking; std::list<const Representation*> dependencies; - std::map<std::string, std::string> attributes; SegmentInfo *segmentInfo; TrickModeType *trickModeType; + const Group *parentGroup; }; } } _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org http://mailman.videolan.org/listinfo/vlc-commits