MythTV  master
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
CC608Decoder Class Reference

#include <cc608decoder.h>

Collaboration diagram for CC608Decoder:
Collaboration graph
[legend]

Public Member Functions

 CC608Decoder (CC608Input *ccr)
 
 CC608Decoder (const CC608Decoder &rhs)
 
 ~CC608Decoder ()
 
void FormatCC (int tc, int code1, int code2)
 
void FormatCCField (int tc, int field, int data)
 
int FalseDup (int tc, int field, int data)
 
void DecodeVPS (const unsigned char *buf)
 
void DecodeWSS (const unsigned char *buf)
 
void SetIgnoreTimecode (bool val)
 
uint GetRatingSystems (bool future) const
 
uint GetRating (uint i, bool future) const
 
QString GetRatingString (uint i, bool future) const
 
QString GetProgramName (bool future) const
 
QString GetProgramType (bool future) const
 
QString GetXDS (const QString &key) const
 
void GetServices (uint seconds, CC608Seen &seen) const
 

Static Public Member Functions

static QString ToASCII (const QString &cc608, bool suppress_unknown)
 

Private Member Functions

QChar CharCC (int code) const
 
void ResetCC (int mode)
 
void BufferCC (int mode, int len, int clr)
 
int NewRowCC (int mode, int len)
 
QString XDSDecodeString (const std::vector< unsigned char > &buf, uint start, uint end) const
 
bool XDSDecode (int field, int b1, int b2)
 
bool XDSPacketParseProgram (const std::vector< unsigned char > &xds_buf, bool future)
 
bool XDSPacketParseChannel (const std::vector< unsigned char > &xds_buf)
 
void XDSPacketParse (const std::vector< unsigned char > &xds_buf)
 
bool XDSPacketCRC (const std::vector< unsigned char > &xds_buf)
 

Private Attributes

CC608Inputm_reader {nullptr}
 
bool m_ignoreTimeCode {false}
 
std::array< time_t, 4 > m_lastSeen {0}
 
CC608PerField m_badVbi { 0, 0}
 
CC608PerField m_lastTc { 0, 0}
 
CC608PerField m_lastCode {-1, -1}
 
CC608PerField m_lastCodeTc { 0, 0}
 
CC608PerField m_ccMode {-1, -1}
 
CC608PerField m_xds { 0, 0}
 
std::array< int, 4 > m_txtMode { 0, 0, 0, 0}
 
CC608PerMode m_lastRow {0}
 
CC608PerMode m_newRow {0}
 
CC608PerMode m_newCol {0}
 
CC608PerMode m_newAttr {0}
 
CC608PerMode m_timeCode {0}
 
CC608PerMode m_row {0}
 
CC608PerMode m_col {0}
 
CC608PerMode m_rowCount {0}
 
CC608PerMode m_style {0}
 
CC608PerMode m_lineCont {0}
 
CC608PerMode m_resumeText {0}
 
CC608PerMode m_lastClr {0}
 
std::array< QString, 8 > m_ccBuf
 
std::array< QChar, 128 > m_stdChar
 
unsigned char * m_rbuf {nullptr}
 
std::array< int, 2 > m_lastFormatTc {0, 0}
 
std::array< int, 2 > m_lastFormatData {0, 0}
 
std::array< char, 20 > m_vpsPrLabel {0}
 
std::array< char, 20 > m_vpsLabel {0}
 
int m_vpsL {0}
 
uint m_wssFlags {0}
 
bool m_wssValid {false}
 
int m_xdsCurService {-1}
 
std::array< std::vector< unsigned char >, 7 > m_xdsBuf
 
uint m_xdsCrcPassed {0}
 
uint m_xdsCrcFailed {0}
 
QMutex m_xdsLock {QMutex::Recursive}
 
std::array< uint, 2 > m_xdsRatingSystems {0}
 
std::array< std::array< uint, 4 >, 2 > m_xdsRating {{}}
 
