diff options
author | Luca Muscariello <lumuscar+fdio@cisco.com> | 2017-02-25 23:42:31 +0100 |
---|---|---|
committer | Luca Muscariello <lumuscar+fdio@cisco.com> | 2017-02-25 23:42:31 +0100 |
commit | 05c1a838c881ea502888659848d8792843b28718 (patch) | |
tree | cf0b05b58bd725a1eb6c80325ba986c63dea42aa /MPD/AbstractRepresentationStream.h | |
parent | 9b30fc10fb1cbebe651e5a107e8ca5b24de54675 (diff) |
Initial commit: video player - viper
Change-Id: Id5aa33598ce34659bad4a7a9ae5006bfb84f9bd1
Signed-off-by: Luca Muscariello <lumuscar+fdio@cisco.com>
Diffstat (limited to 'MPD/AbstractRepresentationStream.h')
-rw-r--r-- | MPD/AbstractRepresentationStream.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/MPD/AbstractRepresentationStream.h b/MPD/AbstractRepresentationStream.h new file mode 100644 index 00000000..e0f354b4 --- /dev/null +++ b/MPD/AbstractRepresentationStream.h @@ -0,0 +1,61 @@ +/* + * AbstracRepresenationStream.h + ***************************************************************************** + * Copyright (C) 2012, bitmovin Softwareentwicklung OG, All Rights Reserved + * + * Email: libdash-dev@vicky.bitmovin.net + * + * This source code and its use and distribution, is subject to the terms + * and conditions of the applicable license agreement. + *****************************************************************************/ + +#ifndef LIBDASH_FRAMEWORK_MPD_ABSTRACTREPRESENTATIONSTREAM_H_ +#define LIBDASH_FRAMEWORK_MPD_ABSTRACTREPRESENTATIONSTREAM_H_ + +#include "IRepresentationStream.h" +#include "IBaseUrl.h" +#include "IRepresentation.h" +#include "IAdaptationSet.h" +#include "IMPD.h" +#include "IPeriod.h" +#include "BaseUrlResolver.h" +#include "TimeResolver.h" + +namespace libdash +{ +namespace framework +{ +namespace mpd +{ +class AbstractRepresentationStream : public IRepresentationStream +{ +public: + AbstractRepresentationStream(dash::mpd::IMPD *mpd, dash::mpd::IPeriod *period, dash::mpd::IAdaptationSet *adaptationSet, + dash::mpd::IRepresentation *representation); + virtual ~AbstractRepresentationStream(); + + virtual dash::mpd::ISegment* getInitializationSegment() = 0; + virtual dash::mpd::ISegment* getIndexSegment(size_t segmentNumber) = 0; + virtual dash::mpd::ISegment* getMediaSegment(size_t segmentNumber) = 0; + virtual dash::mpd::ISegment* getBitstreamSwitchingSegment() = 0; + virtual RepresentationStreamType getStreamType() = 0; + + virtual uint32_t getSize(); + virtual uint32_t getFirstSegmentNumber(); + virtual uint32_t getCurrentSegmentNumber(); + virtual uint32_t getLastSegmentNumber(); + virtual uint32_t getAverageSegmentDuration(); + +protected: + virtual void setBaseUrls(const std::vector<dash::mpd::IBaseUrl *> baseurls); + + std::vector<dash::mpd::IBaseUrl *> baseUrls; + dash::mpd::IMPD *mpd; + dash::mpd::IPeriod *period; + dash::mpd::IAdaptationSet *adaptationSet; + dash::mpd::IRepresentation *representation; +}; +} +} +} +#endif /* LIBDASH_FRAMEWORK_ADAPTATION_ABSTRACTADAPTATIONLOGIC_H_ */ |