libmpd++
DASH MPD parsing and manipulation library
 
Loading...
Searching...
No Matches
com::bbc::libmpdpp::MPD Class Reference

#include <libmpd++/MPD.hh>

Public Types

enum  PresentationType { STATIC , DYNAMIC }
 
using time_type = std::chrono::system_clock::time_point
 Date-time type used in the MPD.
 
using duration_type = std::chrono::microseconds
 Time duration type used in the MPD.
 

Public Member Functions

 MPD ()=delete
 
 MPD (std::istream &input_stream, const std::optional< URI > &mpd_location=std::nullopt)
 
 MPD (const std::string &filename, const std::optional< URI > &mpd_location=std::nullopt)
 
 MPD (const MPD &other)
 
 MPD (MPD &&other)
 
virtual ~MPD ()
 
MPDoperator= (const MPD &other)
 
MPDoperator= (MPD &&other)
 
bool operator== (const MPD &other) const
 
bool hasSourceURL () const
 
const std::optional< URI > & sourceURL () const
 
MPDsourceURL (const std::nullopt_t &)
 
bool isLive () const
 
std::string asXML (bool compact_form) const
 
bool hasId () const
 
const std::string & id (const std::string &default_val) const
 
const std::optional< std::string > & id () const
 
MPDid (const std::string &val)
 
MPDid (std::string &&val)
 
MPDid (const std::nullopt_t &)
 
const std::list< URI > & profiles () const
 
std::list< URI >::const_iterator profilesBegin () const
 
std::list< URI >::const_iterator profilesEnd () const
 
std::list< URI >::iterator profilesBegin ()
 
std::list< URI >::iterator profilesEnd ()
 
const URIprofile (std::list< URI >::size_type idx) const
 
bool profilesContain (const URI &uri) const
 
MPDprofileAdd (const URI &uri)
 
MPDprofileAdd (URI &&uri)
 
MPDprofileRemove (const std::list< URI >::const_iterator &it)
 
MPDprofileRemove (const URI &uri)
 
bool isStaticPresentation () const
 
bool isDynamicPresentation () const
 
PresentationType presentationType () const
 
MPDpresentationType (PresentationType pres_type)
 
bool hasAvailabilityStartTime () const
 
const time_typeavailabilityStartTime (const time_type &default_val) const
 
const std::optional< time_type > & availabilityStartTime () const
 
MPDavailabilityStartTime (const time_type &val)
 
MPDavailabilityStartTime (time_type &&val)
 
MPDavailabilityStartTime (const std::nullopt_t &)
 
bool hasAvailabilityEndTime () const
 
const time_typeavailabilityEndTime (const time_type &default_val) const
 
const std::optional< time_type > & availabilityEndTime () const
 
MPDavailabilityEndTime (const time_type &val)
 
MPDavailabilityEndTime (time_type &&val)
 
MPDavailabilityEndTime (const std::nullopt_t &)
 
bool hasPublishTime () const
 
const time_typepublishTime (const time_type &default_val) const
 
const std::optional< time_type > & publishTime () const
 
MPDpublishTime (const time_type &val)
 
MPDpublishTime (time_type &&val)
 
MPDpublishTime (const std::nullopt_t &)
 
bool hasMediaPresentationDuration () const
 
const duration_typemediaPresentationDuration (const duration_type &default_val) const
 
const std::optional< duration_type > & mediaPresentationDuration () const
 
MPDmediaPresentationDuration (const duration_type &val)
 
MPDmediaPresentationDuration (duration_type &&val)
 
MPDmediaPresentationDuration (const std::nullopt_t &)
 
bool hasMinimumUpdatePeriod () const
 
const duration_typeminimumUpdatePeriod (const duration_type &default_val) const
 
const std::optional< duration_type > & minimumUpdatePeriod () const
 
MPDminimumUpdatePeriod (const duration_type &val)
 
MPDminimumUpdatePeriod (duration_type &&val)
 
MPDminimumUpdatePeriod (const std::nullopt_t &)
 
const duration_typeminBufferTime () const
 
MPDminBufferTime (const duration_type &val)
 
MPDminBufferTime (duration_type &&val)
 
bool hasTimeShiftBufferDepth () const
 
const duration_typetimeShiftBufferDepth (const duration_type &default_val) const
 
const std::optional< duration_type > & timeShiftBufferDepth () const
 
MPDtimeShiftBufferDepth (const duration_type &val)
 
MPDtimeShiftBufferDepth (duration_type &&val)
 
MPDtimeShiftBufferDepth (const std::nullopt_t &)
 
bool hasSuggestedPresentationDelay () const
 
const duration_typesuggestedPresentationDelay (const duration_type &default_val) const
 
const std::optional< duration_type > & suggestedPresentationDelay () const
 
MPDsuggestedPresentationDelay (const duration_type &val)
 
MPDsuggestedPresentationDelay (duration_type &&val)
 
MPDsuggestedPresentationDelay (const std::nullopt_t &)
 
bool hasMaxSegmentDuration () const
 
const duration_typemaxSegmentDuration (const duration_type &default_val) const
 
const std::optional< duration_type > & maxSegmentDuration () const
 
MPDmaxSegmentDuration (const duration_type &val)
 
MPDmaxSegmentDuration (duration_type &&val)
 
MPDmaxSegmentDuration (const std::nullopt_t &)
 
bool hasMaxSubsegmentDuration () const
 
const duration_typemaxSubsegmentDuration (const duration_type &default_val) const
 
const std::optional< duration_type > & maxSubsegmentDuration () const
 
MPDmaxSubsegmentDuration (const duration_type &val)
 
MPDmaxSubsegmentDuration (duration_type &&val)
 
MPDmaxSubsegmentDuration (const std::nullopt_t &)
 
const std::list< ProgramInformation > & programInformations () const
 
std::list< ProgramInformation >::const_iterator programInformationsBegin () const
 
std::list< ProgramInformation >::const_iterator programInformationsEnd () const
 
std::list< ProgramInformation >::iterator programInformationsBegin ()
 
std::list< ProgramInformation >::iterator programInformationsEnd ()
 
MPDprogramInformationAdd (const ProgramInformation &prog_info)
 
MPDprogramInformationAdd (ProgramInformation &&prog_info)
 
MPDprogramInformationRemove (const ProgramInformation &prog_info)
 
MPDprogramInformationRemove (const std::list< ProgramInformation >::const_iterator &)
 
MPDprogramInformationRemove (const std::list< ProgramInformation >::iterator &)
 
const std::list< BaseURL > & baseURLs () const
 
std::list< BaseURL >::const_iterator baseURLsBegin () const
 
std::list< BaseURL >::const_iterator baseURLsEnd () const
 
std::list< BaseURL >::iterator baseURLsBegin ()
 
std::list< BaseURL >::iterator baseURLsEnd ()
 
MPDbaseURLAdd (const BaseURL &base_url)
 
MPDbaseURLAdd (BaseURL &&base_url)
 
MPDbaseURLRemove (const BaseURL &base_url)
 
MPDbaseURLRemove (const std::list< BaseURL >::const_iterator &)
 
MPDbaseURLRemove (const std::list< BaseURL >::iterator &)
 
std::list< BaseURLgetBaseURLs () const
 
const std::list< URI > & locations () const
 
std::list< URI >::const_iterator locationsBegin () const
 
std::list< URI >::const_iterator locationsEnd () const
 
