]> git.sesse.net Git - vlc/commitdiff
dash: Group element contains the "common" attributes/elements
authorHugo Beauzée-Luyssen <beauze.h@gmail.com>
Mon, 19 Dec 2011 23:14:00 +0000 (00:14 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Fri, 30 Dec 2011 16:59:00 +0000 (17:59 +0100)
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
modules/stream_filter/dash/mpd/BasicCMParser.cpp
modules/stream_filter/dash/mpd/Group.cpp
modules/stream_filter/dash/mpd/Group.h

index 7d162e34db79a3bf2ad5e6085dac3d453326e94e..071dc49c4c6e8961929cf068da780763394177a1 100644 (file)
@@ -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);
     }
index 5178ddf9059c2346b694cd2aff0274e634b3d92f..69d27877a6e86bf8fc5e8b7b6a2746d7fc2457d6 100644 (file)
 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;
index 05809538e17c54e427a40dc82b2e236101901e1b..2fb8ae190bd5ef2499eb323a788b15a914a11bca 100644 (file)
@@ -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);