std::array< QString, 2 > m_xdsProgramName
 
std::array< std::vector< uint >, 2 > m_xdsProgramType
 
QString m_xdsNetCall
 
QString m_xdsNetName
 
uint m_xdsTsid {0}
 
CC608ProgramType m_xdsProgramTypeString
 

Detailed Description

Definition at line 46 of file cc608decoder.h.

Constructor & Destructor Documentation

◆ CC608Decoder() [1/2]

CC608Decoder::CC608Decoder ( CC608Input ccr)
explicit

Definition at line 23 of file cc608decoder.cpp.

◆ CC608Decoder() [2/2]

CC608Decoder::CC608Decoder ( const CC608Decoder rhs)

◆ ~CC608Decoder()

CC608Decoder::~CC608Decoder ( void  )

Definition at line 44 of file cc608decoder.cpp.

Member Function Documentation

◆ FormatCC()

void CC608Decoder::FormatCC ( int  tc,
int  code1,
int  code2 
)

Definition at line 49 of file cc608decoder.cpp.

Referenced by AvFormatDecoder::DecodeCCx08(), and NuppelVideoRecorder::FormatCC().

◆ FormatCCField()

void CC608Decoder::FormatCCField ( int  tc,
int  field,
int  data 
)

◆ FalseDup()

int CC608Decoder::FalseDup ( int  tc,
int  field,
int  data 
)

Definition at line 543 of file cc608decoder.cpp.

Referenced by FormatCCField().

◆ DecodeVPS()

void CC608Decoder::DecodeVPS ( const unsigned char *  buf)

Definition at line 876 of file cc608decoder.cpp.

Referenced by AvFormatDecoder::ProcessVBIDataPacket().

◆ DecodeWSS()

void CC608Decoder::DecodeWSS ( const unsigned char *  buf)

Definition at line 914 of file cc608decoder.cpp.

Referenced by AvFormatDecoder::ProcessVBIDataPacket().

◆ SetIgnoreTimecode()

void CC608Decoder::SetIgnoreTimecode ( bool  val)
inline

Definition at line 60 of file cc608decoder.h.

Referenced by AvFormatDecoder::AvFormatDecoder().

◆ GetRatingSystems()

uint CC608Decoder::GetRatingSystems ( bool  future) const

Definition at line 997 of file cc608decoder.cpp.

Referenced by GetXDS().

◆ GetRating()

uint CC608Decoder::GetRating ( uint  i,
bool  future 
) const

Definition at line 1003 of file cc608decoder.cpp.

Referenced by GetRatingString(), and XDSPacketParseProgram().

◆ GetRatingString()

QString CC608Decoder::GetRatingString ( uint  i,
bool  future 
) const

Definition at line 1009 of file cc608decoder.cpp.

Referenced by GetXDS(), and XDSPacketParseProgram().

◆ GetProgramName()

QString CC608Decoder::GetProgramName ( bool  future) const

Definition at line 1045 of file cc608decoder.cpp.

Referenced by GetXDS(), and XDSPacketParseProgram().

◆ GetProgramType()

QString CC608Decoder::GetProgramType ( bool  future) const

Definition at line 1051 of file cc608decoder.cpp.

Referenced by GetXDS(), and XDSPacketParseProgram().

◆ GetXDS()

QString CC608Decoder::GetXDS ( const QString &  key) const

Definition at line 1067 of file cc608decoder.cpp.

Referenced by AvFormatDecoder::GetXDS().

◆ GetServices()

void CC608Decoder::GetServices ( uint  seconds,
CC608Seen seen 
) const
Returns
Services seen in last few seconds as specified.

Definition at line 55 of file cc608decoder.cpp.

Referenced by AvFormatDecoder::UpdateCaptionTracksFromStreams().

◆ ToASCII()

QString CC608Decoder::ToASCII ( const QString &  cc608,
bool  suppress_unknown 
)
static

Definition at line 625 of file cc608decoder.cpp.

Referenced by BufferCC().

◆ CharCC()

QChar CC608Decoder::CharCC ( int  code) const
inlineprivate

Definition at line 75 of file cc608decoder.h.

Referenced by FormatCCField(), XDSDecode(), and XDSDecodeString().

◆ ResetCC()

void CC608Decoder::ResetCC ( int  mode)
private

Definition at line 609 of file cc608decoder.cpp.

Referenced by FormatCCField().

◆ BufferCC()

void CC608Decoder::BufferCC ( int  mode,
int  len,
int  clr 
)
private

Definition at line 664 of file cc608decoder.cpp.

Referenced by FormatCCField(), and NewRowCC().

◆ NewRowCC()

int CC608Decoder::NewRowCC ( int  mode,
int  len 
)
private

Definition at line 726 of file cc608decoder.cpp.

Referenced by FormatCCField().

◆ XDSDecodeString()

QString CC608Decoder::XDSDecodeString ( const std::vector< unsigned char > &  buf,
uint  start,
uint  end 
) const
private

Definition at line 954 of file cc608decoder.cpp.

Referenced by XDSPacketParse(), XDSPacketParseChannel(), and XDSPacketParseProgram().

◆ XDSDecode()

bool CC608Decoder::XDSDecode ( int  field,
int  b1,
int  b2 
)
private

Definition at line 1117 of file cc608decoder.cpp.

Referenced by FormatCCField().

◆ XDSPacketParseProgram()

bool CC608Decoder::XDSPacketParseProgram ( const std::vector< unsigned char > &  xds_buf,
bool  future 
)
private

Definition at line 1242 of file cc608decoder.cpp.

Referenced by XDSPacketParse().

◆ XDSPacketParseChannel()

bool CC608Decoder::XDSPacketParseChannel ( const std::vector< unsigned char > &  xds_buf)
private

Definition at line 1403 of file cc608decoder.cpp.

Referenced by XDSPacketParse().

◆ XDSPacketParse()

void CC608Decoder::XDSPacketParse ( const std::vector< unsigned char > &  xds_buf)
private

Definition at line 1188 of file cc608decoder.cpp.

Referenced by XDSDecode().

◆ XDSPacketCRC()

bool CC608Decoder::XDSPacketCRC ( const std::vector< unsigned char > &  xds_buf)
private

Definition at line 1221 of file cc608decoder.cpp.

Referenced by XDSDecode().

Member Data Documentation

◆ m_reader

CC608Input* CC608Decoder::m_reader {nullptr}
private

Definition at line 90 of file cc608decoder.h.

Referenced by BufferCC().

◆ m_ignoreTimeCode

bool CC608Decoder::m_ignoreTimeCode {false}
private

Definition at line 92 of file cc608decoder.h.

Referenced by FalseDup(), FormatCCField(), and SetIgnoreTimecode().

◆ m_lastSeen

std::array<time_t,4> CC608Decoder::m_lastSeen {0}
private

Definition at line 94 of file cc608decoder.h.

Referenced by BufferCC(), and GetServices().

◆ m_badVbi

CC608PerField CC608Decoder::m_badVbi { 0, 0}
private

Definition at line 97 of file cc608decoder.h.

Referenced by FalseDup(), and FormatCCField().

◆ m_lastTc

CC608PerField CC608Decoder::m_lastTc { 0, 0}
private

Definition at line 98 of file cc608decoder.h.

Referenced by FalseDup(), and FormatCCField().

◆ m_lastCode

CC608PerField CC608Decoder::m_lastCode {-1, -1}
private

Definition at line 99 of file cc608decoder.h.

Referenced by FalseDup(), and FormatCCField().

◆ m_lastCodeTc

CC608PerField CC608Decoder::m_lastCodeTc { 0, 0}
private

Definition at line 100 of file cc608decoder.h.

