Commit 998ddf24 authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen Committed by Jean-Baptiste Kempf

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

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
(cherry picked from commit 4a23e2fb48d2df3d5805bc6da8bc8bf2ea229d9b)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent d38bc3a0
...@@ -80,6 +80,11 @@ void BasicCMParser::setGroups (Node *root, Period *period) ...@@ -80,6 +80,11 @@ void BasicCMParser::setGroups (Node *root, Period *period)
for(size_t i = 0; i < groups.size(); i++) for(size_t i = 0; i < groups.size(); i++)
{ {
Group *group = new Group(groups.at(i)->getAttributes()); 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); this->setRepresentations(groups.at(i), group);
period->addGroup(group); period->addGroup(group);
} }
......
...@@ -27,14 +27,15 @@ ...@@ -27,14 +27,15 @@
using namespace dash::mpd; using namespace dash::mpd;
using namespace dash::exception; 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 () Group::~Group ()
{ {
for(size_t i = 1; i < this->representations.size(); i++) for(size_t i = 1; i < this->representations.size(); i++)
...@@ -46,55 +47,6 @@ Group::~Group () ...@@ -46,55 +47,6 @@ Group::~Group ()
delete(this->accessibility); 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) std::string Group::getSubSegmentAlignment () throw(AttributeNotPresentException)
{ {
if(this->attributes.find("subsegmentAlignmentFlag") == this->attributes.end()) if(this->attributes.find("subsegmentAlignmentFlag") == this->attributes.end())
...@@ -102,20 +54,7 @@ std::string Group::getSubSegmentAlignment () throw(Attribu ...@@ -102,20 +54,7 @@ std::string Group::getSubSegmentAlignment () throw(Attribu
return this->attributes["subsegmentAlignmentFlag"]; 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) Viewpoint* Group::getViewpoint () throw(ElementNotPresentException)
{ {
if(this->viewpoint == NULL) if(this->viewpoint == NULL)
...@@ -123,6 +62,7 @@ Viewpoint* Group::getViewpoint () throw(Element ...@@ -123,6 +62,7 @@ Viewpoint* Group::getViewpoint () throw(Element
return this->viewpoint; return this->viewpoint;
} }
Rating* Group::getRating () throw(ElementNotPresentException) Rating* Group::getRating () throw(ElementNotPresentException)
{ {
if(this->rating == NULL) if(this->rating == NULL)
...@@ -130,6 +70,7 @@ Rating* Group::getRating () throw(Element ...@@ -130,6 +70,7 @@ Rating* Group::getRating () throw(Element
return this->rating; return this->rating;
} }
Accessibility* Group::getAccessibility () throw(ElementNotPresentException) Accessibility* Group::getAccessibility () throw(ElementNotPresentException)
{ {
if(this->accessibility == NULL) if(this->accessibility == NULL)
...@@ -137,33 +78,32 @@ Accessibility* Group::getAccessibility () throw(Element ...@@ -137,33 +78,32 @@ Accessibility* Group::getAccessibility () throw(Element
return this->accessibility; return this->accessibility;
} }
ContentProtection* Group::getContentProtection () throw(ElementNotPresentException)
{
if(this->contentProtection == NULL)
throw ElementNotPresentException();
return this->contentProtection;
}
std::vector<Representation*> Group::getRepresentations () std::vector<Representation*> Group::getRepresentations ()
{ {
return this->representations; return this->representations;
} }
void Group::addRepresentation (Representation *rep) void Group::addRepresentation (Representation *rep)
{ {
this->representations.push_back(rep); this->representations.push_back(rep);
} }
void Group::setRating (Rating *rating) void Group::setRating (Rating *rating)
{ {
this->rating = rating; this->rating = rating;
} }
void Group::setContentProtection (ContentProtection *protection) void Group::setContentProtection (ContentProtection *protection)
{ {
this->contentProtection = protection; this->contentProtection = protection;
} }
void Group::setAccessibility (Accessibility *accessibility) void Group::setAccessibility (Accessibility *accessibility)
{ {
this->accessibility = accessibility; this->accessibility = accessibility;
} }
void Group::setViewpoint (Viewpoint *viewpoint) void Group::setViewpoint (Viewpoint *viewpoint)
{ {
this->viewpoint = viewpoint; this->viewpoint = viewpoint;
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include <map> #include <map>
#include "mpd/Representation.h" #include "mpd/Representation.h"
#include "mpd/CommonAttributesElements.h"
#include "mpd/ContentProtection.h" #include "mpd/ContentProtection.h"
#include "mpd/Accessibility.h" #include "mpd/Accessibility.h"
#include "mpd/Viewpoint.h" #include "mpd/Viewpoint.h"
...@@ -41,25 +42,15 @@ namespace dash ...@@ -41,25 +42,15 @@ namespace dash
{ {
namespace mpd namespace mpd
{ {
class Group class Group : public CommonAttributesElements
{ {
public: public:
Group (std::map<std::string, std::string> attributes); Group (const std::map<std::string, std::string>& attributes);
virtual ~Group (); 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::string getSubSegmentAlignment () throw(dash::exception::AttributeNotPresentException);
std::vector<Representation *> getRepresentations (); std::vector<Representation *> getRepresentations ();
Viewpoint* getViewpoint () throw(dash::exception::ElementNotPresentException); Viewpoint* getViewpoint () throw(dash::exception::ElementNotPresentException);
ContentProtection* getContentProtection () throw(dash::exception::ElementNotPresentException);
Accessibility* getAccessibility () throw(dash::exception::ElementNotPresentException); Accessibility* getAccessibility () throw(dash::exception::ElementNotPresentException);
Rating* getRating () throw(dash::exception::ElementNotPresentException); Rating* getRating () throw(dash::exception::ElementNotPresentException);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment