[vlc-commits] dash: Group element contains the "common" attributes/elements

Hugo Beauzée-Luyssen git at videolan.org
Fri Dec 30 18:15:28 CET 2011


vlc | branch: master | Hugo Beauzée-Luyssen <beauze.h at gmail.com> | Tue Dec 20 00:14:00 2011 +0100| [4a23e2fb48d2df3d5805bc6da8bc8bf2ea229d9b] | committer: Jean-Baptiste Kempf

dash: Group element contains the "common" attributes/elements

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4a23e2fb48d2df3d5805bc6da8bc8bf2ea229d9b
---

 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);
 



More information about the vlc-commits mailing list