libmpd++
DASH MPD parsing and manipulation library
 
Loading...
Searching...
No Matches
RepresentationBase.hh
Go to the documentation of this file.
1#ifndef _BBC_PARSE_DASH_MPD_REPRESENTATION_BASE_HH_
2#define _BBC_PARSE_DASH_MPD_REPRESENTATION_BASE_HH_
3/*****************************************************************************
4 * DASH MPD parsing library in C++: RepresentationBase class
5 *****************************************************************************
6 * Copyright: (C) 2025 British Broadcasting Corporation
7 * Author(s): David Waring <david.waring2@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 <chrono>
14#include <list>
15#include <memory>
16#include <optional>
17#include <string>
18
19#include "macros.hh"
20#include "Codecs.hh"
22#include "ContentProtection.hh"
23#include "Descriptor.hh"
24#include "EventStream.hh"
25#include "FrameRate.hh"
26#include "Label.hh"
27#include "ProducerReferenceTime.hh"
28#include "RandomAccess.hh"
29#include "Ratio.hh"
30#include "Resync.hh"
31#include "SAP.hh"
32#include "Switching.hh"
33#include "URI.hh"
34
37// Forward declarations for types only used by pointer or reference
38namespace xmlpp {
39 class Element;
40 class Node;
41}
44
46
55public:
63
69
77
85
88 virtual ~RepresentationBase() {};
89
98
107
115 bool operator==(const RepresentationBase &to_compare) const;
116
117 // @profiles
118
123 const std::list<URI> &profiles() const { return m_profiles; };
124
130 std::list<URI>::const_iterator profilesBegin() const { return m_profiles.cbegin(); };
131 std::list<URI>::iterator profilesBegin() { return m_profiles.begin(); };
133
139 std::list<URI>::const_iterator profilesEnd() const { return m_profiles.cend(); };
140 std::list<URI>::iterator profilesEnd() { return m_profiles.end(); };
142
149 RepresentationBase &profiles(const std::list<URI> &_profiles) { m_profiles = _profiles; return *this; };
150 RepresentationBase &profiles(std::list<URI> &&_profiles) { m_profiles = std::move(_profiles); return *this; };
152
159 const URI &profile(std::list<URI>::size_type idx) const;
160
167 RepresentationBase &profilesAdd(const URI &val) { m_profiles.push_back(val); return *this; };
168 RepresentationBase &profilesAdd(URI &&val) { m_profiles.push_back(std::move(val)); return *this; };
170
177
184 RepresentationBase &profilesRemove(const std::list<URI>::const_iterator &it);
185 RepresentationBase &profilesRemove(const std::list<URI>::iterator &it);
187
188 // @width
189
194 bool hasWidth() const { return m_width.has_value(); };
195
200 const std::optional<unsigned int> &width() const { return m_width; };
201
206 RepresentationBase &width(const std::nullopt_t&) { m_width.reset(); return *this; };
207
213 RepresentationBase &width(unsigned int val) { m_width = val; return *this; };
214
215 // @height
216
221 bool hasHeight() const { return m_height.has_value(); };
222
227 const std::optional<unsigned int> &height() const { return m_height; };
228
233 RepresentationBase &height(const std::nullopt_t&) { m_height.reset(); return *this; };
234
241 RepresentationBase &height(unsigned int val) { m_height = val; return *this; };
242 RepresentationBase &height(const std::optional<unsigned int> &val) { m_height = val; return *this; };
243 RepresentationBase &height(std::optional<unsigned int> &&val) { m_height = std::move(val); return *this; };
245
246 // @sar
247
252 bool hasSar() const { return m_sar.has_value(); };
253
260 const std::optional<Ratio> &sar() const { return m_sar; };
261
266 RepresentationBase &sar(const std::nullopt_t&) { m_sar.reset(); return *this; };
267
276 RepresentationBase &sar(const Ratio &val) { m_sar = val; return *this; };
277 RepresentationBase &sar(Ratio &&val) { m_sar = std::move(val); return *this; };
278 RepresentationBase &sar(const std::optional<Ratio> &val) { m_sar = val; return *this; };
279 RepresentationBase &sar(std::optional<Ratio> &&val) { m_sar = std::move(val); return *this; };
281
282 // @frameRate
283
288 bool hasFrameRate() const { return m_frameRate.has_value(); };
289
294 const std::optional<FrameRate> &frameRate() const { return m_frameRate; };
295
300 RepresentationBase &frameRate(const std::nullopt_t&) { m_frameRate.reset(); return *this; };
301
308 RepresentationBase &frameRate(const FrameRate &val) { m_frameRate = val; return *this; };
309 RepresentationBase &frameRate(FrameRate &&val) { m_frameRate = std::move(val); return *this; };
310 RepresentationBase &frameRate(const std::optional<FrameRate> &val) { m_frameRate = val; return *this; };
311 RepresentationBase &frameRate(std::optional<FrameRate> &&val) { m_frameRate = std::move(val); return *this; };
313
321 m_frameRate = FrameRate(numerator, denominator);
322 return *this;
323 };
324
325 // @pudioSamplingRate
326
331 const std::list<unsigned int> &audioSamplingRates() const { return m_audioSamplingRates; };
332
338 std::list<unsigned int>::const_iterator audioSamplingRatesBegin() const { return m_audioSamplingRates.cbegin(); };
339 std::list<unsigned int>::iterator audioSamplingRatesBegin() { return m_audioSamplingRates.begin(); };
341
347 std::list<unsigned int>::const_iterator audioSamplingRatesEnd() const { return m_audioSamplingRates.cend(); };
348 std::list<unsigned int>::iterator audioSamplingRatesEnd() { return m_audioSamplingRates.end(); };
350
357 RepresentationBase &audioSamplingRates(const std::list<unsigned int> &rates) { m_audioSamplingRates = rates; return *this; };
358 RepresentationBase &audioSamplingRates(std::list<unsigned int> &&rates) { m_audioSamplingRates = std::move(rates); return *this; };
360
367 unsigned int audioSamplingRate(std::list<unsigned int>::size_type idx) const;
368
374 RepresentationBase &audioSamplingRatesAdd(unsigned int val) { m_audioSamplingRates.push_back(val); return *this; };
375
382
389 RepresentationBase &audioSamplingRatesRemove(const std::list<unsigned int>::const_iterator &it);
390 RepresentationBase &audioSamplingRatesRemove(const std::list<unsigned int>::iterator &it);
392
393 // @mimeType
394
399 bool hasMimeType() const { return m_mimeType.has_value(); };
400
405 const std::optional<std::string> &mimeType() const { return m_mimeType; };
406
411 RepresentationBase &mimeType(const std::nullopt_t&) { m_mimeType.reset(); return *this; };
412
419 RepresentationBase &mimeType(const std::string &val) { m_mimeType = val; return *this; };
420 RepresentationBase &mimeType(std::string &&val) { m_mimeType = std::move(val); return *this; };
421 RepresentationBase &mimeType(const std::optional<std::string> &val) { m_mimeType = val; return *this; };
422 RepresentationBase &mimeType(std::optional<std::string> &&val) { m_mimeType = std::move(val); return *this; };
424
425 // @segmentProfiles
426
431 const std::list<std::string> &segmentProfiles() const { return m_segmentProfiles; };
432
438 RepresentationBase &segmentProfiles(const std::list<std::string> &profiles) { m_segmentProfiles = profiles; return *this; };
439 RepresentationBase &segmentProfiles(std::list<std::string> &&profiles) { m_segmentProfiles = std::move(profiles); return *this; };
441
447 std::list<std::string>::const_iterator segmentProfilesBegin() const { return m_segmentProfiles.cbegin(); };
448 std::list<std::string>::iterator segmentProfilesBegin() { return m_segmentProfiles.begin(); };
450
456 std::list<std::string>::const_iterator segmentProfilesEnd() const { return m_segmentProfiles.cend(); };
457 std::list<std::string>::iterator segmentProfilesEnd() { return m_segmentProfiles.end(); };
459
469 const std::string &segmentProfile(std::list<std::string>::size_type idx) const;
470
477 RepresentationBase &segmentProfilesAdd(const std::string &val) { m_segmentProfiles.push_back(val); return *this; };
478 RepresentationBase &segmentProfilesAdd(std::string &&val) { m_segmentProfiles.push_back(std::move(val)); return *this; };
480
487
494 RepresentationBase &segmentProfilesRemove(const std::list<std::string>::const_iterator &it);
495 RepresentationBase &segmentProfilesRemove(const std::list<std::string>::iterator &it);
497
498 // @codecs
499
504 bool hasCodecs() const { return m_codecs.has_value(); };
505
510 const std::optional<Codecs> &codecs() const { return m_codecs; };
511
516 RepresentationBase &codecs(const std::nullopt_t&) { m_codecs.reset(); return *this; };
517
524 RepresentationBase &codecs(const Codecs &val) { m_codecs = val; return *this; };
525 RepresentationBase &codecs(Codecs &&val) { m_codecs = std::move(val); return *this; };
526 RepresentationBase &codecs(const std::optional<Codecs> &val) { m_codecs = val; return *this; };
527 RepresentationBase &codecs(std::optional<Codecs> &&val) { m_codecs = std::move(val); return *this; };
529
530 // @containerProfiles
531
536 const std::list<std::string> &containerProfiles() const { return m_containerProfiles; };
537
543 RepresentationBase &containerProfiles(const std::list<std::string> &profiles) { m_containerProfiles = profiles; return *this; };
544 RepresentationBase &containerProfiles(std::list<std::string> &&profiles) { m_containerProfiles = std::move(profiles); return *this; };
546
552 std::list<std::string>::const_iterator containerProfilesBegin() const { return m_containerProfiles.cbegin(); };
553 std::list<std::string>::iterator containerProfilesBegin() { return m_containerProfiles.begin(); };
555
561 std::list<std::string>::const_iterator containerProfilesEnd() const { return m_containerProfiles.cend(); };
562 std::list<std::string>::iterator containerProfilesEnd() { return m_containerProfiles.end(); };
564
574 const std::string &containerProfile(std::list<std::string>::size_type idx) const;
575
582 RepresentationBase &containerProfilesAdd(const std::string &val) { m_containerProfiles.push_back(val); return *this; };
583 RepresentationBase &containerProfilesAdd(std::string &&val) { m_containerProfiles.push_back(std::move(val)); return *this; };
585
592
599 RepresentationBase &containerProfilesRemove(const std::list<std::string>::const_iterator &it);
600 RepresentationBase &containerProfilesRemove(const std::list<std::string>::iterator &it);
602
603 // @maximumSAPPeriod
604
609 bool hasMaximumSAPPeriod() const { return m_maximumSAPPeriod.has_value(); };
610
615 const std::optional<double> &maximumSAPPeriod() const { return m_maximumSAPPeriod; };
616
621 RepresentationBase &maximumSAPPeriod(const std::nullopt_t&) { m_maximumSAPPeriod.reset(); return *this; };
622
629 RepresentationBase &maximumSAPPeriod(double val) { m_maximumSAPPeriod = val; return *this; };
630 RepresentationBase &maximumSAPPeriod(const std::optional<double> &val) { m_maximumSAPPeriod = val; return *this; };
631 RepresentationBase &maximumSAPPeriod(std::optional<double> &&val) { m_maximumSAPPeriod = std::move(val); return *this; };
633
634 // @startWithSAP
635
640 bool hasStartWithSAP() const { return m_startWithSAP.has_value(); };
641
646 const std::optional<SAP> &startWithSAP() const { return m_startWithSAP; };
647
652 RepresentationBase &startWithSAP(const std::nullopt_t&) { m_startWithSAP.reset(); return *this; };
653
660 RepresentationBase &startWithSAP(const SAP &val) { m_startWithSAP = val; return *this; };
661 RepresentationBase &startWithSAP(SAP &&val) { m_startWithSAP = std::move(val); return *this; };
662 RepresentationBase &startWithSAP(const std::optional<SAP> &val) { m_startWithSAP = val; return *this; };
663 RepresentationBase &startWithSAP(std::optional<SAP> &&val) { m_startWithSAP = std::move(val); return *this; };
665
666 // @maxPlayoutRate
667
672 bool hasMaxPlayoutRate() const { return m_maxPlayoutRate.has_value(); };
673
678 const std::optional<double> &maxPlayoutRate() const { return m_maxPlayoutRate; };
679
684 RepresentationBase &maxPlayoutRate(const std::nullopt_t&) { m_maxPlayoutRate.reset(); return *this; };
685
692 RepresentationBase &maxPlayoutRate(double val) { m_maxPlayoutRate = val; return *this; };
693 RepresentationBase &maxPlayoutRate(const std::optional<double> &val) { m_maxPlayoutRate = val; return *this; };
694 RepresentationBase &maxPlayoutRate(std::optional<double> &&val) { m_maxPlayoutRate = std::move(val); return *this; };
696
697 // @codingDependency
698
703 bool hasCodingDependency() const { return m_codingDependency.has_value(); };
704
709 const std::optional<bool> &codingDependency() const { return m_codingDependency; };
710
715 RepresentationBase &codingDependency(const std::nullopt_t&) { m_codingDependency.reset(); return *this; };
716
723 RepresentationBase &codingDependency(bool val) { m_codingDependency = val; return *this; };
724 RepresentationBase &codingDependency(const std::optional<bool> &val) { m_codingDependency = val; return *this; };
725 RepresentationBase &codingDependency(std::optional<bool> &&val) { m_codingDependency = std::move(val); return *this; };
727
728 // @scanType
729
734 bool hasScanType() const { return m_scanType.has_value(); };
735
740 const std::optional<VideoScan> &scanType() const { return m_scanType; };
741
746 RepresentationBase &scanType(const std::nullopt_t&) { m_scanType.reset(); return *this; };
747
754 RepresentationBase &scanType(const VideoScan &val) { m_scanType = val; return *this; };
755 RepresentationBase &scanType(VideoScan &&val) { m_scanType = std::move(val); return *this; };
756 RepresentationBase &scanType(const std::optional<VideoScan> &val) { m_scanType = val; return *this; };
757 RepresentationBase &scanType(std::optional<VideoScan> &&val) { m_scanType = std::move(val); return *this; };
759
760 // @selectionPriority
761
766 unsigned int selectionPriority() const { return m_selectionPriority; };
767
775 RepresentationBase &selectionPriority(unsigned int val) { m_selectionPriority = val; return *this; };
776
777 // @tag
778
783 bool hasTag() const { return m_tag.has_value(); };
784
789 const std::optional<std::string> &tag() const { return m_tag; };
790
795 RepresentationBase &tag(const std::nullopt_t&) { m_tag.reset(); return *this; };
796
803 RepresentationBase &tag(const std::string &val) { m_tag = val; return *this; };
804 RepresentationBase &tag(std::string &&val) { m_tag = std::move(val); return *this; };
805 RepresentationBase &tag(const std::optional<std::string> &val) { m_tag = val; return *this; };
806 RepresentationBase &tag(std::optional<std::string> &&val) { m_tag = std::move(val); return *this; };
808
809 // FramePacking children
810
815 const std::list<Descriptor> &framePackings() const { return m_framePackings; };
816
822 RepresentationBase &framePackings(const std::list<Descriptor> &packings) { m_framePackings = packings; return *this; };
823 RepresentationBase &framePackings(std::list<Descriptor> &&packings) { m_framePackings = std::move(packings); return *this; };
825
831 std::list<Descriptor>::const_iterator framePackingsBegin() const { return m_framePackings.cbegin(); };
832 std::list<Descriptor>::iterator framePackingsBegin() { return m_framePackings.begin(); };
834
840 std::list<Descriptor>::const_iterator framePackingsEnd() const { return m_framePackings.cend(); };
841 std::list<Descriptor>::iterator framePackingsEnd() { return m_framePackings.end(); };
843
853 const Descriptor &framePacking(std::list<Descriptor>::size_type idx) const;
854
861 RepresentationBase &framePackingsAdd(const Descriptor &val) { m_framePackings.push_back(val); return *this; };
862 RepresentationBase &framePackingsAdd(Descriptor &&val) { m_framePackings.push_back(std::move(val)); return *this; };
864
871
878 RepresentationBase &framePackingsRemove(const std::list<Descriptor>::const_iterator &it);
879 RepresentationBase &framePackingsRemove(const std::list<Descriptor>::iterator &it);
881
882 // AudioChannelConfiguration children
883
888 const std::list<Descriptor> &audioChannelConfigurations() const { return m_audioChannelConfigurations; };
889
895 RepresentationBase &audioChannelConfigurations(const std::list<Descriptor> &packings) { m_audioChannelConfigurations = packings; return *this; };
896 RepresentationBase &audioChannelConfigurations(std::list<Descriptor> &&packings) { m_audioChannelConfigurations = std::move(packings); return *this; };
898
904 std::list<Descriptor>::const_iterator audioChannelConfigurationsBegin() const { return m_audioChannelConfigurations.cbegin(); };
905 std::list<Descriptor>::iterator audioChannelConfigurationsBegin() { return m_audioChannelConfigurations.begin(); };
907
913 std::list<Descriptor>::const_iterator audioChannelConfigurationsEnd() const { return m_audioChannelConfigurations.cend(); };
914 std::list<Descriptor>::iterator audioChannelConfigurationsEnd() { return m_audioChannelConfigurations.end(); };
916
926 const Descriptor &audioChannelConfiguration(std::list<Descriptor>::size_type idx) const;
927
935 m_audioChannelConfigurations.push_back(val); return *this;
936 };
938 m_audioChannelConfigurations.push_back(std::move(val)); return *this;
939 };
940
941
948
955 RepresentationBase &audioChannelConfigurationsRemove(const std::list<Descriptor>::const_iterator &it);
956 RepresentationBase &audioChannelConfigurationsRemove(const std::list<Descriptor>::iterator &it);
958
959 // ContentProtection children
960
965 const std::list<ContentProtection> &contentProtections() const { return m_contentProtections; };
966
972 RepresentationBase &contentProtections(const std::list<ContentProtection> &protections) {
973 m_contentProtections = protections; return *this;
974 };
975 RepresentationBase &contentProtections(std::list<ContentProtection> &&protections) {
976 m_contentProtections = std::move(protections); return *this;
977 };
978
979
985 std::list<ContentProtection>::const_iterator contentProtectionsBegin() const { return m_contentProtections.cbegin(); };
986 std::list<ContentProtection>::iterator contentProtectionsBegin() { return m_contentProtections.begin(); };
988
994 std::list<ContentProtection>::const_iterator contentProtectionsEnd() const { return m_contentProtections.cend(); };
995 std::list<ContentProtection>::iterator contentProtectionsEnd() { return m_contentProtections.end(); };
997
1007 const ContentProtection &contentProtection(std::list<ContentProtection>::size_type idx) const;
1008
1016 m_contentProtections.push_back(val); return *this;
1017 };
1019 m_contentProtections.push_back(std::move(val)); return *this;
1020 };
1021
1022
1029
1036 RepresentationBase &contentProtectionsRemove(const std::list<ContentProtection>::const_iterator &it);
1037 RepresentationBase &contentProtectionsRemove(const std::list<ContentProtection>::iterator &it);
1039
1040 // OutputProtection child
1041
1046 bool hasOutputProtection() const { return m_outputProtection.has_value(); };
1047
1052 const std::optional<Descriptor> &outputProtection() const { return m_outputProtection; };
1053
1058 RepresentationBase &outputProtection(const std::nullopt_t&) { m_outputProtection.reset(); return *this; };
1059
1066 RepresentationBase &outputProtection(const Descriptor &val) { m_outputProtection = val; return *this; };
1067 RepresentationBase &outputProtection(Descriptor &&val) { m_outputProtection = std::move(val); return *this; };
1068 RepresentationBase &outputProtection(const std::optional<Descriptor> &val) { m_outputProtection = val; return *this; };
1069 RepresentationBase &outputProtection(std::optional<Descriptor> &&val) { m_outputProtection = std::move(val); return *this; };
1071
1072 // EssentialProperty children
1073
1078 const std::list<Descriptor> &essentialProperties() const { return m_essentialProperties; };
1079
1085 RepresentationBase &essentialProperties(const std::list<Descriptor> &properties) {
1086 m_essentialProperties = properties; return *this;
1087 };
1088 RepresentationBase &essentialProperties(std::list<Descriptor> &&properties) {
1089 m_essentialProperties = std::move(properties); return *this;
1090 };
1091
1092
1098 std::list<Descriptor>::const_iterator essentialPropertiesBegin() const { return m_essentialProperties.cbegin(); };
1099 std::list<Descriptor>::iterator essentialPropertiesBegin() { return m_essentialProperties.begin(); };
1101
1107 std::list<Descriptor>::const_iterator essentialPropertiesEnd() const { return m_essentialProperties.cend(); };
1108 std::list<Descriptor>::iterator essentialPropertiesEnd() { return m_essentialProperties.end(); };
1110
1120 const Descriptor &essentialProperty(std::list<Descriptor>::size_type idx) const;
1121
1128 RepresentationBase &essentialPropertiesAdd(const Descriptor &val) { m_essentialProperties.push_back(val); return *this; };
1129 RepresentationBase &essentialPropertiesAdd(Descriptor &&val) { m_essentialProperties.push_back(std::move(val)); return *this; };
1131
1138
1145 RepresentationBase &essentialPropertiesRemove(const std::list<Descriptor>::const_iterator &it);
1146 RepresentationBase &essentialPropertiesRemove(const std::list<Descriptor>::iterator &it);
1148
1149 // SupplementalProperty children
1150
1155 const std::list<Descriptor> &supplementalProperties() const { return m_supplementalProperties; };
1156
1162 RepresentationBase &supplementalProperties(const std::list<Descriptor> &properties) {
1163 m_supplementalProperties = properties; return *this;
1164 };
1165 RepresentationBase &supplementalProperties(std::list<Descriptor> &&properties) {
1166 m_supplementalProperties = std::move(properties); return *this;
1167 };
1168
1169
1175 std::list<Descriptor>::const_iterator supplementalPropertiesBegin() const { return m_supplementalProperties.cbegin(); };
1176 std::list<Descriptor>::iterator supplementalPropertiesBegin() { return m_supplementalProperties.begin(); };
1178
1184 std::list<Descriptor>::const_iterator supplementalPropertiesEnd() const { return m_supplementalProperties.cend(); };
1185 std::list<Descriptor>::iterator supplementalPropertiesEnd() { return m_supplementalProperties.end(); };
1187
1197 const Descriptor &supplementalProperty(std::list<Descriptor>::size_type idx) const;
1198
1205 RepresentationBase &supplementalPropertiesAdd(const Descriptor &val) { m_supplementalProperties.push_back(val); return *this; };
1206 RepresentationBase &supplementalPropertiesAdd(Descriptor &&val) { m_supplementalProperties.push_back(std::move(val)); return *this; };
1208
1215
1222 RepresentationBase &supplementalPropertiesRemove(const std::list<Descriptor>::const_iterator &it);
1223 RepresentationBase &supplementalPropertiesRemove(const std::list<Descriptor>::iterator &it);
1225
1226 // InbandEventStream children
1227
1232 const std::list<EventStream> &inbandEventStreams() const { return m_inbandEventStreams; };
1233
1239 RepresentationBase &inbandEventStreams(const std::list<EventStream> &streams) {
1240 m_inbandEventStreams = streams; return *this;
1241 };
1242 RepresentationBase &inbandEventStreams(std::list<EventStream> &&streams) {
1243 m_inbandEventStreams = std::move(streams); return *this;
1244 };
1245
1246
1252 std::list<EventStream>::const_iterator inbandEventStreamsBegin() const { return m_inbandEventStreams.cbegin(); };
1253 std::list<EventStream>::iterator inbandEventStreamsBegin() { return m_inbandEventStreams.begin(); };
1255
1261 std::list<EventStream>::const_iterator inbandEventStreamsEnd() const { return m_inbandEventStreams.cend(); };
1262 std::list<EventStream>::iterator inbandEventStreamsEnd() { return m_inbandEventStreams.end(); };
1264
1274 const EventStream &inbandEventStream(std::list<EventStream>::size_type idx) const;
1275
1283 m_inbandEventStreams.push_back(val); return *this;
1284 };
1286 m_inbandEventStreams.push_back(std::move(val)); return *this;
1287 };
1288
1289
1296
1303 RepresentationBase &inbandEventStreamsRemove(const std::list<EventStream>::const_iterator &it);
1304 RepresentationBase &inbandEventStreamsRemove(const std::list<EventStream>::iterator &it);
1306
1307 // Switching children
1308
1313 const std::list<Switching> &switchings() const { return m_switchings; };
1314
1320 RepresentationBase &switchings(const std::list<Switching> &_switchings) {
1321 m_switchings = _switchings; return *this;
1322 };
1323 RepresentationBase &switchings(std::list<Switching> &&_switchings) {
1324 m_switchings = std::move(_switchings); return *this;
1325 };
1326
1327
1333 std::list<Switching>::const_iterator switchingsBegin() const { return m_switchings.cbegin(); };
1334 std::list<Switching>::iterator switchingsBegin() { return m_switchings.begin(); };
1336
1342 std::list<Switching>::const_iterator switchingsEnd() const { return m_switchings.cend(); };
1343 std::list<Switching>::iterator switchingsEnd() { return m_switchings.end(); };
1345
1355 const Switching &switching(std::list<Switching>::size_type idx) const;
1356
1364 m_switchings.push_back(val); return *this;
1365 };
1367 m_switchings.push_back(std::move(val)); return *this;
1368 };
1369
1370
1377
1384 RepresentationBase &switchingsRemove(const std::list<Switching>::const_iterator &it);
1385 RepresentationBase &switchingsRemove(const std::list<Switching>::iterator &it);
1387
1388 // RandomAccess children
1389
1394 const std::list<RandomAccess> &randomAccesses() const { return m_randomAccesses; };
1395
1401 RepresentationBase &randomAccesses(const std::list<RandomAccess> &accesses) {
1402 m_randomAccesses = accesses; return *this;
1403 };
1404 RepresentationBase &randomAccesses(std::list<RandomAccess> &&accesses) {
1405 m_randomAccesses = std::move(accesses); return *this;
1406 };
1407
1408
1414 std::list<RandomAccess>::const_iterator randomAccessesBegin() const { return m_randomAccesses.cbegin(); };
1415 std::list<RandomAccess>::iterator randomAccessesBegin() { return m_randomAccesses.begin(); };
1417
1423 std::list<RandomAccess>::const_iterator randomAccessesEnd() const { return m_randomAccesses.cend(); };
1424 std::list<RandomAccess>::iterator randomAccessesEnd() { return m_randomAccesses.end(); };
1426
1436 const RandomAccess &randomAccess(std::list<RandomAccess>::size_type idx) const;
1437
1445 m_randomAccesses.push_back(val); return *this;
1446 };
1448 m_randomAccesses.push_back(std::move(val)); return *this;
1449 };
1450
1451
1458
1465 RepresentationBase &randomAccessesRemove(const std::list<RandomAccess>::const_iterator &it);
1466 RepresentationBase &randomAccessesRemove(const std::list<RandomAccess>::iterator &it);
1468
1469 // GroupLabel children
1470
1475 const std::list<Label> &groupLabels() const { return m_groupLabels; };
1476
1482 RepresentationBase &groupLabels(const std::list<Label> &labels) {
1483 m_groupLabels = labels; return *this;
1484 };
1486 m_groupLabels = std::move(labels); return *this;
1487 };
1488
1489
1495 std::list<Label>::const_iterator groupLabelsBegin() const { return m_groupLabels.cbegin(); };
1496 std::list<Label>::iterator groupLabelsBegin() { return m_groupLabels.begin(); };
1498
1504 std::list<Label>::const_iterator groupLabelsEnd() const { return m_groupLabels.cend(); };
1505 std::list<Label>::iterator groupLabelsEnd() { return m_groupLabels.end(); };
1507
1517 const Label &groupLabel(std::list<Label>::size_type idx) const;
1518
1526 m_groupLabels.push_back(val); return *this;
1527 };
1529 m_groupLabels.push_back(std::move(val)); return *this;
1530 };
1531
1532
1539
1546 RepresentationBase &groupLabelsRemove(const std::list<Label>::const_iterator &it);
1547 RepresentationBase &groupLabelsRemove(const std::list<Label>::iterator &it);
1549
1550 // Label children
1551
1556 const std::list<Label> &labels() const { return m_labels; };
1557
1563 RepresentationBase &labels(const std::list<Label> &_labels) {
1564 m_labels = _labels; return *this;
1565 };
1566 RepresentationBase &labels(std::list<Label> &&_labels) {
1567 m_labels = std::move(_labels); return *this;
1568 };
1569
1570
1576 std::list<Label>::const_iterator labelsBegin() const { return m_labels.cbegin(); };
1577 std::list<Label>::iterator labelsBegin() { return m_labels.begin(); };
1579
1585 std::list<Label>::const_iterator labelsEnd() const { return m_labels.cend(); };
1586 std::list<Label>::iterator labelsEnd() { return m_labels.end(); };
1588
1598 const Label &label(std::list<Label>::size_type idx) const;
1599
1607 m_labels.push_back(val); return *this;
1608 };
1610 m_labels.push_back(std::move(val)); return *this;
1611 };
1612
1613
1620
1627 RepresentationBase &labelsRemove(const std::list<Label>::const_iterator &it);
1628 RepresentationBase &labelsRemove(const std::list<Label>::iterator &it);
1630
1631 // ProducerReferenceTime children
1632
1637 const std::list<ProducerReferenceTime> &producerReferenceTimes() const { return m_producerReferenceTimes; };
1638
1644 RepresentationBase &producerReferenceTimes(const std::list<ProducerReferenceTime> &times) {
1645 m_producerReferenceTimes = times; return *this;
1646 };
1647 RepresentationBase &producerReferenceTimes(std::list<ProducerReferenceTime> &&times) {
1648 m_producerReferenceTimes = std::move(times); return *this;
1649 };
1650
1651
1657 std::list<ProducerReferenceTime>::const_iterator producerReferenceTimesBegin() const { return m_producerReferenceTimes.cbegin(); };
1658 std::list<ProducerReferenceTime>::iterator producerReferenceTimesBegin() { return m_producerReferenceTimes.begin(); };
1660
1666 std::list<ProducerReferenceTime>::const_iterator producerReferenceTimesEnd() const { return m_producerReferenceTimes.cend(); };
1667 std::list<ProducerReferenceTime>::iterator producerReferenceTimesEnd() { return m_producerReferenceTimes.end(); };
1669
1679 const ProducerReferenceTime &producerReferenceTime(std::list<ProducerReferenceTime>::size_type idx) const;
1680
1687 RepresentationBase &producerReferenceTimesAdd(const ProducerReferenceTime &val) {
1688 m_producerReferenceTimes.push_back(val); return *this;
1689 };
1690 RepresentationBase &producerReferenceTimesAdd(ProducerReferenceTime &&val) {
1691 m_producerReferenceTimes.push_back(std::move(val)); return *this;
1692 };
1693
1694
1700 RepresentationBase &producerReferenceTimesRemove(const ProducerReferenceTime &val);
1701
1708 RepresentationBase &producerReferenceTimesRemove(const std::list<ProducerReferenceTime>::const_iterator &it);
1709 RepresentationBase &producerReferenceTimesRemove(const std::list<ProducerReferenceTime>::iterator &it);
1711
1712 // ContentPopularityRate children
1713
1718 const std::list<ContentPopularityRate> &contentPopularityRates() const { return m_contentPopularityRates; };
1719
1725 RepresentationBase &contentPopularityRates(const std::list<ContentPopularityRate> &rates) {
1726 m_contentPopularityRates = rates; return *this;
1727 };
1728 RepresentationBase &contentPopularityRates(std::list<ContentPopularityRate> &&rates) {
1729 m_contentPopularityRates = std::move(rates); return *this;
1730 };
1731
1732
1738 std::list<ContentPopularityRate>::const_iterator contentPopularityRatesBegin() const { return m_contentPopularityRates.cbegin(); };
1739 std::list<ContentPopularityRate>::iterator contentPopularityRatesBegin() { return m_contentPopularityRates.begin(); };
1741
1747 std::list<ContentPopularityRate>::const_iterator contentPopularityRatesEnd() const { return m_contentPopularityRates.cend(); };
1748 std::list<ContentPopularityRate>::iterator contentPopularityRatesEnd() { return m_contentPopularityRates.end(); };
1750
1760 const ContentPopularityRate &contentPopularityRate(std::list<ContentPopularityRate>::size_type idx) const;
1761
1769 m_contentPopularityRates.push_back(val); return *this;
1770 };
1772 m_contentPopularityRates.push_back(std::move(val)); return *this;
1773 };
1774
1775
1782
1789 RepresentationBase &contentPopularityRatesRemove(const std::list<ContentPopularityRate>::const_iterator &it);
1790 RepresentationBase &contentPopularityRatesRemove(const std::list<ContentPopularityRate>::iterator &it);
1792
1793 // Resync children
1794
1799 const std::list<Resync> &resyncs() const { return m_resyncs; };
1800
1806 RepresentationBase &resyncs(const std::list<Resync> &_resyncs) {
1807 m_resyncs = _resyncs; return *this;
1808 };
1809 RepresentationBase &resyncs(std::list<Resync> &&_resyncs) {
1810 m_resyncs = std::move(_resyncs); return *this;
1811 };
1812
1813
1819 std::list<Resync>::const_iterator resyncsBegin() const { return m_resyncs.cbegin(); };
1820 std::list<Resync>::iterator resyncsBegin() { return m_resyncs.begin(); };
1822
1828 std::list<Resync>::const_iterator resyncsEnd() const { return m_resyncs.cend(); };
1829 std::list<Resync>::iterator resyncsEnd() { return m_resyncs.end(); };
1831
1841 const Resync &resync(std::list<Resync>::size_type idx) const;
1842
1850 m_resyncs.push_back(val); return *this;
1851 };
1853 m_resyncs.push_back(std::move(val)); return *this;
1854 };
1855
1856
1863
1870 RepresentationBase &resyncsRemove(const std::list<Resync>::const_iterator &it);
1871 RepresentationBase &resyncsRemove(const std::list<Resync>::iterator &it);
1873
1875protected:
1882 RepresentationBase(xmlpp::Node &node);
1883
1890 void setXMLElement(xmlpp::Element &elem) const;
1891
1893
1894private:
1895 // RepresentationBase attributes (ISO 23009-1:2022 Clause 5.3.7.3)
1896 std::list<URI> m_profiles;
1897 std::optional<unsigned int> m_width;
1898 std::optional<unsigned int> m_height;
1899 std::optional<Ratio> m_sar;
1900 std::optional<FrameRate> m_frameRate;
1901 std::list<unsigned int> m_audioSamplingRates; // if present must contain 1 or 2 entries
1902 std::optional<std::string> m_mimeType;
1903 std::list<std::string> m_segmentProfiles;
1904 std::optional<Codecs> m_codecs;
1905 std::list<std::string> m_containerProfiles;
1906 std::optional<double> m_maximumSAPPeriod;
1907 std::optional<SAP> m_startWithSAP;
1908 std::optional<double> m_maxPlayoutRate;
1909 std::optional<bool> m_codingDependency;
1910 std::optional<VideoScan> m_scanType;
1911 unsigned int m_selectionPriority; // default = 1
1912 std::optional<std::string> m_tag;
1913
1914 // RepresentationBase child elements (ISO 23009-1:2022 Clause 5.3.7.3)
1915 std::list<Descriptor> m_framePackings;
1916 std::list<Descriptor> m_audioChannelConfigurations;
1917 std::list<ContentProtection> m_contentProtections;
1918 std::optional<Descriptor> m_outputProtection;
1919 std::list<Descriptor> m_essentialProperties;
1920 std::list<Descriptor> m_supplementalProperties;
1921 std::list<EventStream> m_inbandEventStreams;
1922 std::list<Switching> m_switchings;
1923 std::list<RandomAccess> m_randomAccesses;
1924 std::list<Label> m_groupLabels;
1925 std::list<Label> m_labels;
1926 std::list<ProducerReferenceTime> m_producerReferenceTimes;
1927 std::list<ContentPopularityRate> m_contentPopularityRates;
1928 std::list<Resync> m_resyncs;
1929};
1930
1932
1933/* vim:ts=8:sts=4:sw=4:expandtab:
1934 */
1935#endif /*_BBC_PARSE_DASH_MPD_REPRESENTATION_BASE_HH_*/
1936
Definition Codecs.hh:29
Definition ContentPopularityRate.hh:38
Definition ContentProtection.hh:37
Definition Descriptor.hh:41
Definition EventStream.hh:39
Definition FrameRate.hh:38
size_t size_type
Type used to hold numerators and denominators.
Definition FrameRate.hh:40
Definition Label.hh:37
Definition RandomAccess.hh:36
Definition Ratio.hh:36
const std::list< Label > & labels() const
Definition RepresentationBase.hh:1556
RepresentationBase & supplementalPropertiesRemove(const std::list< Descriptor >::iterator &it)
std::list< Descriptor >::iterator framePackingsBegin()
Definition RepresentationBase.hh:832
RepresentationBase & codingDependency(const std::optional< bool > &val)
Definition RepresentationBase.hh:724
RepresentationBase & containerProfilesAdd(const std::string &val)
Definition RepresentationBase.hh:582
std::list< std::string >::const_iterator segmentProfilesEnd() const
Definition RepresentationBase.hh:456
std::list< Descriptor >::iterator framePackingsEnd()
Definition RepresentationBase.hh:841
const std::list< ProducerReferenceTime > & producerReferenceTimes() const
Definition RepresentationBase.hh:1637
RepresentationBase & scanType(std::optional< VideoScan > &&val)
Definition RepresentationBase.hh:757
bool hasFrameRate() const
Definition RepresentationBase.hh:288
const std::string & segmentProfile(std::list< std::string >::size_type idx) const
RepresentationBase & groupLabelsAdd(Label &&val)
Definition RepresentationBase.hh:1528
RepresentationBase & audioChannelConfigurationsAdd(const Descriptor &val)
Definition RepresentationBase.hh:934
RepresentationBase & tag(const std::string &val)
Definition RepresentationBase.hh:803
RepresentationBase & switchingsRemove(const std::list< Switching >::iterator &it)
RepresentationBase & groupLabels(const std::list< Label > &labels)
Definition RepresentationBase.hh:1482
std::list< RandomAccess >::const_iterator randomAccessesBegin() const
Definition RepresentationBase.hh:1414
std::list< Descriptor >::const_iterator essentialPropertiesBegin() const
Definition RepresentationBase.hh:1098
RepresentationBase & mimeType(const std::nullopt_t &)
Definition RepresentationBase.hh:411
std::list< ContentPopularityRate >::iterator contentPopularityRatesEnd()
Definition RepresentationBase.hh:1748
std::list< Descriptor >::const_iterator audioChannelConfigurationsEnd() const
Definition RepresentationBase.hh:913
RepresentationBase & profilesRemove(const URI &val)
RepresentationBase & supplementalPropertiesAdd(Descriptor &&val)
Definition RepresentationBase.hh:1206
RepresentationBase & outputProtection(const Descriptor &val)
Definition RepresentationBase.hh:1066
RepresentationBase & supplementalPropertiesRemove(const Descriptor &val)
RepresentationBase & operator=(RepresentationBase &&to_move)
unsigned int selectionPriority() const
Definition RepresentationBase.hh:766
const Switching & switching(std::list< Switching >::size_type idx) const
RepresentationBase & codecs(Codecs &&val)
Definition RepresentationBase.hh:525
RepresentationBase & switchingsAdd(const Switching &val)
Definition RepresentationBase.hh:1363
const std::list< Descriptor > & supplementalProperties() const
Definition RepresentationBase.hh:1155
RepresentationBase & frameRate(FrameRate &&val)
Definition RepresentationBase.hh:309
std::list< URI >::const_iterator profilesEnd() const
Definition RepresentationBase.hh:139
RepresentationBase & labelsAdd(Label &&val)
Definition RepresentationBase.hh:1609
RepresentationBase & producerReferenceTimesRemove(const std::list< ProducerReferenceTime >::const_iterator &it)
RepresentationBase & containerProfilesRemove(const std::list< std::string >::iterator &it)
const Descriptor & audioChannelConfiguration(std::list< Descriptor >::size_type idx) const
std::list< Label >::const_iterator labelsBegin() const
Definition RepresentationBase.hh:1576
std::list< ContentPopularityRate >::const_iterator contentPopularityRatesBegin() const
Definition RepresentationBase.hh:1738
RepresentationBase & labelsRemove(const std::list< Label >::const_iterator &it)
const std::list< Descriptor > & framePackings() const
Definition RepresentationBase.hh:815
const std::list< URI > & profiles() const
Definition RepresentationBase.hh:123
RepresentationBase(RepresentationBase &&to_move)
RepresentationBase & height(const std::nullopt_t &)
Definition RepresentationBase.hh:233
RepresentationBase & resyncsRemove(const Resync &val)
RepresentationBase & profiles(std::list< URI > &&_profiles)
Definition RepresentationBase.hh:150
RepresentationBase & supplementalPropertiesAdd(const Descriptor &val)
Definition RepresentationBase.hh:1205
const std::list< ContentProtection > & contentProtections() const
Definition RepresentationBase.hh:965
const std::list< EventStream > & inbandEventStreams() const
Definition RepresentationBase.hh:1232
const ContentProtection & contentProtection(std::list< ContentProtection >::size_type idx) const
std::list< Descriptor >::const_iterator essentialPropertiesEnd() const
Definition RepresentationBase.hh:1107
RepresentationBase & switchingsRemove(const std::list< Switching >::const_iterator &it)
RepresentationBase & resyncsAdd(const Resync &val)
Definition RepresentationBase.hh:1849
RepresentationBase & segmentProfiles(std::list< std::string > &&profiles)
Definition RepresentationBase.hh:439
RepresentationBase & tag(std::string &&val)
Definition RepresentationBase.hh:804
std::list< Descriptor >::const_iterator framePackingsBegin() const
Definition RepresentationBase.hh:831
RepresentationBase & mimeType(std::string &&val)
Definition RepresentationBase.hh:420
RepresentationBase & tag(const std::optional< std::string > &val)
Definition RepresentationBase.hh:805
RepresentationBase & producerReferenceTimesRemove(const std::list< ProducerReferenceTime >::iterator &it)
RepresentationBase & mimeType(std::optional< std::string > &&val)
Definition RepresentationBase.hh:422
RepresentationBase & operator=(const RepresentationBase &to_copy)
std::list< Descriptor >::const_iterator audioChannelConfigurationsBegin() const
Definition RepresentationBase.hh:904
RepresentationBase & profilesRemove(const std::list< URI >::const_iterator &it)
std::list< Descriptor >::const_iterator supplementalPropertiesBegin() const
Definition RepresentationBase.hh:1175
bool hasWidth() const
Definition RepresentationBase.hh:194
std::list< ProducerReferenceTime >::const_iterator producerReferenceTimesBegin() const
Definition RepresentationBase.hh:1657
RepresentationBase & producerReferenceTimesAdd(const ProducerReferenceTime &val)
Definition RepresentationBase.hh:1687
const ContentPopularityRate & contentPopularityRate(std::list< ContentPopularityRate >::size_type idx) const
bool hasSar() const
Definition RepresentationBase.hh:252
bool operator==(const RepresentationBase &to_compare) const
std::list< Descriptor >::iterator audioChannelConfigurationsEnd()
Definition RepresentationBase.hh:914
RepresentationBase & resyncs(std::list< Resync > &&_resyncs)
Definition RepresentationBase.hh:1809
std::list< Resync >::iterator resyncsBegin()
Definition RepresentationBase.hh:1820
RepresentationBase & height(const std::optional< unsigned int > &val)
Definition RepresentationBase.hh:242
std::list< Label >::iterator labelsBegin()
Definition RepresentationBase.hh:1577
std::list< Resync >::iterator resyncsEnd()
Definition RepresentationBase.hh:1829
const std::optional< FrameRate > & frameRate() const
Definition RepresentationBase.hh:294
RepresentationBase & sar(const Ratio &val)
Definition RepresentationBase.hh:276
std::list< ContentProtection >::const_iterator contentProtectionsBegin() const
Definition RepresentationBase.hh:985
const std::list< Descriptor > & audioChannelConfigurations() const
Definition RepresentationBase.hh:888
RepresentationBase & inbandEventStreamsAdd(const EventStream &val)
Definition RepresentationBase.hh:1282
bool hasTag() const
Definition RepresentationBase.hh:783
RepresentationBase & randomAccessesAdd(const RandomAccess &val)
Definition RepresentationBase.hh:1444
RepresentationBase & profilesAdd(const URI &val)
Definition RepresentationBase.hh:167
RepresentationBase & switchingsAdd(Switching &&val)
Definition RepresentationBase.hh:1366
const std::optional< unsigned int > & height() const
Definition RepresentationBase.hh:227
RepresentationBase & containerProfilesRemove(const std::string &val)
RepresentationBase & maximumSAPPeriod(std::optional< double > &&val)
Definition RepresentationBase.hh:631
const std::optional< double > & maxPlayoutRate() const
Definition RepresentationBase.hh:678
std::list< unsignedint >::iterator audioSamplingRatesEnd()
Definition RepresentationBase.hh:348
std::list< Descriptor >::const_iterator framePackingsEnd() const
Definition RepresentationBase.hh:840
RepresentationBase & sar(const std::nullopt_t &)
Definition RepresentationBase.hh:266
std::list< URI >::const_iterator profilesBegin() const
Definition RepresentationBase.hh:130
RepresentationBase & maxPlayoutRate(double val)
Definition RepresentationBase.hh:692
RepresentationBase & audioChannelConfigurations(std::list< Descriptor > &&packings)
Definition RepresentationBase.hh:896
RepresentationBase & scanType(const std::optional< VideoScan > &val)
Definition RepresentationBase.hh:756
RepresentationBase & codecs(std::optional< Codecs > &&val)
Definition RepresentationBase.hh:527
RepresentationBase & contentPopularityRates(std::list< ContentPopularityRate > &&rates)
Definition RepresentationBase.hh:1728
std::list< ContentPopularityRate >::const_iterator contentPopularityRatesEnd() const
Definition RepresentationBase.hh:1747
RepresentationBase & contentProtections(std::list< ContentProtection > &&protections)
Definition RepresentationBase.hh:975
RepresentationBase & containerProfiles(const std::list< std::string > &profiles)
Definition RepresentationBase.hh:543
const std::optional< std::string > & mimeType() const
Definition RepresentationBase.hh:405
RepresentationBase & scanType(const std::nullopt_t &)
Definition RepresentationBase.hh:746
RepresentationBase & framePackingsRemove(const std::list< Descriptor >::const_iterator &it)
const std::list< Switching > & switchings() const
Definition RepresentationBase.hh:1313
std::list< Resync >::const_iterator resyncsBegin() const
Definition RepresentationBase.hh:1819
RepresentationBase & codecs(const std::optional< Codecs > &val)
Definition RepresentationBase.hh:526
RepresentationBase & groupLabelsRemove(const std::list< Label >::const_iterator &it)
RepresentationBase & essentialPropertiesRemove(const std::list< Descriptor >::const_iterator &it)
RepresentationBase & audioSamplingRatesRemove(unsigned int val)
std::list< std::string >::iterator containerProfilesEnd()
Definition RepresentationBase.hh:562
const std::list< std::string > & containerProfiles() const
Definition RepresentationBase.hh:536
RepresentationBase & randomAccesses(const std::list< RandomAccess > &accesses)
Definition RepresentationBase.hh:1401
RepresentationBase & segmentProfilesRemove(const std::string &val)
RepresentationBase & frameRate(FrameRate::size_type numerator, FrameRate::size_type denominator=1)
Definition RepresentationBase.hh:320
RepresentationBase & contentProtectionsRemove(const std::list< ContentProtection >::const_iterator &it)
RepresentationBase & maxPlayoutRate(std::optional< double > &&val)
Definition RepresentationBase.hh:694
std::list< std::string >::const_iterator containerProfilesBegin() const
Definition RepresentationBase.hh:552
RepresentationBase & essentialPropertiesAdd(Descriptor &&val)
Definition RepresentationBase.hh:1129
std::list< ProducerReferenceTime >::const_iterator producerReferenceTimesEnd() const
Definition RepresentationBase.hh:1666
RepresentationBase & contentProtectionsAdd(const ContentProtection &val)
Definition RepresentationBase.hh:1015
RepresentationBase & maximumSAPPeriod(const std::optional< double > &val)
Definition RepresentationBase.hh:630
RepresentationBase & audioSamplingRatesRemove(const std::list< unsigned int >::const_iterator &it)
RepresentationBase & contentPopularityRatesRemove(const std::list< ContentPopularityRate >::const_iterator &it)
std::list< Switching >::const_iterator switchingsEnd() const
Definition RepresentationBase.hh:1342
RepresentationBase & audioChannelConfigurations(const std::list< Descriptor > &packings)
Definition RepresentationBase.hh:895
RepresentationBase & startWithSAP(std::optional< SAP > &&val)
Definition RepresentationBase.hh:663
std::list< RandomAccess >::iterator randomAccessesEnd()
Definition RepresentationBase.hh:1424
RepresentationBase & randomAccessesAdd(RandomAccess &&val)
Definition RepresentationBase.hh:1447
const std::optional< bool > & codingDependency() const
Definition RepresentationBase.hh:709
const RandomAccess & randomAccess(std::list< RandomAccess >::size_type idx) const
RepresentationBase & maximumSAPPeriod(double val)
Definition RepresentationBase.hh:629
RepresentationBase & resyncsAdd(Resync &&val)
Definition RepresentationBase.hh:1852
std::list< Label >::iterator groupLabelsBegin()
Definition RepresentationBase.hh:1496
RepresentationBase & codecs(const Codecs &val)
Definition RepresentationBase.hh:524
RepresentationBase & resyncsRemove(const std::list< Resync >::iterator &it)
RepresentationBase & tag(std::optional< std::string > &&val)
Definition RepresentationBase.hh:806
std::list< std::string >::iterator containerProfilesBegin()
Definition RepresentationBase.hh:553
RepresentationBase & inbandEventStreams(const std::list< EventStream > &streams)
Definition RepresentationBase.hh:1239
RepresentationBase & randomAccesses(std::list< RandomAccess > &&accesses)
Definition RepresentationBase.hh:1404
std::list< Descriptor >::iterator supplementalPropertiesBegin()
Definition RepresentationBase.hh:1176
RepresentationBase & segmentProfilesRemove(const std::list< std::string >::iterator &it)
std::list< Label >::iterator groupLabelsEnd()
Definition RepresentationBase.hh:1505
RepresentationBase(const RepresentationBase &to_copy)
RepresentationBase & essentialPropertiesRemove(const Descriptor &val)
const Label & label(std::list< Label >::size_type idx) const
RepresentationBase & producerReferenceTimes(std::list< ProducerReferenceTime > &&times)
Definition RepresentationBase.hh:1647
RepresentationBase & sar(Ratio &&val)
Definition RepresentationBase.hh:277
RepresentationBase & inbandEventStreamsRemove(const std::list< EventStream >::iterator &it)
const std::optional< Ratio > & sar() const
Definition RepresentationBase.hh:260
std::list< Label >::const_iterator groupLabelsEnd() const
Definition RepresentationBase.hh:1504
std::list< Descriptor >::const_iterator supplementalPropertiesEnd() const
Definition RepresentationBase.hh:1184
std::list< Switching >::iterator switchingsBegin()
Definition RepresentationBase.hh:1334
RepresentationBase & switchings(const std::list< Switching > &_switchings)
Definition RepresentationBase.hh:1320
const std::optional< unsigned int > & width() const
Definition RepresentationBase.hh:200
RepresentationBase & labels(const std::list< Label > &_labels)
Definition RepresentationBase.hh:1563
RepresentationBase & maxPlayoutRate(const std::nullopt_t &)
Definition RepresentationBase.hh:684
RepresentationBase & essentialPropertiesRemove(const std::list< Descriptor >::iterator &it)
RepresentationBase & frameRate(const FrameRate &val)
Definition RepresentationBase.hh:308
std::list< Switching >::iterator switchingsEnd()
Definition RepresentationBase.hh:1343
RepresentationBase & audioSamplingRatesAdd(unsigned int val)
Definition RepresentationBase.hh:374
const Descriptor & supplementalProperty(std::list< Descriptor >::size_type idx) const
const std::list< unsigned int > & audioSamplingRates() const
Definition RepresentationBase.hh:331
RepresentationBase & startWithSAP(const std::nullopt_t &)
Definition RepresentationBase.hh:652
std::list< EventStream >::const_iterator inbandEventStreamsEnd() const
Definition RepresentationBase.hh:1261
RepresentationBase & framePackingsRemove(const Descriptor &val)
RepresentationBase & codingDependency(std::optional< bool > &&val)
Definition RepresentationBase.hh:725
RepresentationBase & height(unsigned int val)
Definition RepresentationBase.hh:241
std::list< std::string >::const_iterator containerProfilesEnd() const
Definition RepresentationBase.hh:561
const std::optional< VideoScan > & scanType() const
Definition RepresentationBase.hh:740
std::list< Descriptor >::iterator supplementalPropertiesEnd()
Definition RepresentationBase.hh:1185
std::list< ContentPopularityRate >::iterator contentPopularityRatesBegin()
Definition RepresentationBase.hh:1739
RepresentationBase & framePackings(const std::list< Descriptor > &packings)
Definition RepresentationBase.hh:822
std::list< URI >::iterator profilesBegin()
Definition RepresentationBase.hh:131
RepresentationBase & essentialPropertiesAdd(const Descriptor &val)
Definition RepresentationBase.hh:1128
bool hasStartWithSAP() const
Definition RepresentationBase.hh:640
RepresentationBase & groupLabelsAdd(const Label &val)
Definition RepresentationBase.hh:1525
RepresentationBase & labelsAdd(const Label &val)
Definition RepresentationBase.hh:1606
RepresentationBase & labels(std::list< Label > &&_labels)
Definition RepresentationBase.hh:1566
RepresentationBase & selectionPriority(unsigned int val)
Definition RepresentationBase.hh:775
RepresentationBase & audioChannelConfigurationsAdd(Descriptor &&val)
Definition RepresentationBase.hh:937
const std::list< RandomAccess > & randomAccesses() const
Definition RepresentationBase.hh:1394
RepresentationBase & startWithSAP(const std::optional< SAP > &val)
Definition RepresentationBase.hh:662
RepresentationBase & contentPopularityRatesRemove(const ContentPopularityRate &val)
bool hasCodingDependency() const
Definition RepresentationBase.hh:703
RepresentationBase & switchingsRemove(const Switching &val)
RepresentationBase & contentProtectionsAdd(ContentProtection &&val)
Definition RepresentationBase.hh:1018
RepresentationBase & audioSamplingRates(const std::list< unsigned int > &rates)
Definition RepresentationBase.hh:357
RepresentationBase & producerReferenceTimesRemove(const ProducerReferenceTime &val)
RepresentationBase & producerReferenceTimesAdd(ProducerReferenceTime &&val)
Definition RepresentationBase.hh:1690
const std::list< Resync > & resyncs() const
Definition RepresentationBase.hh:1799
std::list< URI >::iterator profilesEnd()
Definition RepresentationBase.hh:140
const ProducerReferenceTime & producerReferenceTime(std::list< ProducerReferenceTime >::size_type idx) const
std::list< ProducerReferenceTime >::iterator producerReferenceTimesBegin()
Definition RepresentationBase.hh:1658
const std::optional< Codecs > & codecs() const
Definition RepresentationBase.hh:510
RepresentationBase & segmentProfilesAdd(std::string &&val)
Definition RepresentationBase.hh:478
RepresentationBase & codingDependency(bool val)
Definition RepresentationBase.hh:723
RepresentationBase & segmentProfilesAdd(const std::string &val)
Definition RepresentationBase.hh:477
RepresentationBase & contentProtectionsRemove(const std::list< ContentProtection >::iterator &it)
bool hasMaxPlayoutRate() const
Definition RepresentationBase.hh:672
const Resync & resync(std::list< Resync >::size_type idx) const
RepresentationBase & inbandEventStreamsRemove(const EventStream &val)
RepresentationBase & codingDependency(const std::nullopt_t &)
Definition RepresentationBase.hh:715
RepresentationBase & randomAccessesRemove(const RandomAccess &val)
RepresentationBase & frameRate(std::optional< FrameRate > &&val)
Definition RepresentationBase.hh:311
const Label & groupLabel(std::list< Label >::size_type idx) const
RepresentationBase & scanType(VideoScan &&val)
Definition RepresentationBase.hh:755
std::list< EventStream >::const_iterator inbandEventStreamsBegin() const
Definition RepresentationBase.hh:1252
RepresentationBase & contentProtections(const std::list< ContentProtection > &protections)
Definition RepresentationBase.hh:972
RepresentationBase & mimeType(const std::optional< std::string > &val)
Definition RepresentationBase.hh:421
RepresentationBase & producerReferenceTimes(const std::list< ProducerReferenceTime > &times)
Definition RepresentationBase.hh:1644
RepresentationBase & containerProfilesRemove(const std::list< std::string >::const_iterator &it)
RepresentationBase & supplementalProperties(std::list< Descriptor > &&properties)
Definition RepresentationBase.hh:1165
const Descriptor & framePacking(std::list< Descriptor >::size_type idx) const
RepresentationBase & labelsRemove(const Label &val)
RepresentationBase & framePackings(std::list< Descriptor > &&packings)
Definition RepresentationBase.hh:823
std::list< Label >::const_iterator labelsEnd() const
Definition RepresentationBase.hh:1585
RepresentationBase & supplementalProperties(const std::list< Descriptor > &properties)
Definition RepresentationBase.hh:1162
bool hasScanType() const
Definition RepresentationBase.hh:734
RepresentationBase & startWithSAP(SAP &&val)
Definition RepresentationBase.hh:661
RepresentationBase & framePackingsAdd(Descriptor &&val)
Definition RepresentationBase.hh:862
const EventStream & inbandEventStream(std::list< EventStream >::size_type idx) const
const std::list< ContentPopularityRate > & contentPopularityRates() const
Definition RepresentationBase.hh:1718
RepresentationBase & scanType(const VideoScan &val)
Definition RepresentationBase.hh:754
RepresentationBase & resyncs(const std::list< Resync > &_resyncs)
Definition RepresentationBase.hh:1806
RepresentationBase & groupLabels(std::list< Label > &&labels)
Definition RepresentationBase.hh:1485
RepresentationBase & segmentProfiles(const std::list< std::string > &profiles)
Definition RepresentationBase.hh:438
const URI & profile(std::list< URI >::size_type idx) const
bool hasMaximumSAPPeriod() const
Definition RepresentationBase.hh:609
RepresentationBase & codecs(const std::nullopt_t &)
Definition RepresentationBase.hh:516
std::list< std::string >::iterator segmentProfilesBegin()
Definition RepresentationBase.hh:448
RepresentationBase & sar(const std::optional< Ratio > &val)
Definition RepresentationBase.hh:278
std::list< unsignedint >::iterator audioSamplingRatesBegin()
Definition RepresentationBase.hh:339
RepresentationBase & segmentProfilesRemove(const std::list< std::string >::const_iterator &it)
RepresentationBase & outputProtection(Descriptor &&val)
Definition RepresentationBase.hh:1067
bool hasCodecs() const
Definition RepresentationBase.hh:504
RepresentationBase & outputProtection(const std::nullopt_t &)
Definition RepresentationBase.hh:1058
RepresentationBase & supplementalPropertiesRemove(const std::list< Descriptor >::const_iterator &it)
std::list< ProducerReferenceTime >::iterator producerReferenceTimesEnd()
Definition RepresentationBase.hh:1667
const std::optional< Descriptor > & outputProtection() const
Definition RepresentationBase.hh:1052
RepresentationBase & height(std::optional< unsigned int > &&val)
Definition RepresentationBase.hh:243
VideoScan
Definition RepresentationBase.hh:58
@ VIDEO_SCAN_UNKNOWN
Video scan value is unknown (i.e. not one of the other values)
Definition RepresentationBase.hh:61
@ VIDEO_SCAN_INTERLACED
Video scan value is "interlaced".
Definition RepresentationBase.hh:60
@ VIDEO_SCAN_PROGRESSIVE
Video scan value is "progressive".
Definition RepresentationBase.hh:59
std::list< unsignedint >::const_iterator audioSamplingRatesBegin() const
Definition RepresentationBase.hh:338
bool hasMimeType() const
Definition RepresentationBase.hh:399
std::list< Switching >::const_iterator switchingsBegin() const
Definition RepresentationBase.hh:1333
RepresentationBase & inbandEventStreamsAdd(EventStream &&val)
Definition RepresentationBase.hh:1285
bool hasHeight() const
Definition RepresentationBase.hh:221
RepresentationBase & profilesRemove(const std::list< URI >::iterator &it)
RepresentationBase & width(const std::nullopt_t &)
Definition RepresentationBase.hh:206
RepresentationBase & profiles(const std::list< URI > &_profiles)
Definition RepresentationBase.hh:149
RepresentationBase & contentPopularityRates(const std::list< ContentPopularityRate > &rates)
Definition RepresentationBase.hh:1725
bool hasOutputProtection() const
Definition RepresentationBase.hh:1046
std::list< Descriptor >::iterator essentialPropertiesEnd()
Definition RepresentationBase.hh:1108
RepresentationBase & containerProfilesAdd(std::string &&val)
Definition RepresentationBase.hh:583
RepresentationBase & tag(const std::nullopt_t &)
Definition RepresentationBase.hh:795
RepresentationBase & audioChannelConfigurationsRemove(const Descriptor &val)
const std::list< Label > & groupLabels() const
Definition RepresentationBase.hh:1475
std::list< EventStream >::iterator inbandEventStreamsBegin()
Definition RepresentationBase.hh:1253
RepresentationBase & essentialProperties(std::list< Descriptor > &&properties)
Definition RepresentationBase.hh:1088
unsigned int audioSamplingRate(std::list< unsigned int >::size_type idx) const
RepresentationBase & mimeType(const std::string &val)
Definition RepresentationBase.hh:419
RepresentationBase & contentPopularityRatesAdd(ContentPopularityRate &&val)
Definition RepresentationBase.hh:1771
const std::string & containerProfile(std::list< std::string >::size_type idx) const
RepresentationBase & audioChannelConfigurationsRemove(const std::list< Descriptor >::iterator &it)
std::list< Descriptor >::iterator audioChannelConfigurationsBegin()
Definition RepresentationBase.hh:905
std::list< Descriptor >::iterator essentialPropertiesBegin()
Definition RepresentationBase.hh:1099
RepresentationBase & sar(std::optional< Ratio > &&val)
Definition RepresentationBase.hh:279
std::list< Label >::iterator labelsEnd()
Definition RepresentationBase.hh:1586
RepresentationBase & width(unsigned int val)
Definition RepresentationBase.hh:213
RepresentationBase & frameRate(const std::optional< FrameRate > &val)
Definition RepresentationBase.hh:310
const std::list< Descriptor > & essentialProperties() const
Definition RepresentationBase.hh:1078
RepresentationBase & essentialProperties(const std::list< Descriptor > &properties)
Definition RepresentationBase.hh:1085
RepresentationBase & profilesAdd(URI &&val)
Definition RepresentationBase.hh:168
std::list< RandomAccess >::iterator randomAccessesBegin()
Definition RepresentationBase.hh:1415
std::list< ContentProtection >::iterator contentProtectionsBegin()
Definition RepresentationBase.hh:986
std::list< Label >::const_iterator groupLabelsBegin() const
Definition RepresentationBase.hh:1495
const std::optional< SAP > & startWithSAP() const
Definition RepresentationBase.hh:646
RepresentationBase & audioSamplingRatesRemove(const std::list< unsigned int >::iterator &it)
RepresentationBase & maximumSAPPeriod(const std::nullopt_t &)
Definition RepresentationBase.hh:621
std::list< std::string >::iterator segmentProfilesEnd()
Definition RepresentationBase.hh:457
RepresentationBase & frameRate(const std::nullopt_t &)
Definition RepresentationBase.hh:300
std::list< std::string >::const_iterator segmentProfilesBegin() const
Definition RepresentationBase.hh:447
std::list< ContentProtection >::iterator contentProtectionsEnd()
Definition RepresentationBase.hh:995
const Descriptor & essentialProperty(std::list< Descriptor >::size_type idx) const
RepresentationBase & outputProtection(std::optional< Descriptor > &&val)
Definition RepresentationBase.hh:1069
const std::optional< double > & maximumSAPPeriod() const
Definition RepresentationBase.hh:615
RepresentationBase & audioSamplingRates(std::list< unsigned int > &&rates)
Definition RepresentationBase.hh:358
std::list< Resync >::const_iterator resyncsEnd() const
Definition RepresentationBase.hh:1828
RepresentationBase & groupLabelsRemove(const std::list< Label >::iterator &it)
RepresentationBase & outputProtection(const std::optional< Descriptor > &val)
Definition RepresentationBase.hh:1068
RepresentationBase & inbandEventStreams(std::list< EventStream > &&streams)
Definition RepresentationBase.hh:1242
RepresentationBase & framePackingsRemove(const std::list< Descriptor >::iterator &it)
RepresentationBase & contentPopularityRatesRemove(const std::list< ContentPopularityRate >::iterator &it)
RepresentationBase & containerProfiles(std::list< std::string > &&profiles)
Definition RepresentationBase.hh:544
RepresentationBase & maxPlayoutRate(const std::optional< double > &val)
Definition RepresentationBase.hh:693
RepresentationBase & randomAccessesRemove(const std::list< RandomAccess >::iterator &it)
RepresentationBase & audioChannelConfigurationsRemove(const std::list< Descriptor >::const_iterator &it)
RepresentationBase & contentPopularityRatesAdd(const ContentPopularityRate &val)
Definition RepresentationBase.hh:1768
RepresentationBase & framePackingsAdd(const Descriptor &val)
Definition RepresentationBase.hh:861
RepresentationBase & contentProtectionsRemove(const ContentProtection &val)
RepresentationBase & switchings(std::list< Switching > &&_switchings)
Definition RepresentationBase.hh:1323
RepresentationBase & startWithSAP(const SAP &val)
Definition RepresentationBase.hh:660
std::list< RandomAccess >::const_iterator randomAccessesEnd() const
Definition RepresentationBase.hh:1423
virtual ~RepresentationBase()
Definition RepresentationBase.hh:88
RepresentationBase & randomAccessesRemove(const std::list< RandomAccess >::const_iterator &it)
RepresentationBase & resyncsRemove(const std::list< Resync >::const_iterator &it)
RepresentationBase & inbandEventStreamsRemove(const std::list< EventStream >::const_iterator &it)
const std::optional< std::string > & tag() const
Definition RepresentationBase.hh:789
RepresentationBase & groupLabelsRemove(const Label &val)
const std::list< std::string > & segmentProfiles() const
Definition RepresentationBase.hh:431
std::list< unsignedint >::const_iterator audioSamplingRatesEnd() const
Definition RepresentationBase.hh:347
std::list< EventStream >::iterator inbandEventStreamsEnd()
Definition RepresentationBase.hh:1262
std::list< ContentProtection >::const_iterator contentProtectionsEnd() const
Definition RepresentationBase.hh:994
RepresentationBase & labelsRemove(const std::list< Label >::iterator &it)
Definition Resync.hh:36
Definition SAP.hh:36
Definition Switching.hh:36
Definition URI.hh:40
#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