From: Andreas Monzner Date: Thu, 17 Aug 2006 00:28:27 +0000 (+0000) Subject: take care of mpeg frame protection bit X-Git-Tag: 2.6.0~3066 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/51898bc759bfaf183be3cec16e965414356dd621 take care of mpeg frame protection bit --- 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;