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 void setId(uint64
id);
68 const std::string name()
const;
70 double bitrate()
const;
71 double maxBitrate()
const;
75 uint32 samplingFrequency()
const;
76 uint32 extensionSamplingFrequency()
const;
77 uint16 bitsPerSample()
const;
79 byte channelConfig()
const;
81 byte extensionChannelConfig()
const;
82 const char *extensionChannelConfigString()
const;
83 uint64 sampleCount()
const;
85 const Size &pixelSize()
const;
86 const Size &displaySize()
const;
87 const Size &resolution()
const;
88 const std::string &compressorName()
const;
91 const char *chromaFormat()
const;
93 bool isInterlaced()
const;
94 uint32 timeScale()
const;
95 bool isEnabled()
const;
96 bool isDefault()
const;
97 bool isForced()
const;
98 bool hasLacing()
const;
99 bool isEncrypted()
const;
100 uint32 colorSpace()
const;
101 const Margin &cropping()
const;
102 std::string
label()
const;
105 bool isHeaderValid()
const;
108 AbstractTrack(std::istream &inputStream, std::ostream &outputStream, uint64 startOffset);
110 virtual void internalParseHeader() = 0;
180 m_reader.setStream(m_istream = &stream);
199 m_writer.setStream(m_ostream = &stream);
237 return m_startOffset;
265 return m_format || m_formatName.empty() ? m_format.name() : m_formatName.c_str();
274 const char *abbr = m_format.abbreviation();
275 return *abbr || m_formatId.empty() ? m_format.abbreviation() : m_formatId.c_str();
316 return m_trackNumber;
373 return m_creationTime;
381 return m_modificationTime;
399 return m_samplingFrequency;
408 return m_extensionSamplingFrequency;
416 return m_bitsPerSample;
426 return m_channelCount;
437 return m_channelConfig;
445 return m_sampleCount;
475 return m_displaySize;
493 return m_compressorName;
521 return m_chromaFormat;
529 return m_pixelAspectRatio;
613 return m_headerValid;
618 #endif // ABSTRACTTRACK_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.