[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