std::list< URI >::iterator locationsBegin ()
 
std::list< URI >::iterator locationsEnd ()
 
MPDlocationAdd (const URI &location)
 
MPDlocationAdd (URI &&location)
 
MPDlocationRemove (const URI &location)
 
MPDlocationRemove (const std::list< URI >::const_iterator &)
 
MPDlocationRemove (const std::list< URI >::iterator &)
 
const std::list< PatchLocation > & patchLocations () const
 
std::list< PatchLocation >::const_iterator patchLocationsBegin () const
 
std::list< PatchLocation >::const_iterator patchLocationsEnd () const
 
std::list< PatchLocation >::iterator patchLocationsBegin ()
 
std::list< PatchLocation >::iterator patchLocationsEnd ()
 
MPDpatchLocationAdd (const PatchLocation &patch_location)
 
MPDpatchLocationAdd (PatchLocation &&patch_location)
 
MPDpatchLocationRemove (const PatchLocation &patch_location)
 
MPDpatchLocationRemove (const std::list< PatchLocation >::const_iterator &)
 
MPDpatchLocationRemove (const std::list< PatchLocation >::iterator &)
 
const std::list< ServiceDescription > & serviceDescriptions () const
 
std::list< ServiceDescription >::const_iterator serviceDescriptionsBegin () const
 
std::list< ServiceDescription >::const_iterator serviceDescriptionsEnd () const
 
std::list< ServiceDescription >::iterator serviceDescriptionsBegin ()
 
std::list< ServiceDescription >::iterator serviceDescriptionsEnd ()
 
MPDserviceDescriptionAdd (const ServiceDescription &service_desc)
 
MPDserviceDescriptionAdd (ServiceDescription &&service_desc)
 
MPDserviceDescriptionRemove (const ServiceDescription &service_desc)
 
MPDserviceDescriptionRemove (const std::list< ServiceDescription >::const_iterator &)
 
MPDserviceDescriptionRemove (const std::list< ServiceDescription >::iterator &)
 
const std::list< InitializationSet > & initializationSets () const
 
std::list< InitializationSet >::const_iterator initializationSetsBegin () const
 
std::list< InitializationSet >::const_iterator initializationSetsEnd () const
 
std::list< InitializationSet >::iterator initializationSetsBegin ()
 
std::list< InitializationSet >::iterator initializationSetsEnd ()
 
MPDinitializationSetAdd (const InitializationSet &init_set)
 
MPDinitializationSetAdd (InitializationSet &&init_set)
 
MPDinitializationSetRemove (const InitializationSet &init_set)
 
MPDinitializationSetRemove (const std::list< InitializationSet >::const_iterator &)
 
MPDinitializationSetRemove (const std::list< InitializationSet >::iterator &)
 
const std::list< UIntVWithID > & initializationGroups () const
 
std::list< UIntVWithID >::const_iterator initializationGroupsBegin () const
 
std::list< UIntVWithID >::const_iterator initializationGroupsEnd () const
 
std::list< UIntVWithID >::iterator initializationGroupsBegin ()
 
std::list< UIntVWithID >::iterator initializationGroupsEnd ()
 
MPDinitializationGroupAdd (const UIntVWithID &init_group)
 
MPDinitializationGroupAdd (UIntVWithID &&init_group)
 
MPDinitializationGroupRemove (const UIntVWithID &init_group)
 
MPDinitializationGroupRemove (const std::list< UIntVWithID >::const_iterator &)
 
MPDinitializationGroupRemove (const std::list< UIntVWithID >::iterator &)
 
const std::list< UIntVWithID > & initializationPresentations () const
 
std::list< UIntVWithID >::const_iterator initializationPresentationsBegin () const
 
std::list< UIntVWithID >::const_iterator initializationPresentationsEnd () const
 
std::list< UIntVWithID >::iterator initializationPresentationsBegin ()
 
std::list< UIntVWithID >::iterator initializationPresentationsEnd ()
 
MPDinitializationPresentationAdd (const UIntVWithID &init_pres)
 
MPDinitializationPresentationAdd (UIntVWithID &&init_pres)
 
MPDinitializationPresentationRemove (const UIntVWithID &init_pres)
 
MPDinitializationPresentationRemove (const std::list< UIntVWithID >::const_iterator &)
 
MPDinitializationPresentationRemove (const std::list< UIntVWithID >::iterator &)
 
const std::list< ContentProtection > & contentProtections () const
 
std::list< ContentProtection >::const_iterator contentProtectionsBegin () const
 
std::list< ContentProtection >::const_iterator contentProtectionsEnd () const
 
std::list< ContentProtection >::iterator contentProtectionsBegin ()
 
std::list< ContentProtection >::iterator contentProtectionsEnd ()
 
MPDcontentProtectionAdd (const ContentProtection &content_protection)
 
MPDcontentProtectionAdd (ContentProtection &&content_protection)
 
MPDcontentProtectionRemove (const ContentProtection &content_protection)
 
MPDcontentProtectionRemove (const std::list< ContentProtection >::const_iterator &)
 
MPDcontentProtectionRemove (const std::list< ContentProtection >::iterator &)
 
const std::list< Period > & periods () const
 
std::list< Period >::const_iterator period (const std::string &id) const
 
std::list< Period >::const_iterator periodsBegin () const
 
std::list< Period >::const_iterator periodsEnd () const
 
std::list< Period >::iterator period (const std::string &id)
 
std::list< Period >::iterator periodsBegin ()
 
std::list< Period >::iterator periodsEnd ()
 
MPDperiodAdd (const Period &period)
 
MPDperiodAdd (Period &&period)
 
MPDperiodRemove (const Period &period)
 
MPDperiodRemove (const std::list< Period >::const_iterator &period_it)
 
MPDperiodRemove (const std::list< Period >::iterator &period_it)
 
const std::list< Metrics > & metrics () const
 
std::list< Metrics >::const_iterator metricsBegin () const
 
std::list< Metrics >::const_iterator metricsEnd () const
 
std::list< Metrics >::iterator metricsBegin ()
 
std::list< Metrics >::iterator metricsEnd ()
 
MPDmetricAdd (const Metrics &prog_info)
 
MPDmetricAdd (Metrics &&prog_info)
 
MPDmetricRemove (const Metrics &prog_info)
 
MPDmetricRemove (const std::list< Metrics >::const_iterator &)
 
MPDmetricRemove (const std::list< Metrics >::iterator &)
 
const std::list< Descriptor > & essentialProperties () const
 
std::list< Descriptor >::const_iterator essentialPropertiesBegin () const
 
std::list< Descriptor >::const_iterator essentialPropertiesEnd () const
 
std::list< Descriptor >::iterator essentialPropertiesBegin ()
 
std::list< Descriptor >::iterator essentialPropertiesEnd ()
 
MPDessentialPropertyAdd (const Descriptor &prog_info)
 
MPDessentialPropertyAdd (Descriptor &&prog_info)
 
MPDessentialPropertyRemove (const Descriptor &prog_info)
 
MPDessentialPropertyRemove (const std::list< Descriptor >::const_iterator &)
 
MPDessentialPropertyRemove (const std::list< Descriptor >::iterator &)
 
const std::list< Descriptor > & supplementaryProperties () const
 
std::list< Descriptor >::const_iterator supplementaryPropertiesBegin () const
 
std::list< Descriptor >::const_iterator supplementaryPropertiesEnd () const
 
