[oe-commits] org.oe.dreambox enigma: add some backports

tmbinc commit oe at amethyst.openembedded.net
Tue May 27 11:13:33 UTC 2008


enigma: add some backports

Author: tmbinc at openembedded.org
Branch: org.openembedded.dreambox
Revision: 73e6e5eff15b41eeafefad0404d57e73773f37fa
ViewMTN: http://monotone.openembedded.org/revision/info/73e6e5eff15b41eeafefad0404d57e73773f37fa
Files:
1
packages/enigma/enigma/duplicate_tsid_onid_cable_terrestrial_fix_backport.diff
packages/enigma/enigma/rdstextfix_backport.diff
packages/enigma/enigma/epgfix_backport.diff
packages/enigma/enigma_cvs.bb
Diffs:

#
# mt diff -r3a6cccbe9b5e27f1f8d74985d8e5159d58485700 -r73e6e5eff15b41eeafefad0404d57e73773f37fa
#
#
#
# add_file "packages/enigma/enigma/duplicate_tsid_onid_cable_terrestrial_fix_backport.diff"
#  content [4fecd1d1fd2ee3c00078e4131902b304a358e54e]
# 
# add_file "packages/enigma/enigma/rdstextfix_backport.diff"
#  content [96bb76a4009e7cd7af39a52673b572cc92dc3ea2]
# 
# patch "packages/enigma/enigma/epgfix_backport.diff"
#  from [232f429784d60110a5dc6888605c68ede79be346]
#    to [e6c63f0e85d5a1879a0ef635ffd49e563f92f06d]
# 
# patch "packages/enigma/enigma_cvs.bb"
#  from [31da72d18a7c77c27cd92b906c5e3f1ab9ab5146]
#    to [d7cd4685efb798def13721708172a6e824171b93]
#
============================================================
--- packages/enigma/enigma/duplicate_tsid_onid_cable_terrestrial_fix_backport.diff	4fecd1d1fd2ee3c00078e4131902b304a358e54e
+++ packages/enigma/enigma/duplicate_tsid_onid_cable_terrestrial_fix_backport.diff	4fecd1d1fd2ee3c00078e4131902b304a358e54e
@@ -0,0 +1,62 @@
+--- enigma-org/lib/dvb/dvbscan.cpp	11 Oct 2005 20:34:36 -0000	1.34
++++ enigma/lib/dvb/dvbscan.cpp	29 Apr 2008 14:43:47 -0000
+@@ -244,11 +244,15 @@
+ 							break;
+ 						}
+ 					}
+-					
++
+ 					eDVBNamespace dvb_namespace =
+ 						tp.satellite.isValid()
+ 						?eTransponder::buildNamespace(onid,tsid,tp.satellite.orbital_position,tp.satellite.frequency, tp.satellite.polarisation)
+-						:-1;
++						:tp.cable.isValid()
++						?eTransponder::buildNamespace(onid,tsid, 0xFFFF, tp.cable.frequency, 0)
++						:tp.terrestrial.isValid()
++						?eTransponder::buildNamespace(onid,tsid, 0xEEEE, tp.terrestrial.centre_frequency/1000, 0)
++						:-1; // should not happen
+ 
+ 					tp.dvb_namespace=dvb_namespace;
+ 
+@@ -390,14 +394,17 @@
+ 		// build "namespace" to work around buggy satellites
+ 	if (transponder->satellite.valid)
+ 		dvb_namespace=eTransponder::buildNamespace(onid, tsid, transponder->satellite.orbital_position, transponder->satellite.frequency, transponder->satellite.polarisation);
++	else if (transponder->cable.valid)
++		dvb_namespace=eTransponder::buildNamespace(onid, tsid, 0xFFFF, transponder->cable.frequency, 0);
++	else if (transponder->terrestrial.valid)
++		dvb_namespace=eTransponder::buildNamespace(onid, tsid, 0xEEEE, transponder->terrestrial.centre_frequency/1000, 0);
+ 	else
+-		dvb_namespace=0;
++		dvb_namespace=0; // should not happen!
+ 
+ 	transponder->dvb_namespace=dvb_namespace;
+ 
+ 	eTransponder *tmp = 0;
+-	if ( transponder->satellite.valid &&
+-		dvb_namespace.get() & 0xFFFF )  // feeds.. scpc.. or muxxers with default values
++	if ( dvb_namespace.get() & 0xFFFF )  // feeds.. scpc.. or muxxers with default values
+ 	{
+ 		eDebug("[SCAN] SCPC detected... compare complete transponder");
+ 		// we must search transponder via freq pol usw..
+--- enigma-org/src/scan.cpp	17 Dec 2007 15:09:13 -0000	1.93
++++ enigma/src/scan.cpp	29 Apr 2008 14:44:15 -0000
+@@ -2004,8 +2004,16 @@
+ 			transponder.satellite.orbital_position,
+ 			transponder.satellite.frequency,
+ 			transponder.satellite.polarisation);
+-	else
+-		dvb_namespace=0;
++	else if (transponder.cable.valid)
++		dvb_namespace=eTransponder::buildNamespace(onid, tsid,
++			0xFFFF,
++			transponder.cable.frequency,
++			0);
++	else if (transponder.terrestrial.valid)
++		dvb_namespace=eTransponder::buildNamespace(onid, tsid,
++			0xEEEE,
++			transponder.terrestrial.centre_frequency/1000, // centre_freq is in hz
++			0);
+ 
+ 	transponder.dvb_namespace=dvb_namespace;
+ 
============================================================
--- packages/enigma/enigma/rdstextfix_backport.diff	96bb76a4009e7cd7af39a52673b572cc92dc3ea2
+++ packages/enigma/enigma/rdstextfix_backport.diff	96bb76a4009e7cd7af39a52673b572cc92dc3ea2
@@ -0,0 +1,68 @@
+diff -Naur b/src/rds_text.cpp a/src/rds_text.cpp
+--- b/src/rds_text.cpp	2007-03-25 10:11:18.000000000 +0200
++++ a/src/rds_text.cpp	2007-11-26 13:14:00.000000000 +0100
+@@ -36,7 +36,9 @@
+ 		sn = new eSocketNotifier(eApp, fd, eSocketNotifier::Read);
+ 		CONNECT(sn->activated, RDSTextDecoder::process_data);
+ 	}
+-	
++
++	memset(rtp_item, 0, sizeof(rtp_item));
++
+ 	int x = eSkin::getActive()->queryValue("rds.pos.x", 0);
+ 	int y = eSkin::getActive()->queryValue("rds.pos.y", 0);
+ 	int width = eSkin::getActive()->queryValue("rds.pos.width", 0);
+@@ -586,13 +588,19 @@
+ 										
+ 										unsigned char rtplus_osd_tmp[64];
+ 										
+-										memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
+-										rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
++										if (rtp_start[0] < 66 && (rtp_len[0]+rtp_start[0]) < 66)
++										{
++											memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
++											rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
++										}
+ 										
+ 										if (rtp_typ[0] != rtp_typ[1])
+ 										{
+-											memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
+-											rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
++											if (rtp_start[1] < 66 && (rtp_len[1]+rtp_start[1]) < 66)
++											{
++												memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
++												rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
++											}
+ 										}
+ 
+ 										// main RTPlus item_types used by the radio stations:
+diff -Naur b/src/rds_text.cpp.patch a/src/rds_text.cpp.patch
+--- b/src/rds_text.cpp.patch	1970-01-01 01:00:00.000000000 +0100
++++ a/src/rds_text.cpp.patch	2007-11-08 23:45:47.000000000 +0100
+@@ -0,0 +1,26 @@
++--- rds_text.cpp.org	2007-03-25 10:11:18.000000000 +0200
+++++ rds_text.cpp	2007-11-08 23:40:37.000000000 +0100
++@@ -586,13 +586,19 @@
++ 										
++ 										unsigned char rtplus_osd_tmp[64];
++ 										
++-										memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
++-										rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
+++										if (rtp_start[0] < 66 && (rtp_len[0]+rtp_start[0]) < 66)
+++										{
+++											memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
+++											rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
+++										}
++ 										
++ 										if (rtp_typ[0] != rtp_typ[1])
++ 										{
++-											memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
++-											rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
+++											if (rtp_start[1] < 66 && (rtp_len[1]+rtp_start[1]) < 66)
+++											{
+++												memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
+++												rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
+++											}
++ 										}
++ 
++ 										// main RTPlus item_types used by the radio stations:
============================================================
--- packages/enigma/enigma/epgfix_backport.diff	232f429784d60110a5dc6888605c68ede79be346
+++ packages/enigma/enigma/epgfix_backport.diff	e6c63f0e85d5a1879a0ef635ffd49e563f92f06d
@@ -1,5 +1,6 @@
---- enigma_org/include/lib/dvb/epgcache.h	9 Mar 2007 01:04:34 -0000	1.60
-+++ enigma/lib/dvb/epgcache.h	22 Oct 2007 15:14:52 -0000
+diff -Naur enigma/include/lib/dvb/epgcache.h enigma_fix/include/lib/dvb/epgcache.h
+--- enigma/include/lib/dvb/epgcache.h	2008-02-18 17:35:38.000000000 +0100
++++ enigma_fix/include/lib/dvb/epgcache.h	2008-02-18 17:06:58.000000000 +0100
 @@ -315,7 +315,7 @@
  
  	int state;
