libmpd++
DASH MPD parsing and manipulation library
 
Loading...
Searching...
No Matches
SubRepresentation.hh
Go to the documentation of this file.
1#ifndef _BBC_PARSE_DASH_MPD_SUB_REPRESENTATION_HH_
2#define _BBC_PARSE_DASH_MPD_SUB_REPRESENTATION_HH_
3/*****************************************************************************
4 * DASH MPD parsing library in C++: SubRepresentation class
5 *****************************************************************************
6 * Copyright: (C) 2025 British Broadcasting Corporation
7 * Author(s): Dev Audsin <dev.audsin@bbc.co.uk>
8 * License: LGPLv3
9 *
10 * For full license terms please see the LICENSE file distributed with this
11 * library or refer to: https://www.gnu.org/licenses/lgpl-3.0.txt.
12 */
13#include <list>
14#include <optional>
15#include <string>
16
17#include "macros.hh"
18#include "RepresentationBase.hh"
19
22// Forward declarations for types only used by pointer or reference
23namespace xmlpp {
24 class Element;
25 class Node;
26}
29
31
32class Representation;
33
42public:
46
47 virtual ~SubRepresentation() {};
48
51
52 bool operator==(const SubRepresentation&) const;
53
54 // TODO: Add accessors for attributes.
55
57protected:
58 friend class Representation;
59 SubRepresentation(xmlpp::Node&);
60 void setXMLElement(xmlpp::Element&) const;
62
63private:
64 // SubRepresentation element attributes - ISO 23009-1:2022 Clause 5.3.6.3
65 std::optional<unsigned int> m_level;
66 std::list<unsigned int> m_dependencyLevel;
67 std::optional<unsigned int> m_bandwidth;
68 std::list<std::string> m_contentComponent;
69};
70
72
73/* vim:ts=8:sts=4:sw=4:expandtab:
74 */
75#endif /*_BBC_PARSE_DASH_MPD_SUB_REPRESENTATION_HH_*/
Definition Representation.hh:55
bool operator==(const SubRepresentation &) const
SubRepresentation & operator=(const SubRepresentation &to_copy)
virtual ~SubRepresentation()
Definition SubRepresentation.hh:47
SubRepresentation(SubRepresentation &&to_move)
SubRepresentation & operator=(SubRepresentation &&to_move)
SubRepresentation(const SubRepresentation &to_copy)
#define LIBMPDPP_NAMESPACE_END
Definition macros.hh:54
#define LIBMPDPP_PUBLIC_API
Used to mark something as part of the public API.
Definition macros.hh:21
#define LIBMPDPP_NAMESPACE_BEGIN
Definition macros.hh:50