std::list< Descriptor >::iterator supplementaryPropertiesBegin ()
 
std::list< Descriptor >::iterator supplementaryPropertiesEnd ()
 
MPDsupplementaryPropertyAdd (const Descriptor &prog_info)
 
MPDsupplementaryPropertyAdd (Descriptor &&prog_info)
 
MPDsupplementaryPropertyRemove (const Descriptor &prog_info)
 
MPDsupplementaryPropertyRemove (const std::list< Descriptor >::const_iterator &)
 
MPDsupplementaryPropertyRemove (const std::list< Descriptor >::iterator &)
 
const std::list< Descriptor > & utcTimings () const
 
std::list< Descriptor >::const_iterator utcTimingsBegin () const
 
std::list< Descriptor >::const_iterator utcTimingsEnd () const
 
std::list< Descriptor >::iterator utcTimingsBegin ()
 
std::list< Descriptor >::iterator utcTimingsEnd ()
 
MPDutcTimingAdd (const Descriptor &prog_info)
 
MPDutcTimingAdd (Descriptor &&prog_info)
 
MPDutcTimingRemove (const Descriptor &prog_info)
 
MPDutcTimingRemove (const std::list< Descriptor >::const_iterator &)
 
MPDutcTimingRemove (const std::list< Descriptor >::iterator &)
 
void synchroniseWithUTCTiming () const
 
bool hasLeapSecondInformation () const
 
const LeapSecondInformationleapSecondInformation (const LeapSecondInformation &default_val) const
 
const std::optional< LeapSecondInformation > & leapSecondInformation () const
 
MPDleapSecondInformation (const LeapSecondInformation &val)
 
MPDleapSecondInformation (LeapSecondInformation &&val)
 
MPDleapSecondInformation (const std::nullopt_t &)
 
void selectAllRepresentations ()
 
void deselectAllRepresentations ()
 
std::unordered_set< const Representation * > selectedRepresentations () const
 
std::list< SegmentAvailabilityselectedSegmentAvailability (const time_type &query_time=std::chrono::system_clock::now()) const
 
std::list< SegmentAvailabilityselectedInitializationSegments (const time_type &query_time=std::chrono::system_clock::now()) const
 
 MPD (const duration_type &minimum_buffer_time, const URI &profile, const Period &period, PresentationType presentation_type=STATIC)
 
 MPD (const duration_type &minimum_buffer_time, const URI &profile, Period &&period, PresentationType presentation_type=STATIC)
 
 MPD (const std::vector< char > &mpd_xml, const std::optional< URI > &mpd_location=std::nullopt)
 
 MPD (const std::vector< unsigned char > &mpd_xml, const std::optional< URI > &mpd_location=std::nullopt)
 
MPDsourceURL (const URI &url)
 
MPDsourceURL (URI &&url)
 
MPDsourceURL (const std::optional< URI > &url)
 
MPDsourceURL (std::optional< URI > &&url)
 

Static Public Member Functions

static std::ostream & compact (std::ostream &os)
 
static std::ostream & pretty (std::ostream &os)
 

Detailed Description

MPD class

This is the top level class for parsing, manipulating and outputting MPDs.

Use this class to parse an existing MPD file or in-memory block, or create a new MPD.

This class stores the attributes and elements as described by the MPDType in ISO 23009-1:2022 Clause 5.2.2.

See also
The Example library usage page for examples of using the MPD class.

Member Typedef Documentation

◆ duration_type

using com::bbc::libmpdpp::MPD::duration_type = std::chrono::microseconds

Time duration type used in the MPD.

◆ time_type

using com::bbc::libmpdpp::MPD::time_type = std::chrono::system_clock::time_point

Date-time type used in the MPD.

Member Enumeration Documentation

◆ PresentationType

MPD @presentationType values enumeration

Enumerator
STATIC 

Presentation is static (unchanging, e.g. video on demand)

DYNAMIC 

Presentation is dynamic (can change during playback, e.g. live stream)

Constructor & Destructor Documentation

◆ MPD() [1/9]

com::bbc::libmpdpp::MPD::MPD ( )
delete

Default constructor

This is removed to force mandatory parameters in the MPD to be filled in.

◆ MPD() [2/9]

com::bbc::libmpdpp::MPD::MPD ( const duration_type & minimum_buffer_time,
const URI & profile,
const Period & period,
PresentationType presentation_type = STATIC )

Value constructor

This creates a new MPD with the mandatory values from minimum_buffer_time, profile, period and presentation_type.

Parameters
minimum_buffer_timeThe duration for the minimum buffer time.
profileThe profile URN.
periodA Period for this MPD.
presentation_typeThe presentation type of the MPD, either MPD::STATIC or MPD::DYNAMIC. If not given then MPD::STATIC is used as the default.

◆ MPD() [3/9]

com::bbc::libmpdpp::MPD::MPD ( const duration_type & minimum_buffer_time,
const URI & profile,
Period && period,
PresentationType presentation_type = STATIC )

Value constructor

This creates a new MPD with the mandatory values from minimum_buffer_time, profile, period and presentation_type.

Parameters
minimum_buffer_timeThe duration for the minimum buffer time.
profileThe profile URN.
periodA Period for this MPD.
presentation_typeThe presentation type of the MPD, either MPD::STATIC or MPD::DYNAMIC. If not given then MPD::STATIC is used as the default.

◆ MPD() [4/9]

com::bbc::libmpdpp::MPD::MPD ( std::istream & input_stream,
const std::optional< URI > & mpd_location = std::nullopt )

Construct from an input stream

Parameters
input_streamThe stream to parse the MPD XML from.
mpd_locationThe URL the MPD was obtained from.

◆ MPD() [5/9]

com::bbc::libmpdpp::MPD::MPD ( const std::vector< char > & mpd_xml,
const std::optional< URI > & mpd_location = std::nullopt )

Construct from MPD XML in memory

Parameters
mpd_xmlThe vector containing the MPD XML.
mpd_locationThe URL the MPD was obtained from.

◆ MPD() [6/9]

com::bbc::libmpdpp::MPD::MPD ( const std::vector< unsigned char > & mpd_xml,
const std::optional< URI > & mpd_location = std::nullopt )

Construct from MPD XML in memory

Parameters
mpd_xmlThe vector containing the MPD XML.
mpd_locationThe URL the MPD was obtained from.

◆ MPD() [7/9]

com::bbc::libmpdpp::MPD::MPD ( const std::string & filename,
const std::optional< URI > & mpd_location = std::nullopt )

Construct from an MPD XML file

Parameters
filenameThe file path of the MPD XML file.
mpd_locationThe URL the MPD was obtained from.

◆ MPD() [8/9]

com::bbc::libmpdpp::MPD::MPD ( const MPD & other)

Copy constructor

Parameters
otherThe MPD to make a new copy of.

◆ MPD() [9/9]

com::bbc::libmpdpp::MPD::MPD ( MPD && other)

Move constructor

Parameters
otherThe MPD to take the resources and values from to create a new MPD.

◆ ~MPD()

virtual com::bbc::libmpdpp::MPD::~MPD ( )
virtual

Destructor

Member Function Documentation

◆ asXML()

std::string com::bbc::libmpdpp::MPD::asXML ( bool compact_form) const

Get the MPD as an XML document string

If compact_form is true then the returned string will omit unnecessary white-space to make the returnned string more compact. If compact_form is false then a more human readable indented form of the XML is returned.