Referenced by FalseDup(), and FormatCCField().

◆ m_ccMode

CC608PerField CC608Decoder::m_ccMode {-1, -1}
private

Definition at line 101 of file cc608decoder.h.

Referenced by FormatCCField().

◆ m_xds

CC608PerField CC608Decoder::m_xds { 0, 0}
private

Definition at line 102 of file cc608decoder.h.

Referenced by FormatCCField(), and XDSDecode().

◆ m_txtMode

std::array<int,4> CC608Decoder::m_txtMode { 0, 0, 0, 0}
private

Definition at line 103 of file cc608decoder.h.

Referenced by FormatCCField().

◆ m_lastRow

CC608PerMode CC608Decoder::m_lastRow {0}
private

Definition at line 106 of file cc608decoder.h.

Referenced by FormatCCField(), and NewRowCC().

◆ m_newRow

CC608PerMode CC608Decoder::m_newRow {0}
private

Definition at line 107 of file cc608decoder.h.

Referenced by FormatCCField(), and NewRowCC().

◆ m_newCol

CC608PerMode CC608Decoder::m_newCol {0}
private

Definition at line 108 of file cc608decoder.h.

Referenced by FormatCCField(), and NewRowCC().

◆ m_newAttr

CC608PerMode CC608Decoder::m_newAttr {0}
private

Definition at line 109 of file cc608decoder.h.

Referenced by FormatCCField(), and NewRowCC().

◆ m_timeCode

CC608PerMode CC608Decoder::m_timeCode {0}
private

Definition at line 110 of file cc608decoder.h.

Referenced by BufferCC(), and FormatCCField().

◆ m_row

CC608PerMode CC608Decoder::m_row {0}
private

Definition at line 111 of file cc608decoder.h.

Referenced by BufferCC(), FormatCCField(), NewRowCC(), and ResetCC().

◆ m_col

CC608PerMode CC608Decoder::m_col {0}
private

Definition at line 112 of file cc608decoder.h.

Referenced by FormatCCField(), NewRowCC(), and ResetCC().

◆ m_rowCount

CC608PerMode CC608Decoder::m_rowCount {0}
private

Definition at line 113 of file cc608decoder.h.

Referenced by BufferCC(), FormatCCField(), and ResetCC().

◆ m_style

CC608PerMode CC608Decoder::m_style {0}
private

Definition at line 114 of file cc608decoder.h.

Referenced by BufferCC(), FormatCCField(), and NewRowCC().

◆ m_lineCont

CC608PerMode CC608Decoder::m_lineCont {0}
private

Definition at line 115 of file cc608decoder.h.

Referenced by BufferCC(), FormatCCField(), NewRowCC(), and ResetCC().

◆ m_resumeText

CC608PerMode CC608Decoder::m_resumeText {0}
private

Definition at line 116 of file cc608decoder.h.

Referenced by BufferCC(), FormatCCField(), and ResetCC().

◆ m_lastClr

CC608PerMode CC608Decoder::m_lastClr {0}
private

Definition at line 117 of file cc608decoder.h.

Referenced by BufferCC(), FormatCCField(), and ResetCC().

◆ m_ccBuf

std::array<QString,8> CC608Decoder::m_ccBuf
private

Definition at line 118 of file cc608decoder.h.

Referenced by BufferCC(), FormatCCField(), NewRowCC(), and ResetCC().

◆ m_stdChar

std::array<QChar,128> CC608Decoder::m_stdChar
private

Definition at line 121 of file cc608decoder.h.

Referenced by CC608Decoder(), and CharCC().

◆ m_rbuf

unsigned char* CC608Decoder::m_rbuf {nullptr}
private

Definition at line 124 of file cc608decoder.h.

Referenced by BufferCC(), and ~CC608Decoder().

◆ m_lastFormatTc

std::array<int,2> CC608Decoder::m_lastFormatTc {0, 0}
private