@@ -9,8 +10,9 @@
  	int sectionRead(__u8 *data, int source);
  	static eEPGCache *instance;
  
---- enigma_org/lib/dvb/epgcache.cpp	24 Feb 2007 16:03:12 -0000	1.100
-+++ enigma/lib/dvb/epgcache.cpp	22 Oct 2007 15:14:52 -0000
+diff -Naur enigma/lib/dvb/epgcache.cpp enigma_fix/lib/dvb/epgcache.cpp
+--- enigma/lib/dvb/epgcache.cpp	2008-02-18 17:35:38.000000000 +0100
++++ enigma_fix/lib/dvb/epgcache.cpp	2008-02-18 17:34:01.000000000 +0100
 @@ -325,7 +325,7 @@
  					int sid = data[ptr++] << 8;
  					sid |= data[ptr++];
@@ -99,7 +101,20 @@
  }
  
  int eEPGCache::sectionRead(__u8 *data, int source)
-@@ -658,7 +691,11 @@
+@@ -560,7 +593,11 @@
+ 		if ( data[ptr-1] < 0x40 )
+ 			--ptr;
+ 
+-		uniqueEPGKey service( HILO(eit->service_id), HILO(eit->original_network_id), HILO(eit->transport_stream_id) );
++		// Cablecom HACK.. for incorrect tsid/onid in eit data
++		bool use_transponder_chid = source == SCHEDULE || (source == NOWNEXT && data[0] == 0x4E);
++		uniqueEPGKey service( HILO(eit->service_id), 
++		    use_transponder_chid ? current_service.onid : HILO(eit->original_network_id), 
++		    use_transponder_chid ? current_service.tsid : HILO(eit->transport_stream_id) );
+ 
+ 		eit_event_struct* eit_event = (eit_event_struct*) (data+ptr);
+ 		int eit_event_size;
+@@ -658,7 +695,11 @@
  							eventData *tmp = ev_it->second;
  							ev_it->second = tm_it_tmp->second =
  								new eventData(eit_event, eit_event_size, source);