Parameters
compact_formtrue for a compact XML string, false for a more readable response.
Returns
The XML representation of the MPD.

◆ availabilityEndTime() [1/5]

const std::optional< time_type > & com::bbc::libmpdpp::MPD::availabilityEndTime ( ) const
inline

◆ availabilityEndTime() [2/5]

MPD & com::bbc::libmpdpp::MPD::availabilityEndTime ( const std::nullopt_t & )
inline

◆ availabilityEndTime() [3/5]

const time_type & com::bbc::libmpdpp::MPD::availabilityEndTime ( const time_type & default_val) const

◆ availabilityEndTime() [4/5]

MPD & com::bbc::libmpdpp::MPD::availabilityEndTime ( const time_type & val)
inline

◆ availabilityEndTime() [5/5]

MPD & com::bbc::libmpdpp::MPD::availabilityEndTime ( time_type && val)
inline

◆ availabilityStartTime() [1/5]

const std::optional< time_type > & com::bbc::libmpdpp::MPD::availabilityStartTime ( ) const
inline

◆ availabilityStartTime() [2/5]

MPD & com::bbc::libmpdpp::MPD::availabilityStartTime ( const std::nullopt_t & )
inline

◆ availabilityStartTime() [3/5]

const time_type & com::bbc::libmpdpp::MPD::availabilityStartTime ( const time_type & default_val) const

◆ availabilityStartTime() [4/5]

MPD & com::bbc::libmpdpp::MPD::availabilityStartTime ( const time_type & val)
inline

◆ availabilityStartTime() [5/5]

MPD & com::bbc::libmpdpp::MPD::availabilityStartTime ( time_type && val)
inline

◆ baseURLAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::baseURLAdd ( BaseURL && base_url)

◆ baseURLAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::baseURLAdd ( const BaseURL & base_url)

◆ baseURLRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::baseURLRemove ( const BaseURL & base_url)

◆ baseURLRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::baseURLRemove ( const std::list< BaseURL >::const_iterator & )

◆ baseURLRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::baseURLRemove ( const std::list< BaseURL >::iterator & )

◆ baseURLs()

const std::list< BaseURL > & com::bbc::libmpdpp::MPD::baseURLs ( ) const
inline

◆ baseURLsBegin() [1/2]

std::list< BaseURL >::iterator com::bbc::libmpdpp::MPD::baseURLsBegin ( )
inline

◆ baseURLsBegin() [2/2]

std::list< BaseURL >::const_iterator com::bbc::libmpdpp::MPD::baseURLsBegin ( ) const
inline

◆ baseURLsEnd() [1/2]

std::list< BaseURL >::iterator com::bbc::libmpdpp::MPD::baseURLsEnd ( )
inline

◆ baseURLsEnd() [2/2]

std::list< BaseURL >::const_iterator com::bbc::libmpdpp::MPD::baseURLsEnd ( ) const
inline

◆ compact()

static std::ostream & com::bbc::libmpdpp::MPD::compact ( std::ostream & os)
static

Stream manipulator to switch MPD XML streaming to compact form

This will make any subsequent MPD streamed to the std::ostream do so in a compact form.

For example the following are both equivalent:

os << MPD::compact << mpd;
os << mpd.asXML(true);
static std::ostream & compact(std::ostream &os)
Parameters
osThe std::ostream that will be used to output the XML representation of the MPD to at a later time.
Returns
os.

◆ contentProtectionAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::contentProtectionAdd ( const ContentProtection & content_protection)

◆ contentProtectionAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::contentProtectionAdd ( ContentProtection && content_protection)

◆ contentProtectionRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::contentProtectionRemove ( const ContentProtection & content_protection)

◆ contentProtectionRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::contentProtectionRemove ( const std::list< ContentProtection >::const_iterator & )

◆ contentProtectionRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::contentProtectionRemove ( const std::list< ContentProtection >::iterator & )

◆ contentProtections()

const std::list< ContentProtection > & com::bbc::libmpdpp::MPD::contentProtections ( ) const
inline

◆ contentProtectionsBegin() [1/2]

std::list< ContentProtection >::iterator com::bbc::libmpdpp::MPD::contentProtectionsBegin ( )
inline

◆ contentProtectionsBegin() [2/2]

std::list< ContentProtection >::const_iterator com::bbc::libmpdpp::MPD::contentProtectionsBegin ( ) const
inline

◆ contentProtectionsEnd() [1/2]

std::list< ContentProtection >::iterator com::bbc::libmpdpp::MPD::contentProtectionsEnd ( )
inline

◆ contentProtectionsEnd() [2/2]

std::list< ContentProtection >::const_iterator com::bbc::libmpdpp::MPD::contentProtectionsEnd ( ) const
inline

◆ deselectAllRepresentations()

void com::bbc::libmpdpp::MPD::deselectAllRepresentations ( )

Deselect all Represtations

This will remove every Representation in every AdaptationSet in every Period from the set of selected Representations.

◆ essentialProperties()

const std::list< Descriptor > & com::bbc::libmpdpp::MPD::essentialProperties ( ) const
inline

◆ essentialPropertiesBegin() [1/2]

std::list< Descriptor >::iterator com::bbc::libmpdpp::MPD::essentialPropertiesBegin ( )
inline

◆ essentialPropertiesBegin() [2/2]

std::list< Descriptor >::const_iterator com::bbc::libmpdpp::MPD::essentialPropertiesBegin ( ) const
inline

◆ essentialPropertiesEnd() [1/2]

std::list< Descriptor >::iterator com::bbc::libmpdpp::MPD::essentialPropertiesEnd ( )
inline

◆ essentialPropertiesEnd() [2/2]

std::list< Descriptor >::const_iterator com::bbc::libmpdpp::MPD::essentialPropertiesEnd ( ) const
inline

◆ essentialPropertyAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::essentialPropertyAdd ( const Descriptor & prog_info)

◆ essentialPropertyAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::essentialPropertyAdd ( Descriptor && prog_info)

◆ essentialPropertyRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::essentialPropertyRemove ( const Descriptor & prog_info)

◆ essentialPropertyRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::essentialPropertyRemove ( const std::list< Descriptor >::const_iterator & )

◆ essentialPropertyRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::essentialPropertyRemove ( const std::list< Descriptor >::iterator & )

◆ getBaseURLs()

std::list< BaseURL > com::bbc::libmpdpp::MPD::getBaseURLs ( ) const

Get the combined BaseURLs

This will get the list of BaseURL elements, which are children of the MPD, with their URLs resolved using the MPD source URL as the base URL, i.e. relative BaseURL entries will be resolved using the sourceURL() value (as set by the controlling application).

If there are no BaseURLs set, then the return value is copied from the source URL. If a source URL has been set then a single entry is returned with the source URL in it, otherwise an empty list is returned.

Returns
The list of BaseURL values applicable at the MPD level.

◆ hasAvailabilityEndTime()

bool com::bbc::libmpdpp::MPD::hasAvailabilityEndTime ( ) const
inline

◆ hasAvailabilityStartTime()

bool com::bbc::libmpdpp::MPD::hasAvailabilityStartTime ( ) const
inline

◆ hasId()

bool com::bbc::libmpdpp::MPD::hasId ( ) const
inline

◆ hasLeapSecondInformation()

bool com::bbc::libmpdpp::MPD::hasLeapSecondInformation ( ) const
inline

