修改libdvbsi++彻底屏蔽TS流中的空EPG
浏览:2192 发布日期:2014-12-06

134亚太6号上的jw直播平台虽然没有提供有用的EPG,但其TS流中却携带了无效的空EPG信息,会覆盖DM正常加载的网络EPG信息,造成不便。 
 
为解决这个问题,卫视界高手,本论坛的版主linking_dai和nx111都提出了各自的解决办法,主要是修改相关python代码,例如: 
 
修改EventInfo.py 
复制代码
  1. @@ -23,9 +23,12 @@
  2.          service = self.navcore.getCurrentService()
  3.          info = service and service.info()
  4.          ret = info and info.getEvent(self.now_or_next)
  5. -       if not ret and info:
  6. -           refstr = info.getInfoString(iServiceInformation.sServiceref)
  7. -           ret = self.epgQuery(eServiceReference(refstr), -1, self.now_or_next and 1 or 0)
  8. +       if not ret or ret.getEventName() == "":
  9. +           if info:
  10. +               refstr = info.getInfoString(iServiceInformation.sServiceref)
  11. +               ret = self.epgQuery(eServiceReference(refstr), -1, self.now_or_next and 1 or 0)
  12. +           else:
  13. +               ret = None
  14.          return ret
  15.        event = property(getEvent)
 
同时还要修改InfoBarGenerics.py 
复制代码
  1. @@ -618,10 +618,10 @@
  2.          service = self.session.nav.getCurrentService()
  3.          info = service and service.info()
  4.          ptr = info and info.getEvent(0)
  5. -       if ptr:
  6. +       if ptr and ptr.getEventName() != "":
  7.              epglist.append(ptr)
  8.          ptr = info and info.getEvent(1)
  9. -       if ptr:
  10. +       if ptr and ptr.getEventName() != "":
  11.              epglist.append(ptr)
  12.          self.epglist = epglist
 
 
但是由于Dreambox版本众多,升级频繁,这两个文件也经常被修改,简单的覆盖有可能会造成机器启动绿屏或其他问题,因此直接修改libdvbsi++,在源头上屏蔽TS流中的空EPG应该是一个更好、更彻底和简便的选择: 
 
复制代码
  1. @@ -69,7 +69,7 @@
  2.      uint16_t loopLength=0;
  3.   
  4.      while (bytesLeft > 11 && bytesLeft >= (loopLength = 12 + DVB_LENGTH(&buffer[pos+10]))) {
  5. -       events.push_back(new Event(&buffer[pos]));
  6. +       if (loopLength > 12) events.push_back(new Event(&buffer[pos]));
  7.          bytesLeft -= loopLength;
  8.          pos += loopLength;
  9.      }
 
 
附上修改好的libdvbsi++安装包,适合DM800,DM8000等多种采用Enigma2的mipsel架构的机器 
 

扫码下方或搜索关注公众号“卫星参数网”,独家内幕新闻!

卫星参数网公众号