diff options
author | ghost <andreas.monzner@multimedia-labs.de> | 2009-08-11 22:05:47 +0200 |
---|---|---|
committer | ghost <andreas.monzner@multimedia-labs.de> | 2009-08-11 22:05:47 +0200 |
commit | 8b92e8d62453277bf498e4314e60b864d8e0a6d0 (patch) | |
tree | 559fdaedb50c195a0807990d0b0cee9aff59b069 | |
parent | 47c9feb18e9848db3600eb4c276c123f44d90d78 (diff) | |
download | openembedded-8b92e8d62453277bf498e4314e60b864d8e0a6d0.tar.gz |
enigma_cvs.bb: add some backports
-rw-r--r-- | packages/enigma/enigma/capmt_namespace_fix.diff | 27 | ||||
-rw-r--r-- | packages/enigma/enigma/dish_network_tv_service_types_hack.diff | 23 | ||||
-rw-r--r-- | packages/enigma/enigma/longer_sdt_timeout.diff | 13 | ||||
-rw-r--r-- | packages/enigma/enigma_cvs.bb | 7 |
4 files changed, 68 insertions, 2 deletions
diff --git a/packages/enigma/enigma/capmt_namespace_fix.diff b/packages/enigma/enigma/capmt_namespace_fix.diff new file mode 100644 index 0000000000..d9442258d4 --- /dev/null +++ b/packages/enigma/enigma/capmt_namespace_fix.diff @@ -0,0 +1,27 @@ +diff -Naur org/lib/dvb/cahandler.cpp enigma/lib/dvb/cahandler.cpp +--- org/lib/dvb/cahandler.cpp 2007-07-03 11:10:11.000000000 +0200 ++++ enigma/lib/dvb/cahandler.cpp 2009-07-21 22:52:50.000000000 +0200 +@@ -192,9 +192,22 @@ + + void CAService::buildCAPMT( PMT *pmt ) + { ++ eTransponder *tp = eTransponderList::getInstance()->searchTS(me.getDVBNamespace(), me.getTransportStreamID(), me.getOriginalNetworkID()); + if ( !capmt ) + capmt = new unsigned char[1024]; +- ++ unsigned int dvbnamespace = (unsigned int)me.getDVBNamespace().get(); ++ if (tp && tp->satellite.isValid()) ++ { ++ int orb_pos_part = dvbnamespace >> 16; ++/* convert to enigma2 compatible dvbnamespace ++ e2 uses 3600 - x degrees for west positions ++ e1 use a signed 16bit integer.. so convert here */ ++ if (orb_pos_part > 0xF8F8) ++ { ++ orb_pos_part = 3600 - (0x10000 - orb_pos_part); ++ dvbnamespace = (orb_pos_part << 16) | (dvbnamespace & 0xFFFF); ++ } ++ } + memcpy(capmt,"\x9f\x80\x32\x82\x00\x00", 6); + + capmt[6]=lastPMTVersion==-1 ? LIST_ONLY : LIST_UPDATE; diff --git a/packages/enigma/enigma/dish_network_tv_service_types_hack.diff b/packages/enigma/enigma/dish_network_tv_service_types_hack.diff new file mode 100644 index 0000000000..a4e9cd54c1 --- /dev/null +++ b/packages/enigma/enigma/dish_network_tv_service_types_hack.diff @@ -0,0 +1,23 @@ +diff -Naur enigma_org/lib/dvb/servicedvb.cpp enigma/lib/dvb/servicedvb.cpp +--- enigma_org/lib/dvb/servicedvb.cpp 2009-07-26 10:08:59.000000000 +0200 ++++ enigma/lib/dvb/servicedvb.cpp 2009-07-26 10:17:04.000000000 +0200 +@@ -1040,6 +1040,19 @@ + if ( onlyNew && !(s->dvb && s->dvb->dxflags & eServiceDVB::dxNewFound ) ) + return; + int t = ((eServiceReferenceDVB&)service).getServiceType(); ++// hack for dish network TV service types!!! ++ if ( type & (1<<1) ) // search for tv services ? ++ { ++ int onid = ((eServiceReferenceDVB&)service).getOriginalNetworkID().get(); ++ if (onid >= 0x1001 && onid <= 0x100b) // is dish network id? ++ { ++ static int dish_tv_types[] = { 128, 133, 137, 140, 144, 145, 150, 154, 160, 163, 164, 165, 166, 167, 168, 173, 174 }; ++ static size_t dish_tv_num_types = sizeof(dish_tv_types) / sizeof(int); ++ if (std::binary_search(dish_tv_types, dish_tv_types + dish_tv_num_types, t)) ++ t = 1; // patch to tv service ++ } ++ } ++/////////////////////////////////////////// + int nspace = ((eServiceReferenceDVB&)service).getDVBNamespace().get()&0xFFFF0000; + if (t < 0) + t=0; diff --git a/packages/enigma/enigma/longer_sdt_timeout.diff b/packages/enigma/enigma/longer_sdt_timeout.diff new file mode 100644 index 0000000000..65b3a874bb --- /dev/null +++ b/packages/enigma/enigma/longer_sdt_timeout.diff @@ -0,0 +1,13 @@ +diff -Naur org/lib/dvb/cahandler.cpp enigma/lib/dvb/cahandler.cpp +diff -Naur org/lib/dvb/esection.cpp enigma/lib/dvb/esection.cpp +--- org/lib/dvb/esection.cpp 2007-03-09 13:41:23.000000000 +0100 ++++ enigma/lib/dvb/esection.cpp 2009-07-21 22:57:12.000000000 +0200 +@@ -204,7 +204,7 @@ + pid == 0x14 /* TOT/TDT */ ? 90000 : + pid == 0x10 /* NIT */ ? 12000 : + pid == 0x00 /* PAT */ ? 4000 : +- pid == 0x11 /* SDT */ ? 5000 : ++ pid == 0x11 /* SDT */ ? 60000 : + pid == 0x12 /* EIT */ ? 15000 : + tableid == 0x02 /* PMT */ ? 4000 : 10000, true); + return setFilter(pid, tableid, tableidext, version, flags, tableidmask, dmxdev); diff --git a/packages/enigma/enigma_cvs.bb b/packages/enigma/enigma_cvs.bb index e931628688..f349ab8931 100644 --- a/packages/enigma/enigma_cvs.bb +++ b/packages/enigma/enigma_cvs.bb @@ -6,7 +6,7 @@ LICENSE = "GPL" SRCDATE = "20070615" PV = "cvs-${SRCDATE}" PN = "enigma" -PR = "r6" +PR = "r7" SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/enigma;method=ext \ file://enigma.sh \ @@ -21,7 +21,10 @@ SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/enigma;met file://timeshiftfix_backport.diff;patch=1;pnum=1 \ file://subtitlefix_backport.diff;patch=1;pnum=1 \ file://rdstextfix_backport.diff;patch=1;pnum=1 \ - file://duplicate_tsid_onid_cable_terrestrial_fix_backport.diff;patch=1;pnum=1" + file://duplicate_tsid_onid_cable_terrestrial_fix_backport.diff;patch=1;pnum=1 \ + file://capmt_namespace_fix.diff;patch=1;pnum=1 \ + file://longer_sdt_timeout.diff;patch=1;pnum=1 \ + file://dish_network_tv_service_types_hack.diff;patch=1;pnum=1" # dm600pvr and dm500plus don't have a FP, so they can't really switch of. Show a shutdown pic instead. SRC_URI_append_dm600pvr = " http://sources.dreamboxupdate.com/download/opendreambox/enigma/showshutdownpic-${MACHINE} \ |