◆ hasMaxSegmentDuration()

bool com::bbc::libmpdpp::MPD::hasMaxSegmentDuration ( ) const
inline

◆ hasMaxSubsegmentDuration()

bool com::bbc::libmpdpp::MPD::hasMaxSubsegmentDuration ( ) const
inline

◆ hasMediaPresentationDuration()

bool com::bbc::libmpdpp::MPD::hasMediaPresentationDuration ( ) const
inline

◆ hasMinimumUpdatePeriod()

bool com::bbc::libmpdpp::MPD::hasMinimumUpdatePeriod ( ) const
inline

◆ hasPublishTime()

bool com::bbc::libmpdpp::MPD::hasPublishTime ( ) const
inline

◆ hasSourceURL()

bool com::bbc::libmpdpp::MPD::hasSourceURL ( ) const
inline

◆ hasSuggestedPresentationDelay()

bool com::bbc::libmpdpp::MPD::hasSuggestedPresentationDelay ( ) const
inline

◆ hasTimeShiftBufferDepth()

bool com::bbc::libmpdpp::MPD::hasTimeShiftBufferDepth ( ) const
inline

◆ id() [1/5]

const std::optional< std::string > & com::bbc::libmpdpp::MPD::id ( ) const
inline

◆ id() [2/5]

MPD & com::bbc::libmpdpp::MPD::id ( const std::nullopt_t & )
inline

◆ id() [3/5]

const std::string & com::bbc::libmpdpp::MPD::id ( const std::string & default_val) const

◆ id() [4/5]

MPD & com::bbc::libmpdpp::MPD::id ( const std::string & val)
inline

◆ id() [5/5]

MPD & com::bbc::libmpdpp::MPD::id ( std::string && val)
inline

◆ initializationGroupAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::initializationGroupAdd ( const UIntVWithID & init_group)

◆ initializationGroupAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::initializationGroupAdd ( UIntVWithID && init_group)

◆ initializationGroupRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::initializationGroupRemove ( const std::list< UIntVWithID >::const_iterator & )

◆ initializationGroupRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::initializationGroupRemove ( const std::list< UIntVWithID >::iterator & )

◆ initializationGroupRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::initializationGroupRemove ( const UIntVWithID & init_group)

◆ initializationGroups()

const std::list< UIntVWithID > & com::bbc::libmpdpp::MPD::initializationGroups ( ) const
inline

◆ initializationGroupsBegin() [1/2]

std::list< UIntVWithID >::iterator com::bbc::libmpdpp::MPD::initializationGroupsBegin ( )
inline

◆ initializationGroupsBegin() [2/2]

std::list< UIntVWithID >::const_iterator com::bbc::libmpdpp::MPD::initializationGroupsBegin ( ) const
inline

◆ initializationGroupsEnd() [1/2]

std::list< UIntVWithID >::iterator com::bbc::libmpdpp::MPD::initializationGroupsEnd ( )
inline

◆ initializationGroupsEnd() [2/2]

std::list< UIntVWithID >::const_iterator com::bbc::libmpdpp::MPD::initializationGroupsEnd ( ) const
inline

◆ initializationPresentationAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::initializationPresentationAdd ( const UIntVWithID & init_pres)

◆ initializationPresentationAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::initializationPresentationAdd ( UIntVWithID && init_pres)

◆ initializationPresentationRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::initializationPresentationRemove ( const std::list< UIntVWithID >::const_iterator & )

◆ initializationPresentationRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::initializationPresentationRemove ( const std::list< UIntVWithID >::iterator & )

◆ initializationPresentationRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::initializationPresentationRemove ( const UIntVWithID & init_pres)

◆ initializationPresentations()

const std::list< UIntVWithID > & com::bbc::libmpdpp::MPD::initializationPresentations ( ) const
inline

◆ initializationPresentationsBegin() [1/2]

std::list< UIntVWithID >::iterator com::bbc::libmpdpp::MPD::initializationPresentationsBegin ( )
inline

◆ initializationPresentationsBegin() [2/2]

std::list< UIntVWithID >::const_iterator com::bbc::libmpdpp::MPD::initializationPresentationsBegin ( ) const
inline

◆ initializationPresentationsEnd() [1/2]

std::list< UIntVWithID >::iterator com::bbc::libmpdpp::MPD::initializationPresentationsEnd ( )
inline

◆ initializationPresentationsEnd() [2/2]

std::list< UIntVWithID >::const_iterator com::bbc::libmpdpp::MPD::initializationPresentationsEnd ( ) const
inline

◆ initializationSetAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::initializationSetAdd ( const InitializationSet & init_set)

◆ initializationSetAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::initializationSetAdd ( InitializationSet && init_set)

◆ initializationSetRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::initializationSetRemove ( const InitializationSet & init_set)

◆ initializationSetRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::initializationSetRemove ( const std::list< InitializationSet >::const_iterator & )

◆ initializationSetRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::initializationSetRemove ( const std::list< InitializationSet >::iterator & )

◆ initializationSets()

const std::list< InitializationSet > & com::bbc::libmpdpp::MPD::initializationSets ( ) const
inline

◆ initializationSetsBegin() [1/2]

std::list< InitializationSet >::iterator com::bbc::libmpdpp::MPD::initializationSetsBegin ( )
inline

◆ initializationSetsBegin() [2/2]

std::list< InitializationSet >::const_iterator com::bbc::libmpdpp::MPD::initializationSetsBegin ( ) const
inline

◆ initializationSetsEnd() [1/2]

std::list< InitializationSet >::iterator com::bbc::libmpdpp::MPD::initializationSetsEnd ( )
inline

◆ initializationSetsEnd() [2/2]

std::list< InitializationSet >::const_iterator com::bbc::libmpdpp::MPD::initializationSetsEnd ( ) const
inline

◆ isDynamicPresentation()

bool com::bbc::libmpdpp::MPD::isDynamicPresentation ( ) const
inline

◆ isLive()

bool com::bbc::libmpdpp::MPD::isLive ( ) const

Check if this is a live MPD

Check if this is a live or on-demand MPD by checking the @presentationType and @profiles attributes.

Returns
true if the presentation type is dynamic and the profile matches one of the known live profiles, otherwise false.

◆ isStaticPresentation()

bool com::bbc::libmpdpp::MPD::isStaticPresentation ( ) const
inline

◆ leapSecondInformation() [1/5]

const std::optional< LeapSecondInformation > & com::bbc::libmpdpp::MPD::leapSecondInformation ( ) const
inline

◆ leapSecondInformation() [2/5]

const LeapSecondInformation & com::bbc::libmpdpp::MPD::leapSecondInformation ( const LeapSecondInformation & default_val) const

◆ leapSecondInformation() [3/5]

MPD & com::bbc::libmpdpp::MPD::leapSecondInformation ( const LeapSecondInformation & val)
inline

◆ leapSecondInformation() [4/5]

MPD & com::bbc::libmpdpp::MPD::leapSecondInformation ( const std::nullopt_t & )
inline

◆ leapSecondInformation() [5/5]

MPD & com::bbc::libmpdpp::MPD::leapSecondInformation ( LeapSecondInformation && val)
inline

◆ locationAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::locationAdd ( const URI & location)

◆ locationAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::locationAdd ( URI && location)

◆ locationRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::locationRemove ( const std::list< URI >::const_iterator & )

◆ locationRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::locationRemove ( const std::list< URI >::iterator & )

