#include "box.h" #include #include struct abst_serverentry { std::string ServerBaseUrl; };//abst_serverentry struct abst_qualityentry { std::string QualityModifier; };//abst_qualityentry class Box_abst { public: Box_abst( ); ~Box_abst(); Box * GetBox(); void SetProfile( uint8_t Profile = 0 ); void SetLive( bool Live = true ); void SetUpdate( bool Update = false ); void SetTimeScale( uint32_t Scale = 1000 ); void SetMediaTime( uint32_t Time = 0 ); void SetSMPTE( uint32_t Smpte = 0 ); void SetMovieIdentfier( std::string Identifier = "" ); void SetDRM( std::string Drm = "" ); void SetMetaData( std::string MetaData = "" ); void AddServerEntry( std::string Url = "", uint32_t Offset = 0 ); void AddQualityEntry( std::string Quality = "", uint32_t Offset = 0 ); void AddSegmentRunTable( Box * newSegment, uint32_t Offset = 0 ); void AddFragmentRunTable( Box * newFragment, uint32_t Offset = 0 ); private: uint8_t curProfile; bool isLive; bool isUpdate; uint32_t curTimeScale; uint32_t curMediatime;//write as uint64_t uint32_t curSMPTE;//write as uint64_t std::string curMovieIdentifier; std::string curDRM; std::string curMetaData; std::vector Servers; std::vector Qualities; std::vector SegmentRunTables; std::vector FragmentRunTables; Box * Container; };//Box_ftyp Class