[vlc-commits] dash: Group element contains the "common" attributes/elements
Hugo Beauzée-Luyssen
git at videolan.org
Tue Jan 24 23:21:51 CET 2012
vlc/vlc-1.2 | branch: master | Hugo Beauzée-Luyssen <beauze.h at 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 <jb at videolan.org>
(cherry picked from commit 4a23e2fb48d2df3d5805bc6da8bc8bf2ea229d9b)
Signed-off-by: Jean-Baptiste Kempf <jb at 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);
More information about the vlc-commits
mailing list