[oe-commits] ghost : enigma_cvs.bb: add some backports

git version control git at git.openembedded.org
Tue Aug 11 21:54:37 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dreambox
Commit: 8b92e8d62453277bf498e4314e60b864d8e0a6d0
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=8b92e8d62453277bf498e4314e60b864d8e0a6d0

Author: ghost <andreas.monzner at multimedia-labs.de>
Date:   Tue Aug 11 22:05:47 2009 +0200

enigma_cvs.bb: add some backports

---

 packages/enigma/enigma/capmt_namespace_fix.diff    |   27 ++++++++++++++++++++
 .../enigma/dish_network_tv_service_types_hack.diff |   23 +++++++++++++++++
 packages/enigma/enigma/longer_sdt_timeout.diff     |   13 +++++++++
 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 0000000..d944225
--- /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 0000000..a4e9cd5
--- /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 0000000..65b3a87
--- /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 e931628..f349ab8 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} \





More information about the Openembedded-commits mailing list