3#ifndef ATSC_DESCRIPTORS_H
4#define ATSC_DESCRIPTORS_H
14using IntToBuf = QMap<int, const unsigned char*>;
43 QString CompressionTypeString(
uint i,
uint j)
const;
45 int Mode(
int i,
int j)
const {
return *(Offset(i,j)+1); }
47 int Bytes(
int i,
int j)
const {
return *(Offset(i,j)+2); }
53 uint GetIndexOfBestMatch(QMap<uint,uint> &langPrefs)
const;
54 QString GetBestMatch(QMap<uint,uint> &langPrefs)
const;
56 QString GetSegment(
uint i,
uint j)
const;
57 QString GetFullString(
uint i)
const;
59 void Parse(
void)
const;
64 static QString Uncompressed(
const unsigned char *buf,
int len,
int mode);
65 static uint Index(
int i,
int j) {
return (i<<8)|(j&0xff); }
66 const unsigned char *
Offset(
int i,
int j)
const
67 {
return m_ptrs[Index(i,j)]; }
101 {
return (((
Offset(i,-1)[3])>>7) & 1) != 0; }
111 {
return ((
Offset(i,-1)[3])) & 0x3f; }
124 static int Index(
int i,
int j) {
return (i<<8) | (j & 0xff); }
125 const unsigned char *
Offset(
int i,
int j)
const
153 {
return *(
Offset(i,-1) + 1); }
161 {
return (*(
Offset(i,j) + 1)) & 0xf; }
177 static int Index(
int i,
int j) {
return (i<<8)|(j&0xff); }
178 const unsigned char *
Offset(
int i,
int j)
const
180 IntToBuf::const_iterator it =
m_ptrs.find(
Index(i,j));
181 return (it !=
m_ptrs.end()) ? *it :
nullptr;
199 return QString(
"Component Name Descriptor %1")
298 const unsigned short* ustr =
299 reinterpret_cast<const unsigned short*
>(buf);
300 for (
int j=0; j<(len>>1); j++)
301 str.append( QChar( (ustr[j]<<8) | (ustr[j]>>8) ) );
QMap< int, const unsigned char * > IntToBuf
bool IsTextLatin1(void) const
QString BitRateCodeString(void) const
uint TextLength(void) const
QString SurroundModeString(void) const
uint BitRateCode(void) const
uint LanguageCode2(void) const
bool FullService(void) const
QString ChannelsString(void) const
uint SurroundMode(void) const
QString SampleRateCodeString(void) const
uint Channels(void) const
uint AServiceFlags(void) const
uint BasicServiceMode(void) const
QString toString() const override
uint SampleRateCode(void) const
uint LanguageCode(void) const
AC3AudioStreamDescriptor(const unsigned char *data, int len=300)
bool EasyReader(int i) const
QString toString() const override
CaptionServiceDescriptor(const unsigned char *data, int len=300)
bool Line21Field(int i) const
static int Index(int i, int j)
bool WideAspectRatio(int i) const
int CanonicalLanguageKey(int i) const
uint ServicesCount() const
int CaptionServiceNumber(int i) const
int LanguageKey(int i) const
QString CanonicalLanguageString(int i) const
const unsigned char * Offset(int i, int j) const
QString LanguageString(int i) const
QString toString() const override
ComponentNameDescriptor(const unsigned char *data, int len=300)
MultipleStringStructure ComponentNameStrings() const
uint RatingValue(uint i, uint j) const
uint RatingRegion(uint i) const
ContentAdvisoryDescriptor(const unsigned char *data, int len=300)
QString toString() const override
static int Index(int i, int j)
const unsigned char * Offset(int i, int j) const
uint RatingDimension(uint i, uint j) const
uint RatingDescriptionLength(uint i) const
uint RatedDimensions(uint i) const
uint RatingRegionCount(void) const
MultipleStringStructure RatingDescription(uint i) const
This is something like an ISBN for TV shows.
ContentIdentifierDescriptor(const unsigned char *data, int len=300)
Provides the long channel name for the virtual channel containing this descriptor.
MultipleStringStructure LongChannelName(void) const
Returns a MultipleStringStructure representing the long name of the associated channel.
ExtendedChannelNameDescriptor(const unsigned char *data, int len=300)
QString toString() const override
QString LongChannelNameString(void) const
Convenience function that returns a QString comprising a concatenation of all the segments in the Lon...
const unsigned char * m_data
const unsigned char * Offset(int i, int j) const
uint StringCount(void) const
uint SegmentCount(uint i) const
MultipleStringStructure(const unsigned char *data)
int Bytes(int i, int j) const
uint CompressionType(uint i, uint j) const
int Mode(int i, int j) const
const unsigned char * m_data
QString LanguageString(uint i) const
int LanguageKey(uint i) const
int CanonicalLanguageKey(uint i) const
QString CanonicalLanguageString(uint i) const
static uint Index(int i, int j)
int iso639_key_to_canonical_key(int iso639_2)
static QString iso639_key_to_str3(int code)
static int iso639_str3_to_key(const unsigned char *iso639_2)
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.