From 80f2920d68da8ccd78486343da4eba02bf21e1c8 Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 25 Oct 2010 12:10:44 +0000 Subject: [PATCH] -fix dont parse current pmt pid git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@863 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/zapit/src/pmt.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/zapit/src/pmt.cpp b/src/zapit/src/pmt.cpp index 85cef1c47..1b164242c 100644 --- a/src/zapit/src/pmt.cpp +++ b/src/zapit/src/pmt.cpp @@ -397,7 +397,7 @@ printf("[pmt] name %s\n", description.c_str()); return ES_info_length; } -int curpmtpid; +int curpmtpid,curservice_id; int pmt_caids[4][11] = {{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0}}; int parse_pmt(CZapitChannel * const channel) @@ -455,7 +455,7 @@ int parse_pmt(CZapitChannel * const channel) delete dmx; extern cDvbCi *ci; - + curservice_id = channel->getServiceId(); curpmtpid = channel->getPmtPid(); pmtlen= ((buffer[1]&0xf)<<8) + buffer[2] +3; @@ -592,9 +592,9 @@ int parse_pmt(CZapitChannel * const channel) int scan_parse_pmt(int pmtpid, int service_id ) { - if(pmtpid < 1 ) + if(pmtpid < 1 ) || (curpmtpid == pmtpid && service_id != curservice_id) return -1; - if(curpmtpid == pmtpid ){ + if(curpmtpid == pmtpid && service_id == curservice_id){ for(int i=0;i<11;i++){ if(pmt_caids[0][i] > 0) return 1; @@ -638,7 +638,7 @@ int scan_parse_pmt(int pmtpid, int service_id ) dpmtlen=0; pos=10; - + if(service_id == ((buffer[3] << 8) | buffer[4]) ){ while(pos+2