11#include <QCoreApplication>
32 for (
uint i = 0; (i < length) && buf[i]; i++)
68 QString codec = QString(
"iso-8859-%1").arg(which);
69 iconv_t conv = iconv_open(
"utf-16", qPrintable(codec));
70 if (conv == (iconv_t) -1)
75 size_t outmaxlen = (length * 2) + 2;
77 outbytes.resize(outmaxlen);
78 char *outp = outbytes.data();
79 size_t outremain = outmaxlen;
84 size_t ret = iconv(conv, &buf, &length, &outp, &outremain);
85 if (ret ==
size_t(-1))
95 if (outbytes[0] ==
static_cast<char>(0xFE))
97 *outp++ = 0xFF; *outp++ = 0xFD;
101 *outp++ = 0xFD; *outp++ = 0xFF;
120 QString::fromUtf16(
reinterpret_cast<char16_t*
>(outbytes.data()),
121 (outmaxlen-outremain)/2);
142 size_t length = (raw_length - 1) / 2;
143 auto *to =
new QChar[length];
144 for (
size_t i=0; i<length; i++)
145 to[i] = QChar((src[1 + (i*2)] << 8) + src[1 + (i*2) + 1]);
146 QString to2(to, length);
151 if (((0x11 < src[0]) && (src[0] < 0x15)) ||
152 ((0x15 < src[0]) && (src[0] < 0x1f)))
155 LOG(VB_SIPARSER, LOG_ERR,
156 "dvb_decode_text: Multi-byte coded text is not yet supported.");
168 auto *dst =
new unsigned char[raw_length + encoding_override.size()];
171 if (!encoding_override.empty() && (src[0] >= 0x20)) {
172 std::copy(encoding_override.cbegin(), encoding_override.cend(), dst);
173 length = encoding_override.size();
177 for (
uint i = 0; i < raw_length; i++)
179 if ((src[i] < 0x80) || (src[i] > 0x9F))
181 dst[length++] = src[i];
184 else if (src[i] == 0x8A)
186 dst[length++] = 0x20;
192 QString sStr = (!length) ?
"" :
decode_text(dst, length);
206 if ((buf[0] >= 0x01) && (buf[0] <= 0x0B))
208 return iconv_helper(4 + buf[0], (
char*)(buf + 1), length - 1);
210 if ((buf[0] == 0x10) && (length >= 3))
218 uint code = buf[1] << 8 | buf[2];
220 return iconv_helper(code, (
char*)(buf + 3), length - 3);
221 return QString::fromLocal8Bit((
char*)(buf + 3), length - 3);
225 return QString::fromUtf8((
char*)(buf + 1), length - 1);
229 return QString::fromLocal8Bit((
char*)(buf + 1), length - 1);
237 LOG(VB_SIPARSER, LOG_WARNING,
238 QString(
"dvb_decode_short_name: name is %1 chars "
239 "long. Unlikely to be a short name.")
244 if (((0x10 < src[0]) && (src[0] < 0x15)) ||
245 ((0x15 < src[0]) && (src[0] < 0x20)))
248 LOG(VB_SIPARSER, LOG_ERR,
"dvb_decode_short_name: "
249 "Multi-byte coded text is not yet supported.");
253 auto *dst =
new unsigned char[raw_length];
257 for (
uint i = 0; i < raw_length; i++)
261 for (i = i + 1; i < raw_length && (src[i] != 0x87); i++)
263 if ((src[i] < 0x80) || (src[i] > 0x9F))
265 dst[length++] = src[i];
268 else if (src[i] == 0x8A)
270 dst[length++] = 0x20;
300 "Information Service",
302 "CA Replacement Service",
303 "TS Containing Complete Network/Bouquet SI",
304 "Service Replacement Service",
305 "Data Broadcast Service",
308 "System Software Update Service",
309 "TS Containing SSU, BAT or NIT",
310 "IP/MAC Notification Service",
311 "TS Containing INT, BAT or NIT",
321 return QString(
"Reserved(0x%1)").arg(
LinkageType(),2,16,QChar(
'0'));
322 return QString(
"User Defined(0x%1)").arg(
LinkageType(),2,16,QChar(
'0'));
328 return "Hand-Over to an Identical Service";
330 return "Hand-Over to a Local Variation";
332 return "Hand-over to an Associated Service";
359 QString
tmp(
"ContentDescriptor: ");
373 QString subCatStr = QCoreApplication::translate(
"(Categories)",
374 "%1 - %2",
"Category with subcategory display");
376 s_categoryDesc[0x10] = QCoreApplication::translate(
"(Categories)",
"Movie");
378 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
379 QCoreApplication::translate(
"(Categories)",
"Detective/Thriller"));
381 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
382 QCoreApplication::translate(
"(Categories)",
383 "Adventure/Western/War"));
385 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
386 QCoreApplication::translate(
"(Categories)",
387 "Science Fiction/Fantasy/Horror"));
389 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
390 QCoreApplication::translate(
"(Categories)",
"Comedy"));
392 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
393 QCoreApplication::translate(
"(Categories)",
394 "Soap/Melodrama/Folkloric"));
396 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
397 QCoreApplication::translate(
"(Categories)",
"Romance"));
399 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
400 QCoreApplication::translate(
"(Categories)",
401 "Serious/Classical/Religious/Historical Movie/Drama"));
403 .arg(QCoreApplication::translate(
"(Categories)",
"Movie"),
404 QCoreApplication::translate(
"(Categories)",
"Adult",
407 s_categoryDesc[0x20] = QCoreApplication::translate(
"(Categories)",
"News");
408 s_categoryDesc[0x21] = QCoreApplication::translate(
"(Categories)",
409 "News/Weather Report");
410 s_categoryDesc[0x22] = QCoreApplication::translate(
"(Categories)",
412 s_categoryDesc[0x23] = QCoreApplication::translate(
"(Categories)",
414 s_categoryDesc[0x24] = QCoreApplication::translate(
"(Categories)",
415 "Intelligent Programs");
417 s_categoryDesc[0x30] = QCoreApplication::translate(
"(Categories)",
419 s_categoryDesc[0x31] = QCoreApplication::translate(
"(Categories)",
421 s_categoryDesc[0x32] = QCoreApplication::translate(
"(Categories)",
423 s_categoryDesc[0x33] = QCoreApplication::translate(
"(Categories)",
426 s_categoryDesc[0x40] = QCoreApplication::translate(
"(Categories)",
428 s_categoryDesc[0x41] = QCoreApplication::translate(
"(Categories)",
429 "Special Events (World Cup, World Series, etc)");
430 s_categoryDesc[0x42] = QCoreApplication::translate(
"(Categories)",
432 s_categoryDesc[0x43] = QCoreApplication::translate(
"(Categories)",
433 "Football (Soccer)");
434 s_categoryDesc[0x44] = QCoreApplication::translate(
"(Categories)",
436 s_categoryDesc[0x45] = QCoreApplication::translate(
"(Categories)",
437 "Misc. Team Sports");
439 s_categoryDesc[0x46] = QCoreApplication::translate(
"(Categories)",
441 s_categoryDesc[0x47] = QCoreApplication::translate(
"(Categories)",
443 s_categoryDesc[0x48] = QCoreApplication::translate(
"(Categories)",
445 s_categoryDesc[0x49] = QCoreApplication::translate(
"(Categories)",
447 s_categoryDesc[0x4A] = QCoreApplication::translate(
"(Categories)",
449 s_categoryDesc[0x4B] = QCoreApplication::translate(
"(Categories)",
452 s_categoryDesc[0x50] = QCoreApplication::translate(
"(Categories)",
"Kids");
453 s_categoryDesc[0x51] = QCoreApplication::translate(
"(Categories)",
454 "Pre-School Children's Programs");
455 s_categoryDesc[0x52] = QCoreApplication::translate(
"(Categories)",
456 "Entertainment Programs for 6 to 14");
457 s_categoryDesc[0x53] = QCoreApplication::translate(
"(Categories)",
458 "Entertainment Programs for 10 to 16");
459 s_categoryDesc[0x54] = QCoreApplication::translate(
"(Categories)",
460 "Informational/Educational");
461 s_categoryDesc[0x55] = QCoreApplication::translate(
"(Categories)",
464 s_categoryDesc[0x60] = QCoreApplication::translate(
"(Categories)",
465 "Music/Ballet/Dance");
466 s_categoryDesc[0x61] = QCoreApplication::translate(
"(Categories)",
468 s_categoryDesc[0x62] = QCoreApplication::translate(
"(Categories)",
470 s_categoryDesc[0x63] = QCoreApplication::translate(
"(Categories)",
472 s_categoryDesc[0x64] = QCoreApplication::translate(
"(Categories)",
474 s_categoryDesc[0x65] = QCoreApplication::translate(
"(Categories)",
476 s_categoryDesc[0x66] = QCoreApplication::translate(
"(Categories)",
479 s_categoryDesc[0x70] = QCoreApplication::translate(
"(Categories)",
481 s_categoryDesc[0x71] = QCoreApplication::translate(
"(Categories)",
483 s_categoryDesc[0x72] = QCoreApplication::translate(
"(Categories)",
485 s_categoryDesc[0x73] = QCoreApplication::translate(
"(Categories)",
487 s_categoryDesc[0x74] = QCoreApplication::translate(
"(Categories)",
488 "Popular Culture/Traditional Arts");
489 s_categoryDesc[0x75] = QCoreApplication::translate(
"(Categories)",
491 s_categoryDesc[0x76] = QCoreApplication::translate(
"(Categories)",
493 s_categoryDesc[0x77] = QCoreApplication::translate(
"(Categories)",
494 "Experimental Film/Video");
495 s_categoryDesc[0x78] = QCoreApplication::translate(
"(Categories)",
496 "Broadcasting/Press");
497 s_categoryDesc[0x79] = QCoreApplication::translate(
"(Categories)",
499 s_categoryDesc[0x7A] = QCoreApplication::translate(
"(Categories)",
500 "Arts/Culture Magazines");
501 s_categoryDesc[0x7B] = QCoreApplication::translate(
"(Categories)",
"Fashion");
503 s_categoryDesc[0x80] = QCoreApplication::translate(
"(Categories)",
504 "Social/Political/Economics");
505 s_categoryDesc[0x81] = QCoreApplication::translate(
"(Categories)",
506 "Magazines/Reports/Documentary");
507 s_categoryDesc[0x82] = QCoreApplication::translate(
"(Categories)",
508 "Economics/Social Advisory");
509 s_categoryDesc[0x83] = QCoreApplication::translate(
"(Categories)",
510 "Remarkable People");
512 s_categoryDesc[0x90] = QCoreApplication::translate(
"(Categories)",
513 "Education/Science/Factual");
514 s_categoryDesc[0x91] = QCoreApplication::translate(
"(Categories)",
515 "Nature/Animals/Environment");
516 s_categoryDesc[0x92] = QCoreApplication::translate(
"(Categories)",
517 "Technology/Natural Sciences");
518 s_categoryDesc[0x93] = QCoreApplication::translate(
"(Categories)",
519 "Medicine/Physiology/Psychology");
520 s_categoryDesc[0x94] = QCoreApplication::translate(
"(Categories)",
521 "Foreign Countries/Expeditions");
522 s_categoryDesc[0x95] = QCoreApplication::translate(
"(Categories)",
523 "Social/Spiritual Sciences");
524 s_categoryDesc[0x96] = QCoreApplication::translate(
"(Categories)",
525 "Further Education");
526 s_categoryDesc[0x97] = QCoreApplication::translate(
"(Categories)",
529 s_categoryDesc[0xA0] = QCoreApplication::translate(
"(Categories)",
531 s_categoryDesc[0xA1] = QCoreApplication::translate(
"(Categories)",
533 s_categoryDesc[0xA2] = QCoreApplication::translate(
"(Categories)",
535 s_categoryDesc[0xA3] = QCoreApplication::translate(
"(Categories)",
537 s_categoryDesc[0xA4] = QCoreApplication::translate(
"(Categories)",
539 s_categoryDesc[0xA5] = QCoreApplication::translate(
"(Categories)",
"Cooking");
540 s_categoryDesc[0xA6] = QCoreApplication::translate(
"(Categories)",
541 "Advertizement/Shopping");
542 s_categoryDesc[0xA7] = QCoreApplication::translate(
"(Categories)",
545 s_categoryDesc[0xB0] = QCoreApplication::translate(
"(Categories)",
546 "Original Language");
547 s_categoryDesc[0xB1] = QCoreApplication::translate(
"(Categories)",
549 s_categoryDesc[0xB2] = QCoreApplication::translate(
"(Categories)",
550 "\"Unpublished\" Programs");
551 s_categoryDesc[0xB3] = QCoreApplication::translate(
"(Categories)",
554 s_categoryDesc[0xF0] = QCoreApplication::translate(
"(Categories)",
562 QString str =
"FrequencyListDescriptor: frequencies: ";
586 str.append(
" (Radio)");
588 str.append(
" (HDTV)");
590 str.append(
" (UHDTV)");
592 str.append(
" (Teletext)");
594 str.append(QString(
" (Unknown 0x%1)").arg(
ServiceType(),2,16,QChar(
'0')));
601 QString ret = QString(
"Subtitling Descriptor ");
602 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
608 ret.append(QString(
"type(0x%1) composition_page_id(%2) ancillary_page_id(%3) lang(%4)")
620 QString ret = QString(
"Teletext Descriptor ");
621 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
627 ret.append(QString(
"type(%1) mag(%2) page(%3) lang(%4)")
639 QString str = QString(
"CableDeliverySystemDescriptor ");
640 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
643 str.append(QString(
"Frequency: %1\n").arg(
FrequencyHz()));
644 str.append(QString(
" Mod=%1, SymbR=%2, FECInner=%3, FECOuter=%4")
655 QString str = QString(
"SatelliteDeliverySystemDescriptor ");
656 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
659 str.append(QString(
"Frequency: %1, Type: %2\n").arg(
FrequencykHz())
661 str.append(QString(
" Mod=%1, SymbR=%2, FECInner=%3, Orbit=%4, Pol=%5")
673 QString str = QString(
"TerrestrialDeliverySystemDescriptor ");
674 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
677 str.append(QString(
"Frequency: %1\n").arg(
FrequencyHz()));
678 str.append(QString(
" BW=%1MHz C=%2 HP=%3 LP=%4 GI=%5 TransMode=%6k")
692 QString str = QString(
"S2SatelliteDeliverySystemDescriptor ");
693 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
699 str.append(QString(
" TSGSMode(%1)").arg(
TSGSMode()));
703 str.append(
" Dumping\n");
711 QString str = QString(
"ImageIconDescriptor ");
712 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
719 str.append(
" Dumping\n");
730 const unsigned char *cp =
m_data + 8;
742 QString str = QString(
"T2DeliverySystemDescriptor ");
743 str += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
746 str += QString(
"plp_id(%1) ").arg(
PlpID());
747 str += QString(
"T2_system_id(%1)").arg(
T2SystemID());
755 str += QString(
"TFS=%1 ").arg(
TFSFlag());
761 str += QString(
"\n ");
762 str += QString(
"cell_id:%1 ").arg(
CellID(i));
763 str += QString(
"centre_frequency:");
777 str += QString(
"\n ");
783 str.append(
" Dumping\n");
791 QString str = QString(
"SHDeliverySystemDescriptor ");
792 str += QString(
"tag(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
798 str.append(
" Dumping\n");
806 QString str = QString(
"SupplementaryAudioDescriptor ");
807 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
810 str += QString(
"\n ");
811 str += QString(
"mix_type(%1) ").arg(
MixType());
813 str += QString(
"\n ");
820 str.append(
" Dumping\n");
828 QString str = QString(
"NetworkChangeNotiyDescriptor ");
829 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
832 str.append(
" Dumping\n");
840 QString str = QString(
"MessageDescriptor ");
841 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
844 str += QString(
"\n ");
845 str += QString(
"message_id(%1) ").arg(
MessageID());
847 str += QString(
"\n ");
848 str += QString(
"text_char(\"%1\")").arg(
Message());
850 str.append(
" Dumping\n");
858 QString str = QString(
"TargetRegionDescriptor ");
859 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
862 str += QString(
"\n ");
867 str.append(
" Dumping\n");
875 QString str = QString(
"TargetRegionNameDescriptor ");
876 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
879 str += QString(
"\n ");
885 str.append(
" Dumping\n");
893 QString str = QString(
"ServiceRelocatedDescriptor ");
894 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
897 str += QString(
"\n ");
900 str += QString(
"old_service_id(%1) ").arg(
OldServiceID());
902 str.append(
" Dumping\n");
910 QString str = QString(
"C2DeliverySystemDescriptor ");
911 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
917 str.append(
" Dumping\n");
925 QString str = QString(
"S2XSatelliteDeliverySystemDescriptor ");
926 str += QString(
"(0x%1 ").arg(
DescriptorTag(),2,16,QChar(
'0'));
932 str.append(
" Dumping\n");
939 QString ret =
"UKChannelListDescriptor sid->chan_num: ";
956 QString ret =
"DVBSimulcastChannelDescriptor sid->chan_num: ";
973 QString ret =
"Sky Logical Channel Number Descriptor ";
974 ret += QString(
"(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
977 ret += QString(
"\n RegionID (%1) (0x%2) Raw (0x%3)")
982 ret += QString(
"\n ServiceID (%1) (0x%2) ").arg(
ServiceID(i)).arg(
ServiceID(i),4,16,QChar(
'0'));
983 ret += QString(
"ServiceType (0x%1) ").arg(
ServiceType(i),2,16,QChar(
'0'));
985 ret += QString(
"ChannelID(0x%1) ").arg(
ChannelID(i),4,16,QChar(
'0'));
986 ret += QString(
"Flags(0x%1) ").arg(
Flags(i),4,16,QChar(
'0'));
994 QString ret =
"Freesat Logical Channel Number Descriptor ";
995 ret += QString(
"(0x%1)").arg(
DescriptorTag(),2,16,QChar(
'0'));
1000 ret += QString(
"\n ServiceID (%1) (0x%2) ").arg(
ServiceID(i)).arg(
ServiceID(i),4,16,QChar(
'0'));
1001 ret += QString(
"ChanID (0x%1)").arg(
ChanID(i), 4, 16, QChar(
'0'));
1012 QString ret =
"Freesat Region Descriptor ";
1013 ret += QString(
"(0x%1)").arg(
DescriptorTag(),2,16,QChar(
'0'));
1021 ret += QString(
"\n Region (%1) (%2) '%3'")
1022 .arg(region_id,2).arg(language, region_name);
1029 QString ret = QString(
"Freesat Callsign Descriptor ");
1030 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
1038 QString ret = QString(
"OpenTV ChannelList Descriptor region: %1 sid->chan_num(id): ").arg(
RegionID());
1049 QString ret = QString(
"ApplicationSignallingDescriptor ");
1050 ret += QString(
"tag(0x%1) ").arg(
DescriptorTag(),2,16,QChar(
'0'));
1063 QString ret = QString(
"CAIdentifierDescriptor ");
1066 ret += QString(
"ca_system_id(0x%1) ")
1074 QString ret = QString(
"DataBroadcastDescriptor: "
1075 "data_broadcast_id(%1) "
1076 "component_tag(%1) ")
1080 ret += QString(
"selector(0x ");
1082 ret += QString(
"%1 ").arg(
Selector()[i], 0, 16);
1085 ret += QString(
"ISO_639_language_code(%1) ")
1088 ret += QString(
"text(%1) ") +
Text();
1095 QString ret = QString(
"LocalTimeOffsetDescriptor ");
1097 for (
uint i = 0; i < count; ++i)
1099 ret += QString(
"country_code(%1) country_region_id(0x%2) "
1100 "local_time_offset_with_polarity(%3) "
1101 "time_of_change(TODO)")
1112 QString ret = QString(
"NVODReferenceDescriptor ");
1115 ret += QString(
"transport_stream_id(0x%1) original_network_id(0x%2) "
1116 "service_id(0x%3) ")
1126 return QString(
"PartialTransportStreamDescriptor peak_rate(%1) "
1127 "min_overall_smooth_rate(%2) max_overall_smooth_buf(3)")
1133 QString ret = QString(
"AC-3 Descriptor ");
1136 ret += QString(
"type(0x%1) ").arg(
ComponentType(), 2, 16, QChar(
'0'));
1138 ret += QString(
"bsid(0x%1) ").arg(
BSID(), 2, 16, QChar(
'0'));
1140 ret += QString(
"mainid(0x%1) ").arg(
MainID(), 2, 16, QChar(
'0'));
1142 ret += QString(
"asvc(0x%1) ").arg(
ASVC(), 2, 16, QChar(
'0'));
1148 QMultiMap<QString, QString> ret;
1158 index += 1 +
m_data[7 + index];
1160 index += 1 +
m_data[7 + index];
1161 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)