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