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

Reply via email to