setStreamID(0xC0, 0xC0);
memset(rass_picture_mask, 0, sizeof(rass_picture_mask));
+ memset(rtp_item, 0, sizeof(rtp_item));
if (demux->createPESReader(eApp, m_pes_reader))
eDebug("failed to create PES reader!");
void eDVBRdsDecoder::processPESPacket(__u8 *data, int len)
{
int pos=9+data[8];// skip pes header
- int cnt=0;
while (pos < 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 protection_bit = data[pos + 1] & 1;
int rate = -1;
int sample_freq = -1;
int layer = -1;
rtp_len[1] = 0x1f & rtp_buf[4];
unsigned char rtplus_osd_tmp[64];
-
- memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
- rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
+
+ if (rtp_start[0] < 66 && (rtp_len[0]+rtp_start[0]) < 66)
+ {
+ memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
+ rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
+ }
if (rtp_typ[0] != rtp_typ[1])
{
- memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
- rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
+ if (rtp_start[1] < 66 && (rtp_len[1]+rtp_start[1]) < 66)
+ {
+ memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
+ rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
+ }
}
// main RTPlus item_types used by the radio stations: