vlc/vlc-1.2 | branch: master | Hugo Beauzée-Luyssen <beauz...@gmail.com> | Tue Dec 20 00:14:00 2011 +0100| [998ddf245da00aa3f8a2e478c4af955eefeccc28] | committer: Jean-Baptiste Kempf
dash: Group element contains the "common" attributes/elements Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> (cherry picked from commit 4a23e2fb48d2df3d5805bc6da8bc8bf2ea229d9b) Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=998ddf245da00aa3f8a2e478c4af955eefeccc28 --- modules/stream_filter/dash/mpd/BasicCMParser.cpp | 5 + modules/stream_filter/dash/mpd/Group.cpp | 88 ++++------------------ modules/stream_filter/dash/mpd/Group.h | 15 +--- 3 files changed, 22 insertions(+), 86 deletions(-) diff --git a/modules/stream_filter/dash/mpd/BasicCMParser.cpp b/modules/stream_filter/dash/mpd/BasicCMParser.cpp index 7d162e3..071dc49 100644 --- a/modules/stream_filter/dash/mpd/BasicCMParser.cpp +++ b/modules/stream_filter/dash/mpd/BasicCMParser.cpp @@ -80,6 +80,11 @@ void BasicCMParser::setGroups (Node *root, Period *period) for(size_t i = 0; i < groups.size(); i++) { Group *group = new Group(groups.at(i)->getAttributes()); + if ( this->parseCommonAttributesElements( groups.at( i ), group ) == false ) + { + delete group; + continue ; + } this->setRepresentations(groups.at(i), group); period->addGroup(group); } diff --git a/modules/stream_filter/dash/mpd/Group.cpp b/modules/stream_filter/dash/mpd/Group.cpp index 5178ddf..69d2787 100644 --- a/modules/stream_filter/dash/mpd/Group.cpp +++ b/modules/stream_filter/dash/mpd/Group.cpp @@ -27,14 +27,15 @@ using namespace dash::mpd; using namespace dash::exception; -Group::Group (std::map<std::string, std::string> attributes) +Group::Group ( const std::map<std::string, std::string>& attributes) : + attributes( attributes ), + contentProtection( NULL ), + accessibility( NULL ), + viewpoint( NULL ), + rating( NULL ) { - this->attributes = attributes; - this->contentProtection = NULL; - this->accessibility = NULL; - this->viewpoint = NULL; - this->rating = NULL; } + Group::~Group () { for(size_t i = 1; i < this->representations.size(); i++) @@ -46,55 +47,6 @@ Group::~Group () delete(this->accessibility); } -std::string Group::getWidth () throw(AttributeNotPresentException) -{ - if(this->attributes.find("width") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["width"]; -} -std::string Group::getNumberOfChannels () throw(AttributeNotPresentException) -{ - if(this->attributes.find("numberOfChannels") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["numberOfChannels"]; -} -std::string Group::getLang () throw(AttributeNotPresentException) -{ - if(this->attributes.find("lang") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["lang"]; -} -std::string Group::getParY () throw(AttributeNotPresentException) -{ - if(this->attributes.find("pary") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["pary"]; -} -std::string Group::getParX () throw(AttributeNotPresentException) -{ - if(this->attributes.find("parx") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["parx"]; -} -std::string Group::getSamplingRate () throw(AttributeNotPresentException) -{ - if(this->attributes.find("samplingRate") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["samplingRate"]; -} -std::string Group::getMimeType () throw(AttributeNotPresentException) -{ - if(this->attributes.find("mimeType") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["mimeType"]; -} std::string Group::getSubSegmentAlignment () throw(AttributeNotPresentException) { if(this->attributes.find("subsegmentAlignmentFlag") == this->attributes.end()) @@ -102,20 +54,7 @@ std::string Group::getSubSegmentAlignment () throw(Attribu return this->attributes["subsegmentAlignmentFlag"]; } -std::string Group::getFrameRate () throw(AttributeNotPresentException) -{ - if(this->attributes.find("frameRate") == this->attributes.end()) - throw AttributeNotPresentException(); - - return this->attributes["frameRate"]; -} -std::string Group::getHeight () throw(AttributeNotPresentException) -{ - if(this->attributes.find("height") == this->attributes.end()) - throw AttributeNotPresentException(); - return this->attributes["height"]; -} Viewpoint* Group::getViewpoint () throw(ElementNotPresentException) { if(this->viewpoint == NULL) @@ -123,6 +62,7 @@ Viewpoint* Group::getViewpoint () throw(Element return this->viewpoint; } + Rating* Group::getRating () throw(ElementNotPresentException) { if(this->rating == NULL) @@ -130,6 +70,7 @@ Rating* Group::getRating () throw(Element return this->rating; } + Accessibility* Group::getAccessibility () throw(ElementNotPresentException) { if(this->accessibility == NULL) @@ -137,33 +78,32 @@ Accessibility* Group::getAccessibility () throw(Element return this->accessibility; } -ContentProtection* Group::getContentProtection () throw(ElementNotPresentException) -{ - if(this->contentProtection == NULL) - throw ElementNotPresentException(); - return this->contentProtection; -} std::vector<Representation*> Group::getRepresentations () { return this->representations; } + void Group::addRepresentation (Representation *rep) { this->representations.push_back(rep); } + void Group::setRating (Rating *rating) { this->rating = rating; } + void Group::setContentProtection (ContentProtection *protection) { this->contentProtection = protection; } + void Group::setAccessibility (Accessibility *accessibility) { this->accessibility = accessibility; } + void Group::setViewpoint (Viewpoint *viewpoint) { this->viewpoint = viewpoint; diff --git a/modules/stream_filter/dash/mpd/Group.h b/modules/stream_filter/dash/mpd/Group.h index 0580953..2fb8ae1 100644 --- a/modules/stream_filter/dash/mpd/Group.h +++ b/modules/stream_filter/dash/mpd/Group.h @@ -30,6 +30,7 @@ #include <map> #include "mpd/Representation.h" +#include "mpd/CommonAttributesElements.h" #include "mpd/ContentProtection.h" #include "mpd/Accessibility.h" #include "mpd/Viewpoint.h" @@ -41,25 +42,15 @@ namespace dash { namespace mpd { - class Group + class Group : public CommonAttributesElements { public: - Group (std::map<std::string, std::string> attributes); + Group (const std::map<std::string, std::string>& attributes); virtual ~Group (); - std::string getWidth () throw(dash::exception::AttributeNotPresentException); - std::string getHeight () throw(dash::exception::AttributeNotPresentException); - std::string getParX () throw(dash::exception::AttributeNotPresentException); - std::string getParY () throw(dash::exception::AttributeNotPresentException); - std::string getLang () throw(dash::exception::AttributeNotPresentException); - std::string getMimeType () throw(dash::exception::AttributeNotPresentException); - std::string getFrameRate () throw(dash::exception::AttributeNotPresentException); - std::string getNumberOfChannels () throw(dash::exception::AttributeNotPresentException); - std::string getSamplingRate () throw(dash::exception::AttributeNotPresentException); std::string getSubSegmentAlignment () throw(dash::exception::AttributeNotPresentException); std::vector<Representation *> getRepresentations (); Viewpoint* getViewpoint () throw(dash::exception::ElementNotPresentException); - ContentProtection* getContentProtection () throw(dash::exception::ElementNotPresentException); Accessibility* getAccessibility () throw(dash::exception::ElementNotPresentException); Rating* getRating () throw(dash::exception::ElementNotPresentException); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org http://mailman.videolan.org/listinfo/vlc-commits