Definition at line 125 of file cc608decoder.h.

Referenced by FormatCCField().

◆ m_lastFormatData

std::array<int,2> CC608Decoder::m_lastFormatData {0, 0}
private

Definition at line 126 of file cc608decoder.h.

Referenced by FormatCCField().

◆ m_vpsPrLabel

std::array<char,20> CC608Decoder::m_vpsPrLabel {0}
private

Definition at line 129 of file cc608decoder.h.

Referenced by DecodeVPS().

◆ m_vpsLabel

std::array<char,20> CC608Decoder::m_vpsLabel {0}
private

Definition at line 130 of file cc608decoder.h.

Referenced by DecodeVPS().

◆ m_vpsL

int CC608Decoder::m_vpsL {0}
private

Definition at line 131 of file cc608decoder.h.

Referenced by DecodeVPS().

◆ m_wssFlags

uint CC608Decoder::m_wssFlags {0}
private

Definition at line 134 of file cc608decoder.h.

Referenced by DecodeWSS().

◆ m_wssValid

bool CC608Decoder::m_wssValid {false}
private

Definition at line 135 of file cc608decoder.h.

Referenced by DecodeWSS().

◆ m_xdsCurService

int CC608Decoder::m_xdsCurService {-1}
private

Definition at line 137 of file cc608decoder.h.

Referenced by XDSDecode().

◆ m_xdsBuf

std::array<std::vector<unsigned char>,7> CC608Decoder::m_xdsBuf
private

Definition at line 138 of file cc608decoder.h.

Referenced by XDSDecode().

◆ m_xdsCrcPassed

uint CC608Decoder::m_xdsCrcPassed {0}
private

Definition at line 139 of file cc608decoder.h.

Referenced by XDSPacketCRC().

◆ m_xdsCrcFailed

uint CC608Decoder::m_xdsCrcFailed {0}
private

Definition at line 140 of file cc608decoder.h.

Referenced by XDSPacketCRC().

◆ m_xdsLock

QMutex CC608Decoder::m_xdsLock {QMutex::Recursive}
mutableprivate

◆ m_xdsRatingSystems

std::array<uint,2> CC608Decoder::m_xdsRatingSystems {0}
private

Definition at line 143 of file cc608decoder.h.

Referenced by GetRatingSystems(), and XDSPacketParseProgram().

◆ m_xdsRating

std::array<std::array<uint,4>,2> CC608Decoder::m_xdsRating {{}}
private

Definition at line 144 of file cc608decoder.h.

Referenced by GetRating(), GetRatingString(), and XDSPacketParseProgram().

◆ m_xdsProgramName

std::array<QString,2> CC608Decoder::m_xdsProgramName
private

Definition at line 145 of file cc608decoder.h.

Referenced by GetProgramName(), and XDSPacketParseProgram().

◆ m_xdsProgramType

std::array<std::vector<uint>,2> CC608Decoder::m_xdsProgramType
private

Definition at line 146 of file cc608decoder.h.

Referenced by GetProgramType(), and XDSPacketParseProgram().

◆ m_xdsNetCall

QString CC608Decoder::m_xdsNetCall
private

Definition at line 148 of file cc608decoder.h.

Referenced by GetXDS(), and XDSPacketParseChannel().

◆ m_xdsNetName

QString CC608Decoder::m_xdsNetName
private

Definition at line 149 of file cc608decoder.h.

Referenced by GetXDS(), and XDSPacketParseChannel().

◆ m_xdsTsid

uint CC608Decoder::m_xdsTsid {0}
private

Definition at line 150 of file cc608decoder.h.

Referenced by GetXDS(), and XDSPacketParseChannel().

◆ m_xdsProgramTypeString

CC608ProgramType CC608Decoder::m_xdsProgramTypeString
private

Definition at line 152 of file cc608decoder.h.

Referenced by CC608Decoder(), and GetProgramType().


The documentation for this class was generated from the following files: