12#include <QCoreApplication>
33 for (
uint i = 0; (i < length) && buf[i]; i++)
69 QString codec = QString(
"iso-8859-%1").arg(which);
70 iconv_t conv = iconv_open(
"utf-16", qPrintable(codec));
71 if (conv == (iconv_t) -1)
76 size_t outmaxlen = (length * 2) + 2;
78 outbytes.resize(outmaxlen);
79 char *outp = outbytes.data();
80 size_t outremain = outmaxlen;
85 size_t ret = iconv(conv, &buf, &length, &outp, &outremain);
86 if (ret ==
size_t(-1))
96 if (outbytes[0] ==
static_cast<char>(0xFE))
98 *outp++ = 0xFF; *outp++ = 0xFD;
102 *outp++ = 0xFD; *outp++ = 0xFF;
121 QString::fromUtf16(
reinterpret_cast<char16_t*
>(outbytes.data()),
122 (outmaxlen-outremain)/2);
144 s.reserve((raw_length - 1) / 2);
145 for (
size_t i = 1; i < raw_length - 1; i += 2)
147 s += QChar{(
static_cast<uint16_t>(src[i]) << 8) + src[i + 1]};
152 if (((0x11 < src[0]) && (src[0] < 0x15)) ||
153 ((0x15 < src[0]) && (src[0] < 0x1f)))
156 LOG(VB_SIPARSER, LOG_ERR,
157 "dvb_decode_text: Multi-byte coded text is not yet supported.");
169 auto *dst =
new unsigned char[raw_length + encoding_override.size()];
172 if (!encoding_override.empty() && (src[0] >= 0x20)) {
173 std::copy(encoding_override.cbegin(), encoding_override.cend(), dst);
174 length = encoding_override.size();
178 for (
uint i = 0; i < raw_length; i++)
180 if ((src[i] < 0x80) || (src[i] > 0x9F))
182 dst[length++] = src[i];
185 else if (src[i] == 0x8A)
187 dst[length++] = 0x20;
193 QString sStr = (!length) ?
"" :
decode_text(dst, length);
207 if ((buf[0] >= 0x01) && (buf[0] <= 0x0B))
209 return iconv_helper(4 + buf[0], (
char*)(buf + 1), length - 1);
211 if ((buf[0] == 0x10) && (length >= 3))
219 uint code = buf[1] << 8 | buf[2];
221 return iconv_helper(code, (
char*)(buf + 3), length - 3);
222 return QString::fromLocal8Bit((
char*)(buf + 3), length - 3);
226 return QString::fromUtf8((
char*)(buf + 1), length - 1);
230 return QString::fromLocal8Bit((
char*)(buf + 1), length - 1);
238 LOG(VB_SIPARSER, LOG_WARNING,
239 QString(
"dvb_decode_short_name: name is %1 chars "
240 "long. Unlikely to be a short name.")
245 if (((0x10 < src[0]) && (src[0] < 0x15)) ||
246 ((0x15 < src[0]) && (src[0] < 0x20)))
249 LOG(VB_SIPARSER, LOG_ERR,
"dvb_decode_short_name: "
250 "Multi-byte coded text is not yet supported.");
254 auto *dst =
new unsigned char[raw_length];
258 for (
uint i = 0; i < raw_length; i++)
262 for (i = i + 1; i < raw_length && (src[i] != 0x87); i++)
264 if ((src[i] < 0x80) || (src[i] > 0x9F))
266 dst[length++] = src[i];
269 else if (src[i] == 0x8A)
271 dst[length++] = 0x20;
301 "Information Service",
303 "CA Replacement Service",
304 "TS Containing Complete Network/Bouquet SI",
305 "Service Replacement Service",
306 "Data Broadcast Service",
309 "System Software Update Service",
310 "TS Containing SSU, BAT or NIT",
311 "IP/MAC Notification Service",
312 "TS Containing INT, BAT or NIT",
322 return QString(
"Reserved(0x%1)").arg(
LinkageType(),2,16,QChar(
'0'));
323 return QString(
"User Defined(0x%1)").arg(
LinkageType(),2,16,QChar(
'0'));
329 return "Hand-Over to an Identical Service";
331 return "Hand-Over to a Local Variation";
333 return "Hand-over to an Associated Service";
360 QString tmp(
"ContentDescriptor: ");
374 QString subCatStr = QCoreApplication::translate(
"(Categories)",
375 "%1 - %2",
"Category with subcategory display");
377 s_categoryDesc[0x10] = QCoreApplication::translate(
"(Categories)",
"Movie");
379 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
380 QCoreApplication::translate(
"(Categories)",
"Detective/Thriller"));
382 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
383 QCoreApplication::translate(
"(Categories)",
384 "Adventure/Western/War"));
386 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
387 QCoreApplication::translate(
"(Categories)",
388 "Science Fiction/Fantasy/Horror"));
390 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
391 QCoreApplication::translate(
"(Categories)",
"Comedy"));
393 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
394 QCoreApplication::translate(
"(Categories)",
395 "Soap/Melodrama/Folkloric"));
397 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
398 QCoreApplication::translate(
"(Categories)",
"Romance"));
400 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
401 QCoreApplication::translate(
"(Categories)",
402 "Serious/Classical/Religious/Historical Movie/Drama"));
404 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
405 QCoreApplication::translate(
"(Categories)",
"Adult",
408 s_categoryDesc[0x20] = QCoreApplication::translate(
"(Categories)",
"News");
409 s_categoryDesc[0x21] = QCoreApplication::translate(
"(Categories)",
410 "News/Weather Report");
411 s_categoryDesc[0x22] = QCoreApplication::translate(
"(Categories)",
413 s_categoryDesc[0x23] = QCoreApplication::translate(
"(Categories)",
415 s_categoryDesc[0x24] = QCoreApplication::translate(
"(Categories)",
416 "Intelligent Programs");
418 s_categoryDesc[0x30] = QCoreApplication::translate(
"(Categories)",
420 s_categoryDesc[0x31] = QCoreApplication::translate(
"(Categories)",
422 s_categoryDesc[0x32] = QCoreApplication::translate(
"(Categories)",
424 s_categoryDesc[0x33] = QCoreApplication::translate(
"(Categories)",
427 s_categoryDesc[0x40] = QCoreApplication::translate(
"(Categories)",
429 s_categoryDesc[0x41] = QCoreApplication::translate(
"(Categories)",
430 "Special Events (World Cup, World Series, etc)");
431 s_categoryDesc[0x42] = QCoreApplication::translate(
"(Categories)",
433 s_categoryDesc[0x43] = QCoreApplication::translate(
"(Categories)",
434 "Football (Soccer)");
435 s_categoryDesc[0x44] = QCoreApplication::translate(
"(Categories)",
437 s_categoryDesc[0x45] = QCoreApplication::translate(
"(Categories)",
438 "Misc. Team Sports");
440 s_categoryDesc[0x46] = QCoreApplication::translate(
"(Categories)",
442 s_categoryDesc[0x47] = QCoreApplication::translate(
"(Categories)",
444 s_categoryDesc[0x48] = QCoreApplication::translate(
"(Categories)",
446 s_categoryDesc[0x49] = QCoreApplication::translate(
"(Categories)",
448 s_categoryDesc[0x4A] = QCoreApplication::translate(
"(Categories)",
450 s_categoryDesc[0x4B] = QCoreApplication::translate(
"(Categories)",
453 s_categoryDesc[0x50] = QCoreApplication::translate(
"(Categories)",
"Kids");
454 s_categoryDesc[0x51] = QCoreApplication::translate(
"(Categories)",
455 "Pre-School Children's Programs");
456 s_categoryDesc[0x52] = QCoreApplication::translate(
"(Categories)",
457 "Entertainment Programs for 6 to 14");
458 s_categoryDesc[0x53] = QCoreApplication::translate(
"(Categories)",
459 "Entertainment Programs for 10 to 16");
460 s_categoryDesc[0x54] = QCoreApplication::translate(
"(Categories)",
461 "Informational/Educational");
462 s_categoryDesc[0x55] = QCoreApplication::translate(
"(Categories)",
465 s_categoryDesc[0x60] = QCoreApplication::translate(
"(Categories)",
466 "Music/Ballet/Dance");
467 s_categoryDesc[0x61] = QCoreApplication::translate(
"(Categories)",
469 s_categoryDesc[0x62] = QCoreApplication::translate(
"(Categories)",
471 s_categoryDesc[0x63] = QCoreApplication::translate(
"(Categories)",
473 s_categoryDesc[0x64] = QCoreApplication::translate(
"(Categories)",
475 s_categoryDesc[0x65] = QCoreApplication::translate(
"(Categories)",
477 s_categoryDesc[0x66] = QCoreApplication::translate(
"(Categories)",
480 s_categoryDesc[0x70] = QCoreApplication::translate(
"(Categories)",
482 s_categoryDesc[0x71] = QCoreApplication::translate(
"(Categories)",
484 s_categoryDesc[0x72] = QCoreApplication::translate(
"(Categories)",
486 s_categoryDesc[0x73] = QCoreApplication::translate(
"(Categories)",
488 s_categoryDesc[0x74] = QCoreApplication::translate(
"(Categories)",
489 "Popular Culture/Traditional Arts");
490 s_categoryDesc[0x75] = QCoreApplication::translate(
"(Categories)",
492 s_categoryDesc[0x76] = QCoreApplication::translate(
"(Categories)",
494 s_categoryDesc[0x77] = QCoreApplication::translate(
"(Categories)",
495 "Experimental Film/Video");
496 s_categoryDesc[0x78] = QCoreApplication::translate(
"(Categories)",
497 "Broadcasting/Press");
498 s_categoryDesc[0x79] = QCoreApplication::translate(
"(Categories)",
500 s_categoryDesc[0x7A] = QCoreApplication::translate(
"(Categories)",
501 "Arts/Culture Magazines");
502 s_categoryDesc[0x7B] = QCoreApplication::translate(
"(Categories)",
"Fashion");
504 s_categoryDesc[0x80] = QCoreApplication::translate(
"(Categories)",
505 "Social/Political/Economics");
506 s_categoryDesc[0x81] = QCoreApplication::translate(
"(Categories)",
507 "Magazines/Reports/Documentary");
508 s_categoryDesc[0x82] = QCoreApplication::translate(
"(Categories)",
509 "Economics/Social Advisory");
510 s_categoryDesc[0x83] = QCoreApplication::translate(
"(Categories)",
511 "Remarkable People");
513 s_categoryDesc[0x90] = QCoreApplication::translate(
"(Categories)",
514 "Education/Science/Factual");
515 s_categoryDesc[0x91] = QCoreApplication::translate(
"(Categories)",
516 "Nature/Animals/Environment");
517 s_categoryDesc[0x92] = QCoreApplication::translate(
"(Categories)",
518 "Technology/Natural Sciences");
519 s_categoryDesc[0x93] = QCoreApplication::translate(
"(Categories)",
520 "Medicine/Physiology/Psychology");
521 s_categoryDesc[0x94] = QCoreApplication::translate(
"(Categories)",
522 "Foreign Countries/Expeditions");
523 s_categoryDesc[0x95] = QCoreApplication::translate(
"(Categories)",
524 "Social/Spiritual Sciences");
525 s_categoryDesc[0x96] = QCoreApplication::translate(
"(Categories)",
526 "Further Education");
527 s_categoryDesc[0x97] = QCoreApplication::translate(
"(Categories)",
530 s_categoryDesc[0xA0] = QCoreApplication::translate(
"(Categories)",
532 s_categoryDesc[0xA1] = QCoreApplication::translate(
"(Categories)",
534 s_categoryDesc[0xA2] = QCoreApplication::translate(
"(Categories)",
536 s_categoryDesc[0xA3] = QCoreApplication::translate(
"(Categories)",
538 s_categoryDesc[0xA4] = QCoreApplication::translate(
"(Categories)",
540 s_categoryDesc[0xA5] = QCoreApplication::translate(
"(Categories)",
"Cooking");
541 s_categoryDesc[0xA6] = QCoreApplication::translate(
"(Categories)",
542 "Advertizement/Shopping");
543 s_categoryDesc[0xA7] = QCoreApplication::translate(
"(Categories)",
546 s_categoryDesc[0xB0] = QCoreApplication::translate(
"(Categories)",
547 "Original Language");
548 s_categoryDesc[0xB1] = QCoreApplication::translate(
"(Categories)",
550 s_categoryDesc[0xB2] = QCoreApplication::translate(
"(Categories)",
551 "\"Unpublished\" Programs");
552 s_categoryDesc[0xB3] = QCoreApplication::translate(
"(Categories)",
555 s_categoryDesc[0xF0] = QCoreApplication::translate(
"(Categories)",
563 QString str =
"FrequencyListDescriptor: frequencies: ";
587 str.append(
" (Radio)");
589 str.append(
" (HDTV)");
591 str.append(
" (UHDTV)");
593 str.append(
" (Teletext)");
595 str.append(QString(
" (Unknown 0x%1)").arg(
ServiceType(),2,16,QChar(
'0')));
602 QString ret = QString(
"Subtitling Descriptor ");
603 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
609 ret.append(QString(
"type(0x%1) composition_page_id(%2) ancillary_page_id(%3) lang(%4)")
621 QString ret = QString(
"Teletext Descriptor ");
622 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
628 ret.append(QString(
"type(%1) mag(%2) page(%3) lang(%4)")
640 QString str = QString(
"CableDeliverySystemDescriptor ");
641 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
644 str.append(QString(
"Frequency: %1\n").arg(
FrequencyHz()));
645 str.append(QString(
" Mod=%1, SymbR=%2, FECInner=%3, FECOuter=%4")
656 QString str = QString(
"SatelliteDeliverySystemDescriptor ");
657 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
660 str.append(QString(
"Frequency: %1, Type: %2\n").arg(
FrequencykHz())
662 str.append(QString(
" Mod=%1, SymbR=%2, FECInner=%3, Orbit=%4, Pol=%5")
674 QString str = QString(
"TerrestrialDeliverySystemDescriptor ");
675 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
678 str.append(QString(
"Frequency: %1\n").arg(
FrequencyHz()));
679 str.append(QString(
" BW=%1MHz C=%2 HP=%3 LP=%4 GI=%5 TransMode=%6k")
693 QString str = QString(
"S2SatelliteDeliverySystemDescriptor ");
694 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
700 str.append(QString(
" TSGSMode(%1)").arg(
TSGSMode()));
704 str.append(
" Dumping\n");
712 QString str = QString(
"ImageIconDescriptor ");
713 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
720 str.append(
" Dumping\n");
731 const unsigned char *cp =
m_data + 8;
743 QString str = QString(
"T2DeliverySystemDescriptor ");
744 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
747 str += QString(
"plp_id(%1) ").arg(
PlpID());
748 str += QString(
"T2_system_id(%1)").arg(
T2SystemID());
756 str += QString(
"TFS=%1 ").arg(
TFSFlag());
762 str += QString(
"\n ");
763 str += QString(
"cell_id:%1 ").arg(
CellID(i));
764 str += QString(
"centre_frequency:");
778 str += QString(
"\n ");
784 str.append(
" Dumping\n");
792 QString str = QString(
"SHDeliverySystemDescriptor ");
793 str += QString(
"tag(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
799 str.append(
" Dumping\n");
807 QString str = QString(
"SupplementaryAudioDescriptor ");
808 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
811 str += QString(
"\n ");
812 str += QString(
"mix_type(%1) ").arg(
MixType());
814 str += QString(
"\n ");
821 str.append(
" Dumping\n");
829 QString str = QString(
"NetworkChangeNotiyDescriptor ");
830 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
833 str.append(
" Dumping\n");
841 QString str = QString(
"MessageDescriptor ");
842 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
845 str += QString(
"\n ");
846 str += QString(
"message_id(%1) ").arg(
MessageID());
848 str += QString(
"\n ");
849 str += QString(
"text_char(\"%1\")").arg(
Message());
851 str.append(
" Dumping\n");
859 QString str = QString(
"TargetRegionDescriptor ");
860 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
863 str += QString(
"\n ");
868 str.append(
" Dumping\n");
876 QString str = QString(
"TargetRegionNameDescriptor ");
877 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
880 str += QString(
"\n ");
886 str.append(
" Dumping\n");
894 QString str = QString(
"ServiceRelocatedDescriptor ");
895 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
898 str += QString(
"\n ");
901 str += QString(
"old_service_id(%1) ").arg(
OldServiceID());
903 str.append(
" Dumping\n");
911 QString str = QString(
"C2DeliverySystemDescriptor ");
912 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
918 str.append(
" Dumping\n");
926 QString str = QString(
"S2XSatelliteDeliverySystemDescriptor ");
927 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
933 str.append(
" Dumping\n");
940 QString ret =
"UKChannelListDescriptor sid->chan_num: ";
957 QString ret =
"DVBSimulcastChannelDescriptor sid->chan_num: ";
974 QString ret =
"Sky Logical Channel Number Descriptor ";
975 ret += QString(
"(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
978 ret += QString(
"\n RegionID (%1) (0x%2) Raw (0x%3)")
983 ret += QString(
"\n ServiceID (%1) (0x%2) ").arg(
ServiceID(i)).arg(
ServiceID(i),4,16,QChar(
'0'));
984 ret += QString(
"ServiceType (0x%1) ").arg(
ServiceType(i),2,16,QChar(
'0'));
986 ret += QString(
"ChannelID(0x%1) ").arg(
ChannelID(i),4,16,QChar(
'0'));
987 ret += QString(
"Flags(0x%1) ").arg(
Flags(i),4,16,QChar(
'0'));
995 QString ret =
"Freesat Logical Channel Number Descriptor ";
996 ret += QString(
"(0x%1)").arg(
DescriptorTag(),2,16,QChar(
'0'));
1001 ret += QString(
"\n ServiceID (%1) (0x%2) ").arg(
ServiceID(i)).arg(
ServiceID(i),4,16,QChar(
'0'));
1002 ret += QString(
"ChanID (0x%1)").arg(
ChanID(i), 4, 16, QChar(
'0'));
1013 QString ret =
"Freesat Region Descriptor ";
1014 ret += QString(
"(0x%1)").arg(
DescriptorTag(),2,16,QChar(
'0'));
1022 ret += QString(
"\n Region (%1) (%2) '%3'")
1023 .arg(region_id,2).arg(language, region_name);
1030 QString ret = QString(
"Freesat Callsign Descriptor ");
1031 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
1039 QString ret = QString(
"OpenTV ChannelList Descriptor region: %1 sid->chan_num(id): ").arg(
RegionID());
1050 QString ret = QString(
"ApplicationSignallingDescriptor ");
1051 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
1064 QString ret = QString(
"CAIdentifierDescriptor ");
1067 ret += QString(
"ca_system_id(0x%1) ")
1075 QString ret = QString(
"DataBroadcastDescriptor: "
1076 "data_broadcast_id(%1) "
1077 "component_tag(%1) ")
1081 ret += QString(
"selector(0x ");
1083 ret += QString(
"%1 ").arg(
Selector()[i], 0, 16);
1086 ret += QString(
"ISO_639_language_code(%1) ")
1089 ret += QString(
"text(%1) ") +
Text();
1096 QString ret = QString(
"LocalTimeOffsetDescriptor ");
1098 for (
uint i = 0; i < count; ++i)
1100 ret += QString(
"country_code(%1) country_region_id(0x%2) "
1101 "local_time_offset_with_polarity(%3) "
1102 "time_of_change(TODO)")
1113 QString ret = QString(
"NVODReferenceDescriptor ");
1116 ret += QString(
"transport_stream_id(0x%1) original_network_id(0x%2) "
1117 "service_id(0x%3) ")
1127 return QString(
"PartialTransportStreamDescriptor peak_rate(%1) "
1128 "min_overall_smooth_rate(%2) max_overall_smooth_buf(3)")
1134 QString ret = QString(
"AC-3 Descriptor ");
1137 ret += QString(
"type(0x%1) ").arg(
ComponentType(), 2, 16, QChar(
'0'));
1139 ret += QString(
"bsid(0x%1) ").arg(
BSID(), 2, 16, QChar(
'0'));
1141 ret += QString(
"mainid(0x%1) ").arg(
MainID(), 2, 16, QChar(
'0'));
1143 ret += QString(
"asvc(0x%1) ").arg(
ASVC(), 2, 16, QChar(
'0'));
1149 QMultiMap<QString, QString> ret;
1159 index += 1 +
m_data[7 + index];
1161 index += 1 +
m_data[7 + index];
1162 ret.insert (item_description, item);
QString toString(void) const override
bool HasComponentType(void) const
bool HasMainID(void) const
uint ComponentType(void) const
QString toString(void) const override
uint AITVersionNumber(uint i) const
uint ApplicationType(uint i) const
QString toString(void) const override
uint CASystemCount(void) const
QString toString(void) const override
int CASystemId(uint i) const
unsigned long long FrequencyHz(void) const
QString toString(void) const override
QString FECOuterString(void) const
QString ModulationString(void) const
QString FECInnerString(void) const
uint SymbolRateHz(void) const
static volatile bool s_categoryDescExists
uint Nibble(uint i) const
ProgramInfo::CategoryType GetMythCategory(uint i) const
static QMap< uint, QString > s_categoryDesc
static QMutex s_categoryLock
QString GetDescription(uint i) const
QString toString(void) const override
uint Nibble1(uint i) const
QString toString(void) const override
uint ChannelCount(void) const
uint ChannelNumber(uint i) const
uint ServiceID(uint i) const
QString toString(void) const override
uint ChannelNumber(uint i) const
uint ServiceID(uint i) const
uint ChannelCount(void) const
QString toString(void) const override
uint DataBroadcastId(void) const
QString LanguageString(void) const
const unsigned char * Selector(void) const
uint DataComponentTag(void) const
uint SelectorLength(void) const
uint LengthOfItems(void) const
QMultiMap< QString, QString > Items(void) const
QString Callsign(void) const
QString toString(void) const override
QString Language(void) const
uint ChanID(size_t i) const
uint LCNCount(size_t i) const
uint ServiceCount(void) const
QString toString(void) const override
uint ServiceID(size_t i) const
uint LogicalChannelNumber(size_t i, size_t j) const
uint RegionID(size_t i, size_t j) const
QString Language(uint i) const
QString RegionName(uint i) const
int RegionID(uint i) const
QString toString(void) const override
uint RegionCount(void) const
QString toString(void) const override
uint FrequencyCount() const
unsigned long long FrequencyHz(uint i) const
QString toString(void) const override
uint LastDescriptorNumber(void) const
uint DescriptorNumber(void) const
uint LinkageType(void) const
QString LinkageTypeString(void) const
QString MobileHandOverTypeString(void) const
@ kHandOverLocalVariation
@ kHandOverAssociatedService
uint MobileHandOverType(void) const
int LocalTimeOffsetWithPolarity(uint i) const
QString CountryCodeString(uint i) const
QString toString(void) const override
uint CountryRegionId(uint i) const
uint DescriptorLength(void) const
QString hexdump(void) const
uint DescriptorTag(void) const
uint DescriptorTagExtension(void) const
const unsigned char * m_data
QString LanguageString(void) const
QString toString(void) const override
QString Message(void) const
uint MessageID(void) const
QString toString(void) const override
uint TransportStreamId(uint i) const
uint ServiceId(uint i) const
uint OriginalNetworkId(uint i) const
QString toString(void) const override
QString toString(void) const override
uint ChannelCount(void) const
uint ChannelID(uint i) const
uint ServiceID(uint i) const
uint ChannelNumber(uint i) const
uint SmoothRate(void) const
uint SmoothBuf(void) const
uint PeakRate(void) const
QString toString(void) const override
uint ScramblingSequenceSelector() const
uint MultipleInputStreamFlag() const
uint NotTimesliceFlag() const
QString toString(void) const override
QString toString(void) const override
QString toString(void) const override
uint64_t FrequencykHz(void) const
QString toString(void) const override
uint SymbolRateHz(void) const
QString OrbitalPositionString(void) const
QString FECInnerString(void) const
QString ModulationString(void) const
QString PolarizationString() const
QString ModulationSystemString(void) const
uint ServiceType(void) const
bool IsDigitalAudio(void) const
bool IsTeletext(void) const
QString toString(void) const
uint OldOriginalNetworkID(void) const
uint OldTransportID(void) const
uint OldServiceID(void) const
QString toString(void) const override
uint ServiceType(size_t i) const
uint RegionRaw(void) const
uint Flags(size_t i) const
uint ChannelID(size_t i) const
QString toString(void) const override
uint RegionID(void) const
uint ServiceCount(void) const
uint LogicalChannelNumber(size_t i) const
uint ServiceID(size_t i) const
QString LanguageString(uint i) const
uint AncillaryPageID(uint i) const
uint SubtitleType(uint i) const
uint CompositionPageID(uint i) const
QString toString(void) const override
uint StreamCount(void) const
QString LanguageString(void) const
uint EditorialClassification(void) const
QString toString(void) const override
uint LanguageCodePresent(void) const
QString toString(void) const override
uint TransposerFrequency(uint i, uint j) const
QString TransmissionModeString(void) const
std::vector< const unsigned char * > m_subCellPtrs
uint SubcellInfoLoopLength(uint i) const
uint NumCells(void) const
QString GuardIntervalString(void) const
uint CellIDExtension(uint i, uint j) const
QString SisoMisoString(void) const
std::vector< const unsigned char * > m_cellPtrs
uint OtherFrequencyFlag(void) const
QString BandwidthString(void) const
uint FrequencyLoopLength(uint i) const
uint T2SystemID(void) const
uint CentreFrequency(uint i) const
uint CellID(uint i) const
QString CountryCodeString(void) const
QString toString(void) const override
QString toString(void) const override
QString LanguageString(void) const
QString CountryCodeString(void) const
uint TeletextPageNum(uint i) const
uint StreamCount(void) const
uint TeletextMagazineNum(uint i) const
QString toString(void) const override
QString LanguageString(uint i) const
uint TeletextType(uint i) const
QString CodeRateHPString(void) const
QString CodeRateLPString(void) const
uint64_t FrequencyHz(void) const
QString GuardIntervalString(void) const
QString toString(void) const override
QString ConstellationString(void) const
QString TransmissionModeString(void) const
QString BandwidthString(void) const
static QString iconv_helper(int which, char *buf, size_t length)
static QString decode_text(const unsigned char *buf, uint length)
static QString decode_iso6937(const unsigned char *buf, uint length)
QString dvb_decode_short_name(const unsigned char *src, uint raw_length)
QString dvb_decode_text(const unsigned char *src, uint raw_length, const enc_override &encoding_override)
const std::array< const std::string, 14 > linkage_types
std::vector< uint8_t > enc_override
QString freesat_huffman_to_string(const unsigned char *compressed, uint size)
const iso6937table iso6937table_base
const std::array< const iso6937table *, 256 > iso6937table_secondary
std::array< const uint16_t, 256 > iso6937table
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
MBASE_PUBLIC long long copy(QFile &dst, QFile &src, uint block_size=0)
Copies src file to dst file.
QString myth_category_type_to_string(ProgramInfo::CategoryType category_type)