vlc/vlc-1.2 | branch: master | Hugo Beauzée-Luyssen <[email protected]> | Wed Dec 21 23:20:18 2011 +0100| [93049b0934584adb0d6e6aa7c3449a409020f85c] | committer: Jean-Baptiste Kempf
dash: Adding some basic getters to Representation Signed-off-by: Jean-Baptiste Kempf <[email protected]> (cherry picked from commit 967fdaa471d565e2795e06f4b478389fa314c455) Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=93049b0934584adb0d6e6aa7c3449a409020f85c --- modules/stream_filter/dash/mpd/BasicCMParser.cpp | 3 ++ modules/stream_filter/dash/mpd/Representation.cpp | 39 ++++++++++++++------ modules/stream_filter/dash/mpd/Representation.h | 10 ++++- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/modules/stream_filter/dash/mpd/BasicCMParser.cpp b/modules/stream_filter/dash/mpd/BasicCMParser.cpp index 071dc49..3fa36b6 100644 --- a/modules/stream_filter/dash/mpd/BasicCMParser.cpp +++ b/modules/stream_filter/dash/mpd/BasicCMParser.cpp @@ -73,6 +73,7 @@ void BasicCMParser::setPeriods (Node *root) this->mpd->addPeriod(period); } } + void BasicCMParser::setGroups (Node *root, Period *period) { std::vector<Node *> groups = DOMHelper::getElementByTagName(root, "Group", false); @@ -89,6 +90,7 @@ void BasicCMParser::setGroups (Node *root, Period *period) period->addGroup(group); } } + void BasicCMParser::setRepresentations (Node *root, Group *group) { std::vector<Node *> representations = DOMHelper::getElementByTagName(root, "Representation", false); @@ -97,6 +99,7 @@ void BasicCMParser::setRepresentations (Node *root, Group *group) { const std::map<std::string, std::string> attributes = representations.at(i)->getAttributes(); + //FIXME: handle @dependencyId afterward Representation *rep = new Representation( attributes ); if ( this->parseCommonAttributesElements( representations.at( i ), rep ) == false ) { diff --git a/modules/stream_filter/dash/mpd/Representation.cpp b/modules/stream_filter/dash/mpd/Representation.cpp index 91bb1e7..b4774de 100644 --- a/modules/stream_filter/dash/mpd/Representation.cpp +++ b/modules/stream_filter/dash/mpd/Representation.cpp @@ -33,6 +33,7 @@ using namespace dash::mpd; using namespace dash::exception; Representation::Representation (const std::map<std::string, std::string>& attributes) : + qualityRanking( -1 ), attributes( attributes ), segmentInfo( NULL ), trickModeType( NULL ) @@ -52,26 +53,28 @@ std::string Representation::getDependencyId () const throw(Attri throw AttributeNotPresentException(); return it->second; - } -std::string Representation::getId () const throw(AttributeNotPresentException) -{ - std::map<std::string, std::string>::const_iterator it = this->attributes.find("id"); - if ( it == this->attributes.end()) - throw AttributeNotPresentException(); - return it->second; +const std::string& Representation::getId () const +{ + return this->id; +} +void Representation::setId(const std::string &id) +{ + if ( id.empty() == false ) + this->id = id; } int Representation::getBandwidth () const { - std::map<std::string, std::string>::const_iterator it = this->attributes.find("bandwidth"); - if ( it == this->attributes.end()) - return -1; - - return atoi( it->second.c_str() ) / 8; + return this->bandwidth; +} +void Representation::setBandwidth( int bandwidth ) +{ + if ( bandwidth >= 0 ) + this->bandwidth = bandwidth; } SegmentInfo* Representation::getSegmentInfo () const throw(ElementNotPresentException) @@ -101,3 +104,15 @@ void Representation::setSegmentInfo (SegmentInfo *info) { this->segmentInfo = info; } + + +int Representation::getQualityRanking() const +{ + return this->qualityRanking; +} + +void Representation::setQualityRanking( int qualityRanking ) +{ + if ( qualityRanking > 0 ) + this->qualityRanking = qualityRanking; +} diff --git a/modules/stream_filter/dash/mpd/Representation.h b/modules/stream_filter/dash/mpd/Representation.h index eea176d..992f693 100644 --- a/modules/stream_filter/dash/mpd/Representation.h +++ b/modules/stream_filter/dash/mpd/Representation.h @@ -44,13 +44,17 @@ namespace dash Representation ( const std::map<std::string, std::string>& attributes); virtual ~Representation (); - std::string getId () const throw(dash::exception::AttributeNotPresentException); + const std::string& getId () const; + void setId ( const std::string &id ); /* * @return The bitrate required for this representation * in Bytes per seconds. * -1 if an error occurs. */ int getBandwidth () const; + void setBandwidth ( int bandwidth ); + int getQualityRanking () const; + void setQualityRanking ( int qualityRanking ); std::string getDependencyId () const throw(dash::exception::AttributeNotPresentException); SegmentInfo* getSegmentInfo () const throw(dash::exception::ElementNotPresentException); TrickModeType* getTrickModeType () const throw(dash::exception::ElementNotPresentException); @@ -60,10 +64,12 @@ namespace dash void setContentProtection (ContentProtection *protection); private: + int bandwidth; + std::string id; + int qualityRanking; std::map<std::string, std::string> attributes; SegmentInfo *segmentInfo; TrickModeType *trickModeType; - }; } } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
