X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c606126c3efaec7e3fdf1283fc37dfb7140bee13..6aa0ed7fff929c4b2651667ab809d0ace1dac56d:/lib/dvb/radiotext.cpp diff --git a/lib/dvb/radiotext.cpp b/lib/dvb/radiotext.cpp index 0ac71751..6ab2fdd8 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,8 @@ void eDVBRadioTextParser::processPESPacket(__u8 *data, int len) pos += frame_size; - int offs = pos - 1; - if (data[offs] != 0xFD) - { - offs -= 2; - if (data[offs] != 0xFD) - return; - else - eDebug("match 2"); - } - else + int offs = protection_bit ? pos - 1 : pos - 3; + if (data[offs] == 0xFD) { int ancillary_len = 1 + data[offs - 1]; offs -= ancillary_len;