aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-08-11 22:05:47 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-08-11 22:05:47 +0200
commit8b92e8d62453277bf498e4314e60b864d8e0a6d0 (patch)
tree559fdaedb50c195a0807990d0b0cee9aff59b069
parent47c9feb18e9848db3600eb4c276c123f44d90d78 (diff)
downloadopenembedded-8b92e8d62453277bf498e4314e60b864d8e0a6d0.tar.gz
enigma_cvs.bb: add some backports
-rw-r--r--packages/enigma/enigma/capmt_namespace_fix.diff27
-rw-r--r--packages/enigma/enigma/dish_network_tv_service_types_hack.diff23
-rw-r--r--packages/enigma/enigma/longer_sdt_timeout.diff13
-rw-r--r--packages/enigma/enigma_cvs.bb7
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} \