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;
68 void setId(uint64
id);
69 const std::string name()
const;
70 void setName(
const std::string &name);
73 double maxBitrate()
const;
77 void setLanguage(
const std::string &
language);
78 uint32 samplingFrequency()
const;
79 uint32 extensionSamplingFrequency()
const;
80 uint16 bitsPerSample()
const;
82 byte channelConfig()
const;
84 byte extensionChannelConfig()
const;
85 const char *extensionChannelConfigString()
const;
86 uint64 sampleCount()
const;
88 const Size &pixelSize()
const;
89 const Size &displaySize()
const;
90 const Size &resolution()
const;
91 const std::string &compressorName()
const;
92 void setCompressorName(
const std::string &compressorName);
95 const char *chromaFormat()
const;
97 bool isInterlaced()
const;
98 uint32 timeScale()
const;
99 bool isEnabled()
const;
100 void setEnabled(
bool enabled);
101 bool isDefault()
const;
102 void setDefault(
bool isDefault);
103 bool isForced()
const;
104 void setForced(
bool forced);
105 bool hasLacing()
const;
106 bool isEncrypted()
const;
107 uint32 colorSpace()
const;
108 const Margin &cropping()
const;
109 std::string
label()
const;
113 bool isHeaderValid()
const;
116 AbstractTrack(std::istream &inputStream, std::ostream &outputStream, uint64 startOffset);
118 virtual void internalParseHeader() = 0;
188 m_reader.setStream(m_istream = &stream);
207 m_writer.setStream(m_ostream = &stream);
245 return m_startOffset;
273 return m_format || m_formatName.empty() ? m_format.name() : m_formatName.c_str();
282 const char *abbr = m_format.abbreviation();
283 return *abbr || m_formatId.empty() ? m_format.abbreviation() : m_formatId.c_str();
324 return m_trackNumber;
399 return m_creationTime;
407 return m_modificationTime;
434 return m_samplingFrequency;
443 return m_extensionSamplingFrequency;
451 return m_bitsPerSample;
461 return m_channelCount;
472 return m_channelConfig;
480 return m_sampleCount;
510 return m_displaySize;
528 return m_compressorName;
537 m_compressorName = compressorName;
565 return m_chromaFormat;
573 return m_pixelAspectRatio;
627 m_default = isDefault;
684 return m_headerValid;
689 #endif // ABSTRACTTRACK_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.