Go to the documentation of this file.
13 #include <QRecursiveMutex>
71 virtual void AddTextData(
unsigned char *buf,
int len,
72 std::chrono::milliseconds timecode,
char type) = 0;
97 void FormatCC(std::chrono::milliseconds tc,
int code1,
int code2);
98 void FormatCCField(std::chrono::milliseconds tc,
size_t field,
int data);
99 bool FalseDup(std::chrono::milliseconds tc,
int field,
int data);
101 void DecodeVPS(
const unsigned char *buf);
102 void DecodeWSS(
const unsigned char *buf);
111 QString
GetXDS(
const QString &key)
const;
116 static QString
ToASCII(
const QString &cc608,
bool suppress_unknown);
121 void BufferCC(
size_t mode,
int len,
int clr);
126 bool XDSDecode(
int field,
int b1,
int b2);
132 bool XDSPacketCRC(
const std::vector<unsigned char> &xds_buf);
CC608PerFieldTc m_lastCodeTc
void SetIgnoreTimecode(bool val)
std::array< uint, 2 > m_xdsRatingSystems
uint GetRating(uint i, bool future) const
std::array< int, 8 > CC608PerMode
void FormatCC(std::chrono::milliseconds tc, int code1, int code2)
std::array< char, 20 > m_vpsLabel
static constexpr uint8_t CC_LINE_CONT
CC608ProgramType m_xdsProgramTypeString
QString GetProgramName(bool future) const
void BufferCC(size_t mode, int len, int clr)
std::array< bool, 4 > CC608Seen
bool XDSDecode(int field, int b1, int b2)
static QString ToASCII(const QString &cc608, bool suppress_unknown)
bool FalseDup(std::chrono::milliseconds tc, int field, int data)
std::array< char, 20 > m_vpsPrLabel
std::array< int, 4 > m_txtMode
void DecodeWSS(const unsigned char *buf)
std::array< QString, 96 > CC608ProgramType
std::array< QString, 2 > m_xdsProgramName
QString GetRatingString(uint i, bool future) const
CC608PerMode m_resumeText
CC608PerModeTc m_timeCode
CC608PerFieldTc m_lastFormatTc
uint GetRatingSystems(bool future) const
std::array< std::chrono::milliseconds, 8 > CC608PerModeTc
std::array< int, 2 > CC608PerField
int NewRowCC(size_t mode, int len)
std::array< QString, 8 > m_ccBuf
QChar CharCC(int code) const
void FormatCCField(std::chrono::milliseconds tc, size_t field, int data)
CC608PerField m_lastFormatData
std::array< std::array< uint, 4 >, 2 > m_xdsRating
QRecursiveMutex m_xdsLock
static constexpr uint8_t CC_MODE_MASK
void ResetCC(size_t mode)
bool XDSPacketCRC(const std::vector< unsigned char > &xds_buf)
void DecodeVPS(const unsigned char *buf)
QString GetXDS(const QString &key) const
void XDSPacketParse(const std::vector< unsigned char > &xds_buf)
std::array< std::chrono::milliseconds, 2 > CC608PerFieldTc
static constexpr uint8_t CC_TXT_MASK
std::array< QChar, 128 > m_stdChar
bool XDSPacketParseChannel(const std::vector< unsigned char > &xds_buf)
std::array< SystemTime, 4 > m_lastSeen
QString XDSDecodeString(const std::vector< unsigned char > &buf, uint start, uint end) const
void GetServices(std::chrono::seconds seconds, CC608Seen &seen) const
std::array< std::vector< unsigned char >, 7 > m_xdsBuf
bool XDSPacketParseProgram(const std::vector< unsigned char > &xds_buf, bool future)
std::array< std::vector< uint >, 2 > m_xdsProgramType
CC608Decoder(CC608Input *ccr)
QString GetProgramType(bool future) const
unsigned char resumedirect