Tag Parser  8.0.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
oggstream.h
Go to the documentation of this file.
1 #ifndef TAG_PARSER_OGGSTREAM_H
2 #define TAG_PARSER_OGGSTREAM_H
3 
4 #include "./oggpage.h"
5 
6 #include "../abstracttrack.h"
7 
8 namespace TagParser {
9 
10 class OggContainer;
11 class OggIterator;
12 
14  friend class OggContainer;
15 
16 public:
17  OggStream(OggContainer &container, std::vector<OggPage>::size_type startPage);
18  ~OggStream() override;
19 
20  TrackType type() const override;
21  std::size_t startPage() const;
22 
23 protected:
24  void internalParseHeader(Diagnostics &diag) override;
25 
26 private:
27  void calculateDurationViaSampleCount(uint16 preSkip = 0);
28 
29  std::size_t m_startPage;
30  OggContainer &m_container;
31  uint32 m_currentSequenceNumber;
32 };
33 
34 inline std::size_t OggStream::startPage() const
35 {
36  return m_startPage;
37 }
38 
39 inline TrackType OggStream::type() const
40 {
41  return TrackType::OggStream;
42 }
43 
44 } // namespace TagParser
45 
46 #endif // TAG_PARSER_OGGSTREAM_H
std::size_t startPage() const
Definition: oggstream.h:34
Implementation of TagParser::AbstractTrack for OGG streams.
Definition: oggstream.h:13
Implementation of TagParser::AbstractContainer for OGG files.
Definition: oggcontainer.h:126
TrackType type() const override
Returns the type of the track if known; otherwise returns TrackType::Unspecified. ...
Definition: oggstream.h:39
The AbstractTrack class parses and stores technical information about video, audio and other kinds of...
Definition: abstracttrack.h:40
Contains all classes and functions of the TagInfo library.
Definition: aaccodebook.h:9
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TrackType
Specifies the track type.
Definition: abstracttrack.h:28
The Diagnostics class is a container for DiagMessage.
Definition: diagnostics.h:156