@@ -112,7 +127,7 @@
  							delete tmp;
  							goto next;
  						}
-@@ -730,8 +767,6 @@
+@@ -730,8 +771,6 @@
  					tm_it=prevTimeIt=servicemap.second.insert( prevTimeIt, std::pair<const time_t, eventData*>( TM, evt ) );
  				}
  
@@ -121,7 +136,7 @@
  #if EPG_DEBUG
  				if ( consistencyCheck )
  				{
-@@ -751,6 +786,11 @@
+@@ -751,6 +790,11 @@
  							ev_it->first, event_id );
  				}
  #endif
============================================================
--- packages/enigma/enigma_cvs.bb	31da72d18a7c77c27cd92b906c5e3f1ab9ab5146
+++ packages/enigma/enigma_cvs.bb	d7cd4685efb798def13721708172a6e824171b93
@@ -6,7 +6,7 @@ PN = "enigma"
 SRCDATE = "20070615"
 PV = "cvs-${SRCDATE}"
 PN = "enigma"
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/enigma;method=ext \
            file://enigma.sh \
@@ -19,7 +19,9 @@ SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/
            file://disable_boot.diff;patch=1;pnum=1 \
 	   file://epgfix_backport.diff;patch=1;pnum=1 \
 	   file://timeshiftfix_backport.diff;patch=1;pnum=1 \
-	   file://subtitlefix_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"
 
 # 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