1 #ifndef ABSTRACTTRACK_H 2 #define ABSTRACTTRACK_H 10 #include <c++utilities/conversion/types.h> 11 #include <c++utilities/io/binaryreader.h> 12 #include <c++utilities/io/binarywriter.h> 13 #include <c++utilities/chrono/datetime.h> 14 #include <c++utilities/chrono/timespan.h> 50 std::istream &inputStream();
51 void setInputStream(std::istream &stream);
52 std::ostream &outputStream();
53 void setOutputStream(std::ostream &stream);
54 IoUtilities::BinaryReader &reader();
55 IoUtilities::BinaryWriter &writer();
56 uint64 startOffset()
const;
59 const char *formatName()
const;
60 const char *formatAbbreviation()
const;
61 const std::string &formatId()
const;
67 const std::string name()
const;
69 double bitrate()
const;
70 double maxBitrate()
const;
74 uint32 samplingFrequency()
const;
75 uint32 extensionSamplingFrequency()
const;
76 uint16 bitsPerSample()
const;
78 byte channelConfig()
const;
80 byte extensionChannelConfig()
const;
81 const char *extensionChannelConfigString()
const;
82 uint64 sampleCount()
const;
84 const Size &pixelSize()
const;
85 const Size &displaySize()
const;
86 const Size &resolution()
const;
87 const std::string &compressorName()
const;
90 const char *chromaFormat()
const;
92 bool isInterlaced()
const;
93 uint32 timeScale()
const;
94 bool isEnabled()
const;
95 bool isDefault()
const;
96 bool isForced()
const;
97 bool hasLacing()
const;
98 bool isEncrypted()
const;
99 uint32 colorSpace()
const;
100 const Margin &cropping()
const;
101 std::string
label()
const;
104 bool isHeaderValid()
const;
107 AbstractTrack(std::istream &inputStream, std::ostream &outputStream, uint64 startOffset);
109 virtual void internalParseHeader() = 0;
180 m_reader.setStream(m_istream);
200 m_writer.setStream(m_ostream);
238 return m_startOffset;
266 return m_format || m_formatName.empty() ? m_format.name() : m_formatName.c_str();
275 const char *abbr = m_format.abbreviation();
276 return *abbr || m_formatId.empty() ? m_format.abbreviation() : m_formatId.c_str();
317 return m_trackNumber;
365 return m_creationTime;
373 return m_modificationTime;
391 return m_samplingFrequency;
400 return m_extensionSamplingFrequency;
408 return m_bitsPerSample;
418 return m_channelCount;
429 return m_channelConfig;
437 return m_sampleCount;
467 return m_displaySize;
485 return m_compressorName;
513 return m_chromaFormat;
521 return m_pixelAspectRatio;
605 return m_headerValid;
610 #endif // ABSTRACTTRACK_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.