1 #ifndef MEDIA_ABSTRACTCONTAINER_H 2 #define MEDIA_ABSTRACTCONTAINER_H 8 #include <c++utilities/io/binaryreader.h> 9 #include <c++utilities/io/binarywriter.h> 10 #include <c++utilities/chrono/timespan.h> 11 #include <c++utilities/chrono/datetime.h> 24 class AbstractChapter;
25 class AbstractAttachment;
39 std::iostream &stream();
40 void setStream(std::iostream &stream);
41 uint64 startOffset()
const;
42 IoUtilities::BinaryReader &reader();
43 IoUtilities::BinaryWriter &writer();
49 void parseAttachments();
52 bool isHeaderParsed()
const;
53 bool areTagsParsed()
const;
54 bool areTracksParsed()
const;
55 bool areChaptersParsed()
const;
56 bool areAttachmentsParsed()
const;
59 virtual Tag *tag(std::size_t index);
60 virtual std::size_t tagCount()
const;
61 virtual bool removeTag(
Tag *tag);
62 virtual void removeAllTags();
66 virtual std::size_t trackCount()
const;
68 virtual void removeAllTracks();
69 virtual bool supportsTrackModifications()
const;
73 virtual std::size_t chapterCount()
const;
77 virtual std::size_t attachmentCount()
const;
80 uint64 readVersion()
const;
81 const std::string &documentType()
const;
82 uint64 doctypeVersion()
const;
83 uint64 doctypeReadVersion()
const;
84 const std::vector<std::string> &titles()
const;
85 void setTitle(
const std::string &
title, std::size_t segmentIndex = 0);
86 virtual bool supportsTitle()
const;
87 virtual std::size_t segmentCount()
const;
91 uint32 timeScale()
const;
98 virtual void internalParseHeader();
99 virtual void internalParseTags();
100 virtual void internalParseTracks();
101 virtual void internalParseChapters();
102 virtual void internalParseAttachments();
103 virtual void internalMakeFile();
124 uint64 m_startOffset;
125 std::iostream *m_stream;
126 IoUtilities::BinaryReader m_reader;
127 IoUtilities::BinaryWriter m_writer;
144 m_reader.setStream(m_stream);
145 m_writer.setStream(m_stream);
153 return m_startOffset;
314 #endif // MEDIA_ABSTRACTCONTAINER_H
Contains utility classes helping to read and write streams.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.