X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c606126c3efaec7e3fdf1283fc37dfb7140bee13..0adf3ed39b6fe254154e3b4c38feea616e5aece1:/lib/dvb/radiotext.cpp diff --git a/lib/dvb/radiotext.cpp b/lib/dvb/radiotext.cpp index 0ac71751..c165907c 100644 --- a/lib/dvb/radiotext.cpp +++ b/lib/dvb/radiotext.cpp @@ -82,6 +82,7 @@ void eDVBRadioTextParser::processPESPacket(__u8 *data, int len) int channel = mode == 3 ? 1 : 2; int id = (data[pos + 1] >> 3) & 1; int emphasis_bit = data[pos + 3] & 3; + int protection_bit = data[pos + 1] & 1; int rate = -1; int sample_freq = -1; int layer = -1; @@ -112,16 +113,17 @@ void eDVBRadioTextParser::processPESPacket(__u8 *data, int len) pos += frame_size; +#if 0 +// eDebug("protection_bit ? %d", protection_bit); +// int offs = protection_bit ? pos - 1 : pos - 3; +// if (data[offs] != 0xFD) +// offs += 2; +// eDebug("%02x %02x %02x %02x %02x", data[offs-2], data[offs-1], data[offs], data[offs+1], data[offs+2]); +#else int offs = pos - 1; - if (data[offs] != 0xFD) - { - offs -= 2; - if (data[offs] != 0xFD) - return; - else - eDebug("match 2"); - } - else +#endif + + if (data[offs] == 0xFD) { int ancillary_len = 1 + data[offs - 1]; offs -= ancillary_len;