diff --git a/mythtv/libs/libmythtv/eithelper.cpp b/mythtv/libs/libmythtv/eithelper.cpp
index b3a9974..9afe5df 100644
a
|
b
|
static void init_fixup(QMap<uint64_t,uint> &fix) |
972 | 972 | fix[ 1094LL << 32 | 1 << 16 | 17028 ] = // NT1 |
973 | 973 | fix[ 1100LL << 32 | 1 << 16 | 8710 ] = // NRJ 12 |
974 | 974 | EITFixUp::kEFixForceISO8859_15; |
975 | | |
976 | | // DVB-T TDT, Portugal (RTP 1, RTP 2, SIC, TVI) |
977 | | fix[ 1101LL << 32 | 8904U << 16 ] = EITFixUp::kEFixForceISO8859_15; |
978 | 975 | } |
979 | 976 | |
980 | 977 | static int calc_eit_utc_offset(void) |
diff --git a/mythtv/libs/libmythtv/mpeg/dvbdescriptors.cpp b/mythtv/libs/libmythtv/mpeg/dvbdescriptors.cpp
index bbe2e7f..cf004a1 100644
a
|
b
|
QString dvb_decode_text(const unsigned char *src, uint raw_length, |
78 | 78 | if (src[0] == 0x1f) |
79 | 79 | return freesat_huffman_to_string(src, raw_length); |
80 | 80 | |
81 | | if ((0x10 < src[0]) && (src[0] < 0x20)) |
| 81 | if (((0x10 < src[0]) && (src[0] < 0x15)) || ((0x15 < src[0]) && (src[0] < 0x20))) |
82 | 82 | { |
83 | 83 | // TODO: Handle multi-byte encodings |
84 | 84 | VERBOSE(VB_SIPARSER, "dvb_decode_text: " |
… |
… |
static QString decode_text(const unsigned char *buf, uint length) |
138 | 138 | else |
139 | 139 | return QString::fromLocal8Bit((char*)(buf + 3), length - 3); |
140 | 140 | } |
| 141 | else if (buf[0] == 0x15) // Already Unicode |
| 142 | { |
| 143 | return QString::fromUtf8((char*)(buf + 1), length -1); |
| 144 | } |
141 | 145 | else |
142 | 146 | { |
143 | 147 | // Unknown/invalid encoding - assume local8Bit |
… |
… |
QString dvb_decode_short_name(const unsigned char *src, uint raw_length) |
156 | 160 | return ""; |
157 | 161 | } |
158 | 162 | |
159 | | if ((0x10 < src[0]) && (src[0] < 0x20)) |
| 163 | if (((0x10 < src[0]) && (src[0] < 0x15)) || ((0x15 < src[0]) && (src[0] < 0x20))) |
160 | 164 | { |
161 | 165 | // TODO: Handle multi-byte encodings |
162 | 166 | VERBOSE(VB_SIPARSER, "dvb_decode_short_name: " |