From 3137acdd5a45285dab9903f9d41560c63eca8523 Mon Sep 17 00:00:00 2001 From: "Angelo Mantellini (manangel)" Date: Wed, 29 Mar 2017 18:00:06 +0200 Subject: first commit Change-Id: I8412b8e7d966c2fbc508b537fd9a9bbcfc628ca8 Signed-off-by: Angelo Mantellini (manangel) --- src/libdash/include/ISubRepresentation.h | 70 ++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/libdash/include/ISubRepresentation.h (limited to 'src/libdash/include/ISubRepresentation.h') diff --git a/src/libdash/include/ISubRepresentation.h b/src/libdash/include/ISubRepresentation.h new file mode 100644 index 00000000..a93605c2 --- /dev/null +++ b/src/libdash/include/ISubRepresentation.h @@ -0,0 +1,70 @@ +/** + * @class dash::mpd::ISubRepresentation + * @brief This interface is needed for accessing the attributes and elements of the SubRepresentation element as specified in ISO/IEC 23009-1, Part 1, 2012, section 5.3.6.2, table 8 + * @details Sub-Representations are embedded in regular Representations and are described by the SubRepresentation element. + * SubRepresentation elements are contained in a Representation element.\n + * The SubRepresentation element describes properties of one or several media content components that are embedded in the Representation. + * It may for example describe the exact properties of an embedded audio component (e.g., codec, sampling rate, etc.), + * an embedded sub-title (e.g., codec) or it may describe some embedded lower quality video layer (e.g. some lower frame rate, etc.). + * @see dash::mpd::IRepresentationBase + * + * @author bitmovin Softwareentwicklung OG \n + * Email: libdash-dev@vicky.bitmovin.net + * @version 2.1 + * @date 2013 + * @copyright bitmovin Softwareentwicklung OG, All Rights Reserved \n\n + * This source code and its use and distribution, is subject to the terms + * and conditions of the applicable license agreement. + */ + +#ifndef ISUBREPRESENTATION_H_ +#define ISUBREPRESENTATION_H_ + +#include "config.h" + +#include "IRepresentationBase.h" + +namespace dash +{ + namespace mpd + { + class ISubRepresentation : public virtual IRepresentationBase + { + public: + virtual ~ISubRepresentation(){} + + /** + * Returns an integer that specifies the Sub-Representation level. If \c \@level attribute is present and for media formats used in this Part of ISO/IEC 23009, + * a Subsegment Index as defined in section 6.3.2.4 of ISO/IEC 23009-1, Part 1, 2012 shall be available for each Media Segment in the containing Representation. + * @return an unsigned integer + */ + virtual uint32_t GetLevel () const = 0; + + /** + * Returns a reference to a vector of unsigned integers that specifies the set of Sub-Representations within this Representation that this Sub-Representation depends on + * in the decoding and/or presentation process as a list of \c \@level values.\n + * If not present, the Sub-Representation can be decoded and presented independently of any other Representation. + * @return a reference to a vector of unsigned integers + */ + virtual const std::vector& GetDependencyLevel () const = 0; + + /** + * Returns an integer that is identical to the \c \@bandwidth definition in Representation, but applied to this Sub-Representation. + * This attribute shall be present if the \c \@level attribute is present. + * @return an unsigned integer + */ + virtual uint32_t GetBandWidth () const = 0; + + /** + * Returns a reference to a vector of strings that specifies the set of all media content components + * that are contained in this Sub-Representation as ContentComponent\@id values. \n + * If not present, the Sub-Representation is not assigned to a media content component. + * @return a reference to a vector of strings + */ + virtual const std::vector& GetContentComponent () const = 0; + + }; + } +} + +#endif /* ISUBREPRESENTATION_H_ */ \ No newline at end of file -- cgit 1.2.3-korg