◆ locationRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::locationRemove ( const URI & location)

◆ locations()

const std::list< URI > & com::bbc::libmpdpp::MPD::locations ( ) const
inline

◆ locationsBegin() [1/2]

std::list< URI >::iterator com::bbc::libmpdpp::MPD::locationsBegin ( )
inline

◆ locationsBegin() [2/2]

std::list< URI >::const_iterator com::bbc::libmpdpp::MPD::locationsBegin ( ) const
inline

◆ locationsEnd() [1/2]

std::list< URI >::iterator com::bbc::libmpdpp::MPD::locationsEnd ( )
inline

◆ locationsEnd() [2/2]

std::list< URI >::const_iterator com::bbc::libmpdpp::MPD::locationsEnd ( ) const
inline

◆ maxSegmentDuration() [1/5]

const std::optional< duration_type > & com::bbc::libmpdpp::MPD::maxSegmentDuration ( ) const
inline

◆ maxSegmentDuration() [2/5]

const duration_type & com::bbc::libmpdpp::MPD::maxSegmentDuration ( const duration_type & default_val) const

◆ maxSegmentDuration() [3/5]

MPD & com::bbc::libmpdpp::MPD::maxSegmentDuration ( const duration_type & val)
inline

◆ maxSegmentDuration() [4/5]

MPD & com::bbc::libmpdpp::MPD::maxSegmentDuration ( const std::nullopt_t & )
inline

◆ maxSegmentDuration() [5/5]

MPD & com::bbc::libmpdpp::MPD::maxSegmentDuration ( duration_type && val)
inline

◆ maxSubsegmentDuration() [1/5]

const std::optional< duration_type > & com::bbc::libmpdpp::MPD::maxSubsegmentDuration ( ) const
inline

◆ maxSubsegmentDuration() [2/5]

const duration_type & com::bbc::libmpdpp::MPD::maxSubsegmentDuration ( const duration_type & default_val) const

◆ maxSubsegmentDuration() [3/5]

MPD & com::bbc::libmpdpp::MPD::maxSubsegmentDuration ( const duration_type & val)
inline

◆ maxSubsegmentDuration() [4/5]

MPD & com::bbc::libmpdpp::MPD::maxSubsegmentDuration ( const std::nullopt_t & )
inline

◆ maxSubsegmentDuration() [5/5]

MPD & com::bbc::libmpdpp::MPD::maxSubsegmentDuration ( duration_type && val)
inline

◆ mediaPresentationDuration() [1/5]

const std::optional< duration_type > & com::bbc::libmpdpp::MPD::mediaPresentationDuration ( ) const
inline

◆ mediaPresentationDuration() [2/5]

const duration_type & com::bbc::libmpdpp::MPD::mediaPresentationDuration ( const duration_type & default_val) const

◆ mediaPresentationDuration() [3/5]

MPD & com::bbc::libmpdpp::MPD::mediaPresentationDuration ( const duration_type & val)
inline

◆ mediaPresentationDuration() [4/5]

MPD & com::bbc::libmpdpp::MPD::mediaPresentationDuration ( const std::nullopt_t & )
inline

◆ mediaPresentationDuration() [5/5]

MPD & com::bbc::libmpdpp::MPD::mediaPresentationDuration ( duration_type && val)
inline

◆ metricAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::metricAdd ( const Metrics & prog_info)

◆ metricAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::metricAdd ( Metrics && prog_info)

◆ metricRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::metricRemove ( const Metrics & prog_info)

◆ metricRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::metricRemove ( const std::list< Metrics >::const_iterator & )

◆ metricRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::metricRemove ( const std::list< Metrics >::iterator & )

◆ metrics()

const std::list< Metrics > & com::bbc::libmpdpp::MPD::metrics ( ) const
inline

◆ metricsBegin() [1/2]

std::list< Metrics >::iterator com::bbc::libmpdpp::MPD::metricsBegin ( )
inline

◆ metricsBegin() [2/2]

std::list< Metrics >::const_iterator com::bbc::libmpdpp::MPD::metricsBegin ( ) const
inline

◆ metricsEnd() [1/2]

std::list< Metrics >::iterator com::bbc::libmpdpp::MPD::metricsEnd ( )
inline

◆ metricsEnd() [2/2]

std::list< Metrics >::const_iterator com::bbc::libmpdpp::MPD::metricsEnd ( ) const
inline

◆ minBufferTime() [1/3]

const duration_type & com::bbc::libmpdpp::MPD::minBufferTime ( ) const
inline

◆ minBufferTime() [2/3]

MPD & com::bbc::libmpdpp::MPD::minBufferTime ( const duration_type & val)
inline

◆ minBufferTime() [3/3]

MPD & com::bbc::libmpdpp::MPD::minBufferTime ( duration_type && val)
inline

◆ minimumUpdatePeriod() [1/5]

const std::optional< duration_type > & com::bbc::libmpdpp::MPD::minimumUpdatePeriod ( ) const
inline

◆ minimumUpdatePeriod() [2/5]

const duration_type & com::bbc::libmpdpp::MPD::minimumUpdatePeriod ( const duration_type & default_val) const

◆ minimumUpdatePeriod() [3/5]

MPD & com::bbc::libmpdpp::MPD::minimumUpdatePeriod ( const duration_type & val)
inline

◆ minimumUpdatePeriod() [4/5]

MPD & com::bbc::libmpdpp::MPD::minimumUpdatePeriod ( const std::nullopt_t & )
inline

◆ minimumUpdatePeriod() [5/5]

MPD & com::bbc::libmpdpp::MPD::minimumUpdatePeriod ( duration_type && val)
inline

◆ operator=() [1/2]

MPD & com::bbc::libmpdpp::MPD::operator= ( const MPD & other)

Copy operator

Parameters
otherThe MPD to copy into this one.
Returns
This MPD.

◆ operator=() [2/2]

MPD & com::bbc::libmpdpp::MPD::operator= ( MPD && other)

Move operator

Parameters
otherThe MPD to take the resources and values from to set in this MPD.
Returns
This MPD.

◆ operator==()

bool com::bbc::libmpdpp::MPD::operator== ( const MPD & other) const

Equality operator

Parameters
otherThe MPD to compare to this MPD.
Returns
true if the other MPD represents the same value as this MPD.

◆ patchLocationAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::patchLocationAdd ( const PatchLocation & patch_location)

◆ patchLocationAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::patchLocationAdd ( PatchLocation && patch_location)

◆ patchLocationRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::patchLocationRemove ( const PatchLocation & patch_location)

◆ patchLocationRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::patchLocationRemove ( const std::list< PatchLocation >::const_iterator & )

◆ patchLocationRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::patchLocationRemove ( const std::list< PatchLocation >::iterator & )

◆ patchLocations()

const std::list< PatchLocation > & com::bbc::libmpdpp::MPD::patchLocations ( ) const
inline

◆ patchLocationsBegin() [1/2]

std::list< PatchLocation >::iterator com::bbc::libmpdpp::MPD::patchLocationsBegin ( )
inline

◆ patchLocationsBegin() [2/2]

std::list< PatchLocation >::const_iterator com::bbc::libmpdpp::MPD::patchLocationsBegin ( ) const
inline

◆ patchLocationsEnd() [1/2]

std::list< PatchLocation >::iterator com::bbc::libmpdpp::MPD::patchLocationsEnd ( )
inline

◆ patchLocationsEnd() [2/2]

