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

dash: Handling Group @subsegmentAlignmentFlag in parser.

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
(cherry picked from commit 203307197dce5e750462d19bbf734dd010ee6ff2)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 78822a60
...@@ -149,12 +149,16 @@ void BasicCMParser::setGroups (Node *root, Period *period) ...@@ -149,12 +149,16 @@ 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()); const std::map<std::string, std::string> attr = groups.at(i)->getAttributes();
Group *group = new Group();
if ( this->parseCommonAttributesElements( groups.at( i ), group, NULL ) == false ) if ( this->parseCommonAttributesElements( groups.at( i ), group, NULL ) == false )
{ {
delete group; delete group;
continue ; continue ;
} }
std::map<std::string, std::string>::const_iterator it = attr.find( "subsegmentAlignmentFlag" );
if ( it != attr.end() && it->second == "true" )
group->setSubsegmentAlignmentFlag( true ); //Otherwise it is false by default.
this->setRepresentations(groups.at(i), group); this->setRepresentations(groups.at(i), group);
period->addGroup(group); period->addGroup(group);
} }
......
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
using namespace dash::mpd; using namespace dash::mpd;
using namespace dash::exception; using namespace dash::exception;
Group::Group ( const std::map<std::string, std::string>& attributes) : Group::Group() :
attributes( attributes ) subsegmentAlignmentFlag( false )
{ {
} }
...@@ -40,12 +40,14 @@ Group::~Group () ...@@ -40,12 +40,14 @@ Group::~Group ()
vlc_delete_all( this->representations ); vlc_delete_all( this->representations );
} }
std::string Group::getSubSegmentAlignment () throw(AttributeNotPresentException) bool Group::getSubsegmentAlignmentFlag() const
{ {
if(this->attributes.find("subsegmentAlignmentFlag") == this->attributes.end()) return this->subsegmentAlignmentFlag;
throw AttributeNotPresentException(); }
return this->attributes["subsegmentAlignmentFlag"]; void Group::setSubsegmentAlignmentFlag(bool alignment)
{
this->subsegmentAlignmentFlag = alignment;
} }
std::vector<Representation*> Group::getRepresentations () std::vector<Representation*> Group::getRepresentations ()
......
...@@ -40,17 +40,18 @@ namespace dash ...@@ -40,17 +40,18 @@ namespace dash
class Group : public CommonAttributesElements class Group : public CommonAttributesElements
{ {
public: public:
Group (const std::map<std::string, std::string>& attributes); Group();
virtual ~Group (); virtual ~Group();
std::string getSubSegmentAlignment () throw(dash::exception::AttributeNotPresentException); bool getSubsegmentAlignmentFlag() const;
void setSubsegmentAlignmentFlag( bool alignment );
std::vector<Representation *> getRepresentations (); std::vector<Representation *> getRepresentations ();
const Representation* getRepresentationById ( const std::string &id ) const; const Representation* getRepresentationById ( const std::string &id ) const;
void addRepresentation (Representation *rep); void addRepresentation( Representation *rep );
private: private:
std::map<std::string, std::string> attributes; bool subsegmentAlignmentFlag;
std::vector<Representation *> representations; std::vector<Representation *> representations;
}; };
} }
......
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