vlc | branch: master | Francois Cartegnie <[email protected]> | Tue May 14 21:11:26 2019 +0200| [e89ff9e9e1e10d84a77efe9d51bfb869fdda1db1] | committer: Francois Cartegnie
demux: adaptive: add Role > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e89ff9e9e1e10d84a77efe9d51bfb869fdda1db1 --- modules/demux/Makefile.am | 2 + .../demux/adaptive/playlist/BaseAdaptationSet.cpp | 10 +++++ .../demux/adaptive/playlist/BaseAdaptationSet.h | 4 ++ modules/demux/adaptive/playlist/Role.cpp | 50 ++++++++++++++++++++++ modules/demux/adaptive/playlist/Role.hpp | 48 +++++++++++++++++++++ 5 files changed, 114 insertions(+) diff --git a/modules/demux/Makefile.am b/modules/demux/Makefile.am index fa049f8675..536781d9a1 100644 --- a/modules/demux/Makefile.am +++ b/modules/demux/Makefile.am @@ -300,6 +300,8 @@ libadaptive_plugin_la_SOURCES = \ demux/adaptive/playlist/ICanonicalUrl.hpp \ demux/adaptive/playlist/Inheritables.hpp \ demux/adaptive/playlist/Inheritables.cpp \ + demux/adaptive/playlist/Role.hpp \ + demux/adaptive/playlist/Role.cpp \ demux/adaptive/playlist/Segment.cpp \ demux/adaptive/playlist/Segment.h \ demux/adaptive/playlist/SegmentBase.cpp \ diff --git a/modules/demux/adaptive/playlist/BaseAdaptationSet.cpp b/modules/demux/adaptive/playlist/BaseAdaptationSet.cpp index 64e9cfbdab..228a90ae78 100644 --- a/modules/demux/adaptive/playlist/BaseAdaptationSet.cpp +++ b/modules/demux/adaptive/playlist/BaseAdaptationSet.cpp @@ -123,6 +123,16 @@ bool BaseAdaptationSet::isBitSwitchable() const return bitswitchAble == TRIBOOL_TRUE; } +void BaseAdaptationSet::setRole(const Role &r) +{ + role = r; +} + +const Role & BaseAdaptationSet::getRole() const +{ + return role; +} + void BaseAdaptationSet::debug(vlc_object_t *obj, int indent) const { std::string text(indent, ' '); diff --git a/modules/demux/adaptive/playlist/BaseAdaptationSet.h b/modules/demux/adaptive/playlist/BaseAdaptationSet.h index da795bac37..a3b1ca3b72 100644 --- a/modules/demux/adaptive/playlist/BaseAdaptationSet.h +++ b/modules/demux/adaptive/playlist/BaseAdaptationSet.h @@ -30,6 +30,7 @@ #include "CommonAttributesElements.h" #include "SegmentInformation.hpp" +#include "Role.hpp" #include "../StreamFormat.hpp" namespace adaptive @@ -55,6 +56,8 @@ namespace adaptive bool isSegmentAligned() const; void setBitswitchAble(bool); bool isBitSwitchable() const; + void setRole(const Role &); + const Role & getRole() const; void addRepresentation( BaseRepresentation *rep ); const std::string& getLang() const; void setLang( const std::string &lang ); @@ -62,6 +65,7 @@ namespace adaptive Property<std::string> description; protected: + Role role; std::vector<BaseRepresentation *> representations; std::string lang; Tribool segmentAligned; diff --git a/modules/demux/adaptive/playlist/Role.cpp b/modules/demux/adaptive/playlist/Role.cpp new file mode 100644 index 0000000000..828455a571 --- /dev/null +++ b/modules/demux/adaptive/playlist/Role.cpp @@ -0,0 +1,50 @@ +/***************************************************************************** + * Role.cpp + ***************************************************************************** + * Copyright (C) 2019 VideoLabs, VideoLAN and VLC Authors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "Role.hpp" + +using namespace adaptive; +using namespace adaptive::playlist; + +Role::Role(unsigned r) +{ + value = r; +} + +bool Role::operator ==(const Role &other) const +{ + return value == other.value; +} + +bool Role::isDefault() const +{ + return value == MAIN; +} + +bool Role::autoSelectable() const +{ + return value == MAIN || + value == ALTERNATE || + value == SUBTITLE || + value == CAPTION; +} diff --git a/modules/demux/adaptive/playlist/Role.hpp b/modules/demux/adaptive/playlist/Role.hpp new file mode 100644 index 0000000000..6b703c7d85 --- /dev/null +++ b/modules/demux/adaptive/playlist/Role.hpp @@ -0,0 +1,48 @@ +/***************************************************************************** + * Role.hpp + ***************************************************************************** + * Copyright (C) 2019 VideoLabs, VideoLAN and VLC Authors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ +#ifndef ROLE_HPP_ +#define ROLE_HPP_ + +namespace adaptive +{ + namespace playlist + { + class Role + { + public: + static const unsigned MAIN = 0; + static const unsigned ALTERNATE = 1; + static const unsigned SUPPLEMENTARY = 2; + static const unsigned COMMENTARY = 3; + static const unsigned DUB = 4; + static const unsigned CAPTION = 5; + static const unsigned SUBTITLE = 6; + Role(unsigned = ALTERNATE); + bool operator==(const Role &) const; + bool isDefault() const; + bool autoSelectable() const; + + private: + unsigned value; + }; + } +} + +#endif _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