std::list< PatchLocation >::const_iterator com::bbc::libmpdpp::MPD::patchLocationsEnd ( ) const
inline

◆ period() [1/2]

std::list< Period >::iterator com::bbc::libmpdpp::MPD::period ( const std::string & id)

◆ period() [2/2]

std::list< Period >::const_iterator com::bbc::libmpdpp::MPD::period ( const std::string & id) const

◆ periodAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::periodAdd ( const Period & period)

◆ periodAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::periodAdd ( Period && period)

◆ periodRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::periodRemove ( const Period & period)

◆ periodRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::periodRemove ( const std::list< Period >::const_iterator & period_it)

◆ periodRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::periodRemove ( const std::list< Period >::iterator & period_it)

◆ periods()

const std::list< Period > & com::bbc::libmpdpp::MPD::periods ( ) const
inline

◆ periodsBegin() [1/2]

std::list< Period >::iterator com::bbc::libmpdpp::MPD::periodsBegin ( )
inline

◆ periodsBegin() [2/2]

std::list< Period >::const_iterator com::bbc::libmpdpp::MPD::periodsBegin ( ) const
inline

◆ periodsEnd() [1/2]

std::list< Period >::iterator com::bbc::libmpdpp::MPD::periodsEnd ( )
inline

◆ periodsEnd() [2/2]

std::list< Period >::const_iterator com::bbc::libmpdpp::MPD::periodsEnd ( ) const
inline

◆ presentationType() [1/2]

PresentationType com::bbc::libmpdpp::MPD::presentationType ( ) const
inline

◆ presentationType() [2/2]

MPD & com::bbc::libmpdpp::MPD::presentationType ( PresentationType pres_type)
inline

◆ pretty()

static std::ostream & com::bbc::libmpdpp::MPD::pretty ( std::ostream & os)
static

Stream manipulator to switch MPD XML streaming to pretty form

This will make any subsequent MPD streamed to the std::ostream do so in a pretty form.

For example the following are both equivalent:

os << MPD::pretty << mpd;
os << mpd.asXML(false);
static std::ostream & pretty(std::ostream &os)
Parameters
osThe std::ostream that will be used to output the XML representation of the MPD to at a later time.
Returns
os.

◆ profile()

const URI & com::bbc::libmpdpp::MPD::profile ( std::list< URI >::size_type idx) const
inline

◆ profileAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::profileAdd ( const URI & uri)

◆ profileAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::profileAdd ( URI && uri)

◆ profileRemove() [1/2]

MPD & com::bbc::libmpdpp::MPD::profileRemove ( const std::list< URI >::const_iterator & it)

◆ profileRemove() [2/2]

MPD & com::bbc::libmpdpp::MPD::profileRemove ( const URI & uri)

◆ profiles()

const std::list< URI > & com::bbc::libmpdpp::MPD::profiles ( ) const
inline

◆ profilesBegin() [1/2]

std::list< URI >::iterator com::bbc::libmpdpp::MPD::profilesBegin ( )
inline

◆ profilesBegin() [2/2]

std::list< URI >::const_iterator com::bbc::libmpdpp::MPD::profilesBegin ( ) const
inline

◆ profilesContain()

bool com::bbc::libmpdpp::MPD::profilesContain ( const URI & uri) const

◆ profilesEnd() [1/2]

std::list< URI >::iterator com::bbc::libmpdpp::MPD::profilesEnd ( )
inline

◆ profilesEnd() [2/2]

std::list< URI >::const_iterator com::bbc::libmpdpp::MPD::profilesEnd ( ) const
inline

◆ programInformationAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::programInformationAdd ( const ProgramInformation & prog_info)

◆ programInformationAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::programInformationAdd ( ProgramInformation && prog_info)

◆ programInformationRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::programInformationRemove ( const ProgramInformation & prog_info)

◆ programInformationRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::programInformationRemove ( const std::list< ProgramInformation >::const_iterator & )

◆ programInformationRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::programInformationRemove ( const std::list< ProgramInformation >::iterator & )

◆ programInformations()

const std::list< ProgramInformation > & com::bbc::libmpdpp::MPD::programInformations ( ) const
inline

◆ programInformationsBegin() [1/2]

std::list< ProgramInformation >::iterator com::bbc::libmpdpp::MPD::programInformationsBegin ( )
inline

◆ programInformationsBegin() [2/2]

std::list< ProgramInformation >::const_iterator com::bbc::libmpdpp::MPD::programInformationsBegin ( ) const
inline

◆ programInformationsEnd() [1/2]

std::list< ProgramInformation >::iterator com::bbc::libmpdpp::MPD::programInformationsEnd ( )
inline

◆ programInformationsEnd() [2/2]

std::list< ProgramInformation >::const_iterator com::bbc::libmpdpp::MPD::programInformationsEnd ( ) const
inline

◆ publishTime() [1/5]

const std::optional< time_type > & com::bbc::libmpdpp::MPD::publishTime ( ) const
inline

◆ publishTime() [2/5]

MPD & com::bbc::libmpdpp::MPD::publishTime ( const std::nullopt_t & )
inline

◆ publishTime() [3/5]

const time_type & com::bbc::libmpdpp::MPD::publishTime ( const time_type & default_val) const

◆ publishTime() [4/5]

MPD & com::bbc::libmpdpp::MPD::publishTime ( const time_type & val)
inline

◆ publishTime() [5/5]

MPD & com::bbc::libmpdpp::MPD::publishTime ( time_type && val)
inline

◆ selectAllRepresentations()

void com::bbc::libmpdpp::MPD::selectAllRepresentations ( )

Select all Representations

This will mark every Representation in every AdaptationSet in every Period as selected.

◆ selectedInitializationSegments()

std::list< SegmentAvailability > com::bbc::libmpdpp::MPD::selectedInitializationSegments ( const time_type & query_time = std::chrono::system_clock::now()) const

Get the initialization segment availability

Gets the list of the initialisation segment URLs and their availability for the Period into which query_time falls. If an empty list is returned then the query_time represents a time after the MPD availablility end time or there are no initialization segments in this MPD.

Parameters
query_timeThe time to perform the query for, for live MPDs this is the wallclock time, for on-demand MPDs this is the stream offset assuming the stream starts from the epoch.
Returns
The list of the next available segments.

◆ selectedRepresentations()

std::unordered_set< const Representation * > com::bbc::libmpdpp::MPD::selectedRepresentations ( ) const

Get the list of all selected Representation objects

Returns
The list of all currently selected Representations across all Periods.

◆ selectedSegmentAvailability()

std::list< SegmentAvailability > com::bbc::libmpdpp::MPD::selectedSegmentAvailability ( const time_type & query_time = std::chrono::system_clock::now()) const

Get the media segment availability

Gets the list of the segment URLs and their availability for the next segments available on or after query_time. If an empty list is returned then the query_time represents a time after the last segment is available.

Parameters
query_timeThe time to perform the query for, for live MPDs this is the wallclock time, for on-demand MPDs this is the stream offset assuming the stream starts from the epoch.
Returns
The list of the next available segments.

◆ serviceDescriptionAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::serviceDescriptionAdd ( const ServiceDescription & service_desc)

◆ serviceDescriptionAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::serviceDescriptionAdd ( ServiceDescription && service_desc)

◆ serviceDescriptionRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::serviceDescriptionRemove ( const ServiceDescription & service_desc)

