AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
ntv2srt.h
Go to the documentation of this file.
1 
7 #ifndef __NTV2_SRT_H_
8 #define __NTV2_SRT_H_
9 
10  #include "ajatypes.h"
11  #include <vector>
12  #include <map>
13  #include <string>
14  #include <iostream>
15 
16  typedef uint32_t SRTTimestamp; // SRT timestamp, in milliseconds
17  typedef uint32_t SRTDuration; // SRT time duration, in milliseconds
18  typedef uint32_t SRTSeqNum; // SRT caption sequence number
19  typedef uint16_t SRTAnchorPos; // SRT caption anchor position
20 
21 
22  class SRTWindow
23  {
24  public:
25  inline SRTWindow (uint32_t inX1 = 0, uint32_t inY1 = 0,
26  uint32_t inX2 = 0, uint32_t inY2 = 0)
27  {set(inX1, inY1, inX2, inY2);}
28  // Inquiry
29  inline uint32_t top (void) const {return mY1;}
30  inline uint32_t left (void) const {return mX1;}
31  inline uint32_t bottom (void) const {return mY2;}
32  inline uint32_t right (void) const {return mX2;}
33  inline uint32_t height (void) const {return bottom() > top() ? bottom() - top() : 0;}
34  inline uint32_t width (void) const {return right() > left() ? right() - left() : 0;}
35  inline bool isValid (void) const {return height() && width();}
36  inline bool isEmpty (void) const {return (height() == 0) || (width() == 0);}
37  inline bool operator == (const SRTWindow & inRHS) const {return this == &inRHS || (mX1 == inRHS.mX1 && mX2 == inRHS.mX2 && mY1 == inRHS.mY1 && mY2 == inRHS.mY2);}
38  inline bool operator != (const SRTWindow & inRHS) const {return !(*this == inRHS);}
39  std::string asString (void) const;
40  std::ostream & print (std::ostream & oss) const;
41 
42  // Modify
43  inline void clear (void) {mX1 = mY1 = mX2 = mY2 = 0;}
44  inline SRTWindow & setTop (uint32_t inY1) {mY1 = inY1; return *this;}
45  inline SRTWindow & setLeft (uint32_t inX1) {mX1 = inX1; return *this;}
46  inline SRTWindow & setBottom (uint32_t inY2) {mY2 = inY2; return *this;}
47  inline SRTWindow & setRight (uint32_t inX2) {mX2 = inX2; return *this;}
48  inline SRTWindow & setTopLeft (uint32_t inX1, uint32_t inY1) {setTop(inY1); return setLeft(inX1);}
49  inline SRTWindow & setBottomRight (uint32_t inX2, uint32_t inY2) {setBottom(inY2); return setRight(inX2);}
50  inline SRTWindow & set (uint32_t inX1, uint32_t inY1, uint32_t inX2, uint32_t inY2)
51  {setTopLeft(inX1,inY1); return setBottomRight(inX2,inY2);}
52  private:
53  uint32_t mX1, mX2, mY1, mY2; // Window rectangle bounds
54  }; // SRTWindow
55 
56  inline std::ostream & operator << (std::ostream & inOutStrm, const SRTWindow & inWindow) {return inWindow.print(inOutStrm);}
57 
62  {
63  public:
64  inline explicit SRTCaptionInfo (const SRTSeqNum inSeqNum = 0, const SRTTimestamp inStartTime = 0,
65  const SRTDuration inDuration = 0, const std::string & inRawCaption = std::string(),
66  const size_t inStartLineNum = 0, const size_t inEndLineNum = 0)
67  {set(inSeqNum, inStartTime, inDuration, inRawCaption, inStartLineNum, inEndLineNum);}
68  // Inquiry
69  std::string caption (void) const;
70  inline const std::string & rawCaption (void) const {return mRawCaption;}
71  inline SRTSeqNum sequenceNum (void) const {return mSequenceNum;}
72  inline SRTTimestamp startTime (void) const {return mStartTime;}
73  inline SRTDuration duration (void) const {return mDuration;}
74  inline SRTTimestamp endTime (void) const {return startTime() + duration();}
75  inline const SRTWindow & window (void) const {return mWindow;}
76  inline bool hasWindow (void) const {return mWindow.isValid();}
77  inline uint16_t anchor (void) const {return mAnchorPos;}
78  inline bool hasAnchor (void) const {return anchor();}
79  inline bool isValid (void) const {return !caption().empty() && sequenceNum() && startTime();}
80  inline bool hasAnchorTag (void) const {return rawCaption().find("{\\an") == 0;}
81  inline size_t startLineNumber (void) const {return mStartLineNum;}
82  inline size_t endLineNumber (void) const {return mEndLineNum;}
83  inline bool hasLineNumbers (void) const {return startLineNumber() && endLineNumber();}
84  inline size_t startLineOffset (void) const {return hasLineNumbers() ? startLineNumber()-1 : 0;}
85  inline size_t endLineOffset (void) const {return hasLineNumbers() ? endLineNumber()-1 : 0;}
86  inline bool isFirstCaption (void) const {return mFirstCaption;}
87  bool getCharWithAttrs (const size_t inPos, std::string & outChar, bool & outIsBold, bool & outIsItalic, std::string & outColor) const;
88 
89  // Modifying
90  inline SRTCaptionInfo & reset (void) {return set(0, 0, 0);}
91  inline SRTCaptionInfo & set (const SRTSeqNum inSeqNum, const SRTTimestamp inStartTime,
92  const SRTDuration inDuration, const std::string & inRawCaption = std::string(),
93  const size_t inStartLineNum = 0, const size_t inEndLineNum = 0)
94  { mSequenceNum = inSeqNum; mStartTime = inStartTime;
95  mDuration = inDuration; mRawCaption = inRawCaption;
96  mStartLineNum = inStartLineNum; mEndLineNum = inEndLineNum;
97  mAnchorPos = 0; mWindow.clear(); mFirstCaption = false;
98  return *this;
99  }
100  inline SRTCaptionInfo & setFirstCaption (const bool inIsFirst = true) {mFirstCaption = inIsFirst; return *this;}
101  inline SRTCaptionInfo & setWindow (const SRTWindow & inWindow) {mWindow = inWindow; return *this;}
102  inline SRTCaptionInfo & setAnchorPos (const uint16_t inAnchorPos) {mAnchorPos = inAnchorPos; return *this;}
103  inline SRTCaptionInfo & setLineNumbers (const size_t inStartLineNum, const size_t inEndLineNum)
104  {mStartLineNum = inStartLineNum; mEndLineNum = inEndLineNum; return *this;}
105  // Printing
106  std::ostream & printInfo (std::ostream & oss) const;
107  std::ostream & printSRT (std::ostream & oss) const;
108 
109  // Instance Data
110  private:
111  std::string mRawCaption; // Raw caption data (includes all tags)
112  SRTSeqNum mSequenceNum; // Sequence number (normally 1-based)
113  SRTTimestamp mStartTime; // Start timestamp
114  SRTDuration mDuration; // Duration
115  SRTWindow mWindow; // Window, if any
116  uint16_t mAnchorPos; // Anchor position (0=none 1=botLt 2=botCtr 3=botRt 4=midLt 5=midCtr 6=midRt 7=topLt 8=topCtr 9=topRt)
117  size_t mStartLineNum; // Starting SRT source file line number, if any (0=unavailable, 1=1st, 2=2nd, ...)
118  size_t mEndLineNum; // Ending SRT source file line number, if any (0=unavailable, 1=1st, 2=2nd, ...)
119  bool mFirstCaption; // Is this the first caption of a caption sequence?
120  }; // SRTCaptionInfo
121 
122 
127  {
128  // Class Methods & Types
129  public:
130  static bool getTimestamp (const std::string & inStr, SRTTimestamp & outTS, std::ostream & oss = std::cerr);
131  static bool getWindow (const std::string & inStr, SRTWindow & outWndo, std::ostream & oss);
132  static std::string timestampStr (const SRTTimestamp inTS, const bool inIncludeRawValue = false);
133  static std::string durationStr (const SRTDuration inDurationMS, const bool inIncludeRawValue = false);
134  static std::string anchorStr (const uint16_t inAnchor, const bool inIncludeRawValue = false);
135  static std::string anchorTag (const uint16_t inAnchor);
136  inline static SRTDuration defaultMinimumDuration (void) {return gMinCaptionDuration;}
137  inline static void setDefaultMinimumDuration (const SRTDuration inDuration) {gMinCaptionDuration = inDuration;}
138 
139  typedef std::vector<std::string> StringList;
140  typedef std::map<size_t, std::string> ErrorMap; // Line offset (0-based) to error/warning message
141  typedef std::map<SRTTimestamp, std::string> CaptionMap; // Caption strings per start timestamp
142  typedef std::map<SRTTimestamp, SRTDuration> DurationMap; // Caption durations per start timestamp
143  typedef std::map<SRTSeqNum, SRTTimestamp> TimestampMap; // Caption timestamps per sequence number
144  typedef std::map<SRTTimestamp, SRTSeqNum> SeqNumMap; // Sequence numbers per start timestamp
145  typedef std::map<SRTTimestamp, SRTWindow> WindowMap; // Caption windows per start timestamp
146  typedef std::map<SRTTimestamp, uint32_t> AnchorMap; // Caption anchor positions per start timestamp
147  typedef std::map<SRTTimestamp, size_t> SourceMap; // Source line numbers (1-based) per start timestamp
148 
149  // Instance Methods
150  public:
151  // Modify
152  bool reloadFrom (const StringList & inSRTData);
153  bool reloadFrom (const std::string & inSRTData);
154  bool appendCaption (const SRTCaptionInfo & inCaptionInfo);
155  void clear (void);
156 
157  // Inquiry
158  inline bool hasErrors (void) const {return errorCount();}
159  inline const ErrorMap & errors (void) const {return mErrors;}
160  inline size_t errorCount (void) const {return errors().size();}
161  inline bool hasWarnings (void) const {return !warnings().empty();}
162  inline const ErrorMap & warnings (void) const {return mWarnings;}
163  inline size_t warningCount (void) const {return warnings().size();}
164  inline bool isEmpty (void) const {return !captionCount();}
165  uint32_t captionCount (void) const;
166  SRTSeqNum minSeqNum (void) const;
167  SRTSeqNum maxSeqNum (void) const;
168  inline size_t linesParsed (void) const {return mLinesParsed;}
169  inline size_t totalLines (void) const {return mLines.size();}
170  inline std::string lineAtOffset (const size_t inOffset) const {return inOffset < mLines.size() ? mLines.at(inOffset) : "";}
171  SRTTimestamp minStartTime (void) const;
172  SRTTimestamp maxStartTime (void) const;
173  inline SRTDuration totalDuration (void) const {SRTDuration d(0); return maxStartTime() - minStartTime() + (durationAtStartTime(maxStartTime(),d) ? d : 0);}
174  bool hasCaptionAtSeqNum (const SRTSeqNum inSeqNum) const;
175  bool hasCaptionAtStartTime (const SRTTimestamp inStartTime) const;
176  SRTTimestamp startTimeAtSeqNum (const SRTSeqNum inSeqNum) const;
177  bool captionAtStartTime (const SRTTimestamp inStartTime, SRTCaptionInfo & outInfo) const;
178  std::string captionAtStartTime (const SRTTimestamp inStartTime) const;
179  bool durationAtStartTime (const SRTTimestamp inStartTime, SRTDuration & outDuration) const;
180  bool nextCaption (SRTTimestamp & inOutStartTime, SRTCaptionInfo & outInfo) const;
181  bool getWarning (const size_t inIndex0, size_t & outLineOffset, std::string & outMsg) const;
182  bool getError (size_t & outLineOffset, std::string & outMsg) const;
183  std::ostream & printErrors (std::ostream & oss, const bool inIncludeWarnings = true) const;
184  std::ostream & printSRT (std::ostream & oss) const;
185  std::ostream & printInfo (std::ostream & oss) const;
186 
187  // Instance Data
188  private:
189  TimestampMap mTimestamps; // Sequence-number-to-timestamp map
190  SeqNumMap mSeqNums; // Timestamp-to-seqNum map
191  CaptionMap mCaptions; // Timestamp-to-caption map
192  DurationMap mDurations; // Timestamp-to-duration map
193  WindowMap mWindows; // Timestamp-to-window map
194  AnchorMap mAnchors; // Timestamp-to-anchor map
195  SourceMap mStartLines; // Timestamp-to-starting-source-line-number map (lineNums are +1 from lineOffsets)
196  SourceMap mEndLines; // Timestamp-to-ending-source-line-number map (lineNums are +1 from lineOffsets)
197  ErrorMap mErrors; // LineNumber-to-ErrorMsg map
198  ErrorMap mWarnings; // LineNumber-to-WarningMsg map
199  size_t mLinesParsed; // Number of lines parsed
200  StringList mLines; // Lines
201 
202  // Class Data
203  private:
204  static const StringList kEmptyList;
205  static SRTDuration gMinCaptionDuration;
206  }; // SRTCaptions
207 
208 #endif // __NTV2_SRT_H_
SRTWindow::asString
std::string asString(void) const
SRTWindow
Definition: ntv2srt.h:22
SRTCaptions::captionCount
uint32_t captionCount(void) const
SRTCaptions::reloadFrom
bool reloadFrom(const StringList &inSRTData)
SRTCaptionInfo::caption
std::string caption(void) const
SRTWindow::set
SRTWindow & set(uint32_t inX1, uint32_t inY1, uint32_t inX2, uint32_t inY2)
Definition: ntv2srt.h:50
SRTCaptionInfo::setLineNumbers
SRTCaptionInfo & setLineNumbers(const size_t inStartLineNum, const size_t inEndLineNum)
Definition: ntv2srt.h:103
SRTCaptionInfo::printSRT
std::ostream & printSRT(std::ostream &oss) const
SRTCaptionInfo::endLineNumber
size_t endLineNumber(void) const
Definition: ntv2srt.h:82
SRTWindow::setTop
SRTWindow & setTop(uint32_t inY1)
Definition: ntv2srt.h:44
SRTCaptions::linesParsed
size_t linesParsed(void) const
Definition: ntv2srt.h:168
SRTCaptions::ErrorMap
std::map< size_t, std::string > ErrorMap
Definition: ntv2srt.h:140
SRTCaptions::WindowMap
std::map< SRTTimestamp, SRTWindow > WindowMap
Definition: ntv2srt.h:145
SRTCaptions::getWindow
static bool getWindow(const std::string &inStr, SRTWindow &outWndo, std::ostream &oss)
SRTCaptions::durationAtStartTime
bool durationAtStartTime(const SRTTimestamp inStartTime, SRTDuration &outDuration) const
SRTCaptions::lineAtOffset
std::string lineAtOffset(const size_t inOffset) const
Definition: ntv2srt.h:170
SRTCaptions::maxStartTime
SRTTimestamp maxStartTime(void) const
SRTCaptionInfo::endLineOffset
size_t endLineOffset(void) const
Definition: ntv2srt.h:85
SRTCaptions::getWarning
bool getWarning(const size_t inIndex0, size_t &outLineOffset, std::string &outMsg) const
SRTCaptionInfo::startLineOffset
size_t startLineOffset(void) const
Definition: ntv2srt.h:84
SRTCaptionInfo::set
SRTCaptionInfo & set(const SRTSeqNum inSeqNum, const SRTTimestamp inStartTime, const SRTDuration inDuration, const std::string &inRawCaption=std::string(), const size_t inStartLineNum=0, const size_t inEndLineNum=0)
Definition: ntv2srt.h:91
SRTWindow::width
uint32_t width(void) const
Definition: ntv2srt.h:34
SRTCaptions::hasCaptionAtStartTime
bool hasCaptionAtStartTime(const SRTTimestamp inStartTime) const
SRTCaptions::appendCaption
bool appendCaption(const SRTCaptionInfo &inCaptionInfo)
SRTCaptionInfo::isValid
bool isValid(void) const
Definition: ntv2srt.h:79
SRTCaptions::totalLines
size_t totalLines(void) const
Definition: ntv2srt.h:169
SRTWindow::SRTWindow
SRTWindow(uint32_t inX1=0, uint32_t inY1=0, uint32_t inX2=0, uint32_t inY2=0)
Definition: ntv2srt.h:25
SRTCaptionInfo::hasWindow
bool hasWindow(void) const
Definition: ntv2srt.h:76
SRTWindow::setBottom
SRTWindow & setBottom(uint32_t inY2)
Definition: ntv2srt.h:46
SRTWindow::right
uint32_t right(void) const
Definition: ntv2srt.h:32
SRTCaptionInfo::startTime
SRTTimestamp startTime(void) const
Definition: ntv2srt.h:72
SRTCaptions::clear
void clear(void)
SRTCaptionInfo::getCharWithAttrs
bool getCharWithAttrs(const size_t inPos, std::string &outChar, bool &outIsBold, bool &outIsItalic, std::string &outColor) const
SRTCaptions::warnings
const ErrorMap & warnings(void) const
Definition: ntv2srt.h:162
SRTCaptions::StringList
std::vector< std::string > StringList
Definition: ntv2srt.h:139
SRTCaptions::durationStr
static std::string durationStr(const SRTDuration inDurationMS, const bool inIncludeRawValue=false)
ajatypes.h
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
SRTCaptions::errors
const ErrorMap & errors(void) const
Definition: ntv2srt.h:159
SRTCaptionInfo::duration
SRTDuration duration(void) const
Definition: ntv2srt.h:73
SRTCaptionInfo::endTime
SRTTimestamp endTime(void) const
Definition: ntv2srt.h:74
SRTCaptions::isEmpty
bool isEmpty(void) const
Definition: ntv2srt.h:164
SRTCaptions::anchorTag
static std::string anchorTag(const uint16_t inAnchor)
SRTCaptions::minSeqNum
SRTSeqNum minSeqNum(void) const
SRTSeqNum
uint32_t SRTSeqNum
Definition: ntv2srt.h:18
SRTWindow::setRight
SRTWindow & setRight(uint32_t inX2)
Definition: ntv2srt.h:47
SRTCaptions::getError
bool getError(size_t &outLineOffset, std::string &outMsg) const
SRTCaptions::timestampStr
static std::string timestampStr(const SRTTimestamp inTS, const bool inIncludeRawValue=false)
SRTWindow::print
std::ostream & print(std::ostream &oss) const
SRTCaptionInfo::anchor
uint16_t anchor(void) const
Definition: ntv2srt.h:77
SRTWindow::isEmpty
bool isEmpty(void) const
Definition: ntv2srt.h:36
SRTCaptions::maxSeqNum
SRTSeqNum maxSeqNum(void) const
SRTCaptions::anchorStr
static std::string anchorStr(const uint16_t inAnchor, const bool inIncludeRawValue=false)
SRTWindow::bottom
uint32_t bottom(void) const
Definition: ntv2srt.h:31
SRTWindow::top
uint32_t top(void) const
Definition: ntv2srt.h:29
SRTWindow::operator!=
bool operator!=(const SRTWindow &inRHS) const
Definition: ntv2srt.h:38
SRTCaptions::startTimeAtSeqNum
SRTTimestamp startTimeAtSeqNum(const SRTSeqNum inSeqNum) const
SRTCaptionInfo::reset
SRTCaptionInfo & reset(void)
Definition: ntv2srt.h:90
SRTWindow::setLeft
SRTWindow & setLeft(uint32_t inX1)
Definition: ntv2srt.h:45
SRTCaptions::hasWarnings
bool hasWarnings(void) const
Definition: ntv2srt.h:161
SRTCaptionInfo::hasAnchor
bool hasAnchor(void) const
Definition: ntv2srt.h:78
SRTCaptions::printInfo
std::ostream & printInfo(std::ostream &oss) const
SRTWindow::setTopLeft
SRTWindow & setTopLeft(uint32_t inX1, uint32_t inY1)
Definition: ntv2srt.h:48
SRTAnchorPos
uint16_t SRTAnchorPos
Definition: ntv2srt.h:19
SRTCaptionInfo::hasLineNumbers
bool hasLineNumbers(void) const
Definition: ntv2srt.h:83
SRTCaptionInfo::window
const SRTWindow & window(void) const
Definition: ntv2srt.h:75
SRTCaptions::DurationMap
std::map< SRTTimestamp, SRTDuration > DurationMap
Definition: ntv2srt.h:142
SRTCaptionInfo::setWindow
SRTCaptionInfo & setWindow(const SRTWindow &inWindow)
Definition: ntv2srt.h:101
operator<<
std::ostream & operator<<(std::ostream &inOutStrm, const SRTWindow &inWindow)
Definition: ntv2srt.h:56
SRTCaptions::printErrors
std::ostream & printErrors(std::ostream &oss, const bool inIncludeWarnings=true) const
SRTWindow::isValid
bool isValid(void) const
Definition: ntv2srt.h:35
SRTCaptionInfo::isFirstCaption
bool isFirstCaption(void) const
Definition: ntv2srt.h:86
SRTCaptions::minStartTime
SRTTimestamp minStartTime(void) const
SRTCaptions::AnchorMap
std::map< SRTTimestamp, uint32_t > AnchorMap
Definition: ntv2srt.h:146
SRTDuration
uint32_t SRTDuration
Definition: ntv2srt.h:17
SRTCaptions::captionAtStartTime
bool captionAtStartTime(const SRTTimestamp inStartTime, SRTCaptionInfo &outInfo) const
SRTWindow::clear
void clear(void)
Definition: ntv2srt.h:43
SRTTimestamp
uint32_t SRTTimestamp
Definition: ntv2srt.h:16
SRTCaptionInfo::SRTCaptionInfo
SRTCaptionInfo(const SRTSeqNum inSeqNum=0, const SRTTimestamp inStartTime=0, const SRTDuration inDuration=0, const std::string &inRawCaption=std::string(), const size_t inStartLineNum=0, const size_t inEndLineNum=0)
Definition: ntv2srt.h:64
SRTWindow::height
uint32_t height(void) const
Definition: ntv2srt.h:33
SRTCaptions::hasErrors
bool hasErrors(void) const
Definition: ntv2srt.h:158
SRTWindow::operator==
bool operator==(const SRTWindow &inRHS) const
Definition: ntv2srt.h:37
SRTCaptions
A collection of timed captions.
Definition: ntv2srt.h:126
SRTWindow::left
uint32_t left(void) const
Definition: ntv2srt.h:30
SRTCaptions::warningCount
size_t warningCount(void) const
Definition: ntv2srt.h:163
SRTCaptions::defaultMinimumDuration
static SRTDuration defaultMinimumDuration(void)
Definition: ntv2srt.h:136
SRTCaptionInfo::sequenceNum
SRTSeqNum sequenceNum(void) const
Definition: ntv2srt.h:71
SRTCaptions::TimestampMap
std::map< SRTSeqNum, SRTTimestamp > TimestampMap
Definition: ntv2srt.h:143
SRTCaptions::SeqNumMap
std::map< SRTTimestamp, SRTSeqNum > SeqNumMap
Definition: ntv2srt.h:144
SRTWindow::setBottomRight
SRTWindow & setBottomRight(uint32_t inX2, uint32_t inY2)
Definition: ntv2srt.h:49
SRTCaptionInfo::setAnchorPos
SRTCaptionInfo & setAnchorPos(const uint16_t inAnchorPos)
Definition: ntv2srt.h:102
SRTCaptions::printSRT
std::ostream & printSRT(std::ostream &oss) const
SRTCaptionInfo::rawCaption
const std::string & rawCaption(void) const
Definition: ntv2srt.h:70
SRTCaptions::nextCaption
bool nextCaption(SRTTimestamp &inOutStartTime, SRTCaptionInfo &outInfo) const
SRTCaptionInfo::startLineNumber
size_t startLineNumber(void) const
Definition: ntv2srt.h:81
SRTCaptions::CaptionMap
std::map< SRTTimestamp, std::string > CaptionMap
Definition: ntv2srt.h:141
SRTCaptionInfo::printInfo
std::ostream & printInfo(std::ostream &oss) const
SRTCaptions::getTimestamp
static bool getTimestamp(const std::string &inStr, SRTTimestamp &outTS, std::ostream &oss=std::cerr)
SRTCaptions::setDefaultMinimumDuration
static void setDefaultMinimumDuration(const SRTDuration inDuration)
Definition: ntv2srt.h:137
SRTCaptions::hasCaptionAtSeqNum
bool hasCaptionAtSeqNum(const SRTSeqNum inSeqNum) const
SRTCaptions::totalDuration
SRTDuration totalDuration(void) const
Definition: ntv2srt.h:173
SRTCaptionInfo::setFirstCaption
SRTCaptionInfo & setFirstCaption(const bool inIsFirst=true)
Definition: ntv2srt.h:100
SRTCaptionInfo::hasAnchorTag
bool hasAnchorTag(void) const
Definition: ntv2srt.h:80
SRTCaptionInfo
Detailed caption information.
Definition: ntv2srt.h:61
SRTCaptions::errorCount
size_t errorCount(void) const
Definition: ntv2srt.h:160
SRTCaptions::SourceMap
std::map< SRTTimestamp, size_t > SourceMap
Definition: ntv2srt.h:147