◆ serviceDescriptionRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::serviceDescriptionRemove ( const std::list< ServiceDescription >::const_iterator & )

◆ serviceDescriptionRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::serviceDescriptionRemove ( const std::list< ServiceDescription >::iterator & )

◆ serviceDescriptions()

const std::list< ServiceDescription > & com::bbc::libmpdpp::MPD::serviceDescriptions ( ) const
inline

◆ serviceDescriptionsBegin() [1/2]

std::list< ServiceDescription >::iterator com::bbc::libmpdpp::MPD::serviceDescriptionsBegin ( )
inline

◆ serviceDescriptionsBegin() [2/2]

std::list< ServiceDescription >::const_iterator com::bbc::libmpdpp::MPD::serviceDescriptionsBegin ( ) const
inline

◆ serviceDescriptionsEnd() [1/2]

std::list< ServiceDescription >::iterator com::bbc::libmpdpp::MPD::serviceDescriptionsEnd ( )
inline

◆ serviceDescriptionsEnd() [2/2]

std::list< ServiceDescription >::const_iterator com::bbc::libmpdpp::MPD::serviceDescriptionsEnd ( ) const
inline

◆ sourceURL() [1/6]

const std::optional< URI > & com::bbc::libmpdpp::MPD::sourceURL ( ) const
inline

Get the optional source URL

Returns
The optional source URL.

◆ sourceURL() [2/6]

MPD & com::bbc::libmpdpp::MPD::sourceURL ( const std::nullopt_t & )
inline

Unset the source URL

Will remove, if set, the source URL from this MPD.

Returns
This MPD.

◆ sourceURL() [3/6]

MPD & com::bbc::libmpdpp::MPD::sourceURL ( const std::optional< URI > & url)
inline

Set the source URL

Parameters
urlThe URL to set as the source URL for this MPD.

◆ sourceURL() [4/6]

MPD & com::bbc::libmpdpp::MPD::sourceURL ( const URI & url)
inline

Set the source URL

Parameters
urlThe URL to set as the source URL for this MPD.

◆ sourceURL() [5/6]

MPD & com::bbc::libmpdpp::MPD::sourceURL ( std::optional< URI > && url)
inline

Set the source URL

Parameters
urlThe URL to set as the source URL for this MPD.

◆ sourceURL() [6/6]

MPD & com::bbc::libmpdpp::MPD::sourceURL ( URI && url)
inline

Set the source URL

Parameters
urlThe URL to set as the source URL for this MPD.

◆ suggestedPresentationDelay() [1/5]

const std::optional< duration_type > & com::bbc::libmpdpp::MPD::suggestedPresentationDelay ( ) const
inline

◆ suggestedPresentationDelay() [2/5]

const duration_type & com::bbc::libmpdpp::MPD::suggestedPresentationDelay ( const duration_type & default_val) const

◆ suggestedPresentationDelay() [3/5]

MPD & com::bbc::libmpdpp::MPD::suggestedPresentationDelay ( const duration_type & val)
inline

◆ suggestedPresentationDelay() [4/5]

MPD & com::bbc::libmpdpp::MPD::suggestedPresentationDelay ( const std::nullopt_t & )
inline

◆ suggestedPresentationDelay() [5/5]

MPD & com::bbc::libmpdpp::MPD::suggestedPresentationDelay ( duration_type && val)
inline

◆ supplementaryProperties()

const std::list< Descriptor > & com::bbc::libmpdpp::MPD::supplementaryProperties ( ) const
inline

◆ supplementaryPropertiesBegin() [1/2]

std::list< Descriptor >::iterator com::bbc::libmpdpp::MPD::supplementaryPropertiesBegin ( )
inline

◆ supplementaryPropertiesBegin() [2/2]

std::list< Descriptor >::const_iterator com::bbc::libmpdpp::MPD::supplementaryPropertiesBegin ( ) const
inline

◆ supplementaryPropertiesEnd() [1/2]

std::list< Descriptor >::iterator com::bbc::libmpdpp::MPD::supplementaryPropertiesEnd ( )
inline

◆ supplementaryPropertiesEnd() [2/2]

std::list< Descriptor >::const_iterator com::bbc::libmpdpp::MPD::supplementaryPropertiesEnd ( ) const
inline

◆ supplementaryPropertyAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::supplementaryPropertyAdd ( const Descriptor & prog_info)

◆ supplementaryPropertyAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::supplementaryPropertyAdd ( Descriptor && prog_info)

◆ supplementaryPropertyRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::supplementaryPropertyRemove ( const Descriptor & prog_info)

◆ supplementaryPropertyRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::supplementaryPropertyRemove ( const std::list< Descriptor >::const_iterator & )

◆ supplementaryPropertyRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::supplementaryPropertyRemove ( const std::list< Descriptor >::iterator & )

◆ synchroniseWithUTCTiming()

void com::bbc::libmpdpp::MPD::synchroniseWithUTCTiming ( ) const

◆ timeShiftBufferDepth() [1/5]

const std::optional< duration_type > & com::bbc::libmpdpp::MPD::timeShiftBufferDepth ( ) const
inline

◆ timeShiftBufferDepth() [2/5]

const duration_type & com::bbc::libmpdpp::MPD::timeShiftBufferDepth ( const duration_type & default_val) const

◆ timeShiftBufferDepth() [3/5]

MPD & com::bbc::libmpdpp::MPD::timeShiftBufferDepth ( const duration_type & val)
inline

◆ timeShiftBufferDepth() [4/5]

MPD & com::bbc::libmpdpp::MPD::timeShiftBufferDepth ( const std::nullopt_t & )
inline

◆ timeShiftBufferDepth() [5/5]

MPD & com::bbc::libmpdpp::MPD::timeShiftBufferDepth ( duration_type && val)
inline

◆ utcTimingAdd() [1/2]

MPD & com::bbc::libmpdpp::MPD::utcTimingAdd ( const Descriptor & prog_info)

◆ utcTimingAdd() [2/2]

MPD & com::bbc::libmpdpp::MPD::utcTimingAdd ( Descriptor && prog_info)

◆ utcTimingRemove() [1/3]

MPD & com::bbc::libmpdpp::MPD::utcTimingRemove ( const Descriptor & prog_info)

◆ utcTimingRemove() [2/3]

MPD & com::bbc::libmpdpp::MPD::utcTimingRemove ( const std::list< Descriptor >::const_iterator & )

◆ utcTimingRemove() [3/3]

MPD & com::bbc::libmpdpp::MPD::utcTimingRemove ( const std::list< Descriptor >::iterator & )

◆ utcTimings()

const std::list< Descriptor > & com::bbc::libmpdpp::MPD::utcTimings ( ) const
inline

◆ utcTimingsBegin() [1/2]

std::list< Descriptor >::iterator com::bbc::libmpdpp::MPD::utcTimingsBegin ( )
inline

◆ utcTimingsBegin() [2/2]

std::list< Descriptor >::const_iterator com::bbc::libmpdpp::MPD::utcTimingsBegin ( ) const
inline

◆ utcTimingsEnd() [1/2]

std::list< Descriptor >::iterator com::bbc::libmpdpp::MPD::utcTimingsEnd ( )
inline

◆ utcTimingsEnd() [2/2]

std::list< Descriptor >::const_iterator com::bbc::libmpdpp::MPD::utcTimingsEnd ( ) const
inline

The documentation for this class was generated from the following file: