[PATCH] Mal wieder ein sectionsd-Versuch...

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von DrStoned »

Bei meiner Nokia Avia 500 Satbox mit 64 MB Onboard RAM hängt sich Arte trotz dem neuen Patch immer noch auf. Die Datei /var/tuxbox/config/zapit/epgfilter.xml habe ich entfernt, mit dem Resultat, dass die Box bei Arte einfriert. Sogar die Bildschirmuhr vom Tuxcal-Plugin friert ein und läuft nicht mehr weiter, als ich auf Arte umgeschaltet habe.
Im Log kam gar nichts nach dem Umschalten. :(

Greetz von DrStoned :lol: :lol: :lol:
tine1084
Einsteiger
Einsteiger
Beiträge: 160
Registriert: Freitag 8. September 2006, 14:58

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von tine1084 »

Ja da muss ich leider @DrStoned recht geben, auf Arte hängt die nokia box(avia 600) sich immer noch weg. :(
Aber auf den bekannten deutschen problemsendern hängt sich die box aber jetzt nicht mehr weg.

Hier mal das log wenn ich auf Arte schalte:
[controld] VIDEO_EVENT_SIZE_CHANGED 720x576 (4:3 -> 4:3)
15:57:10.313 dmxCN: going to sleep...
15:57:10.314 eit_set_update_filter, servicekey = 0x4000001233b, current version 6
avia_gt_dmx: queue 4 overflow (count: 32)
avia_gt_dmx: queue 3 overflow (count: 13)
16:01:08.631 EIT Update Filter: Activate cnThread
16:01:08.667 dmxCN: waking up again - requested from .change()
Nokia epg workaround!
Nokia epg workaround!
avia_gt_dmx: queue 4 overflow (count: 29)
avia_gt_dmx: queue 3 overflow (count: 13)
16:05:09.811 dmxCN: going to sleep...
16:05:09.811 eit_set_update_filter, servicekey = 0x4000001233b, current version 9
16:05:10.490 EIT Update Filter: Activate cnThread
16:05:10.527 dmxCN: waking up again - requested from .change()
Nokia epg workaround!
Nokia epg workaround!
avia_gt_dmx: queue 4 overflow (count: 31)
avia_gt_dmx: queue 3 overflow (count: 13)
16:09:11.620 dmxCN: going to sleep...
16:09:11.621 eit_set_update_filter, servicekey = 0x4000001233b, current version 11
16:09:12.361 EIT Update Filter: Activate cnThread
16:09:12.397 dmxCN: waking up again - requested from .change()
Nokia epg workaround!
Nokia epg workaround!
avia_gt_dmx: queue 4 overflow (count: 30)
avia_gt_dmx: queue 3 overflow (count: 13)
16:13:13.430 dmxCN: going to sleep...
16:13:13.431 eit_set_update_filter, servicekey = 0x4000001233b, current version 14
16:13:14.230 EIT Update Filter: Activate cnThread
16:13:14.267 dmxCN: waking up again - requested from .change()
Nokia epg workaround!
Nokia epg workaround!
Wenn ich auf Arte umgeschalten habe und so ca. 2 minuten warte, dann bekomme ich weiße senkrechte streifen im bild.
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von DrStoned »

Wenn ich auf Arte umgeschalten habe und so ca. 2 minuten warte, dann bekomme ich weiße senkrechte streifen im bild.
Diesen Effekt konnte ich ebenfalls beobachten.

Greetz von DrStoned :lol: :lol: :lol:
tine1084
Einsteiger
Einsteiger
Beiträge: 160
Registriert: Freitag 8. September 2006, 14:58

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von tine1084 »

Habe jetzt aktuell ein image mit kernel 2.6 erstellt und ich muss sagen,
keine hänger auf den problemsendern mit meiner nokia(avia 600),
auch nicht auf Arte.
Auch das zappen geht meiner meinung nach flüssiger als mit kernel 2.4.

mfg tine1084
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von DrStoned »

@Houdini
mit dem erneuten Patch gehen jetzt auch die Sender auf diesem Transponder:

Code: Alles auswählen

  <transponder id="0400" onid="0001" frequency="11567500" inversion="2" symbol_rate="22000000" fec_inner="5" polarization="1">
   <channel service_id="2333" name="CANAL ALGERIE" service_type="01" />
   <channel service_id="2334" name="TV5MONDE" service_type="01" />
   <channel service_id="2336" name="Al Masriya" service_type="01" />
   <channel service_id="2337" name="RAI 1" service_type="01" />
   <channel service_id="2339" name="RTPI" service_type="01" />
   <channel service_id="233a" name="TV7" service_type="01" />
   <channel service_id="233b" name="ARTE" service_type="01" />
   <channel service_id="233c" name="DATASYSTEMS TR 24" service_type="c1" />
   <channel service_id="233d" name="Al Jazeera" service_type="01" />
   <channel service_id="233e" name="TVEi" service_type="01" />
   <channel service_id="233f" name="ARTE" service_type="01" />
   <channel service_id="2340" name="TRT International" service_type="01" />
   <channel service_id="2346" name="2M Maroc" service_type="01" />
  </transponder>
Bei diesen Sendern ist meine Box vorher auch abgestürzt. Vielen Dank für die Mühe. :)

Wer es testen will, Riker hat einen neuen Testsnapshot für das JtG-Image erstellt.

Greetz von DrStoned :lol: :lol: :lol:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von mb405 »

kann ich nicht bestätigen

<channel service_id="2337" name="RAI 1" service_type="01" />

gerade vollkommener absturz beim zap

aber im log steht
Nokia epg workaround!
nur gebracht hats nichts
voicebox
Interessierter
Interessierter
Beiträge: 38
Registriert: Donnerstag 6. Januar 2005, 09:04

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von voicebox »

HI!

ich hab mit dem JTG Image gestestet. Bei mir funktioniert das nun problemlos.

Gruß
Torsten73
Erleuchteter
Erleuchteter
Beiträge: 547
Registriert: Mittwoch 30. Juni 2004, 16:06

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von Torsten73 »

Hi,
kann es sein, dass ich deshalb auch Probleme habe, wenn ich EPG auf HDD speichern aktiv habe? Denn meine Sagem Sat und auch Nokia AVIA 600 Satz haben zur Zeit massiv Probleme bei RTL Sendern. Da schießt sich der Sectionsd ab und läßt sich nur nutzen, wenn die Box auf einem anderen Sender als aus dem RTL Bouqet startet.
Außerdem habe ich neuerdings beim Herunterfahren der Boxen einen Hänger, d.h. die Box schaltet sich nicht aus und nur das Shutdown Logo bleibt im Display übrig. Ohne EPG Speichern läuft es im Moment.
Beim Löschen des EPG Verzeichnisses ist mir aufgefallen, dass dort Dateien seit aktivieren der Funktion sich befanden. Die sind doch nach über 4 Wochen bestimmt nicht mehr von nutzen und sollten doch automatisch gelöscht werden, oder nicht?

Image ist das JTG vom 23.01.

Torsten
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von Houdini »

Hier der patch für die 2. Version:

Code: Alles auswählen

RCS file: /cvs/tuxbox/driver/dvb/drivers/media/dvb/dvb-core/dvb_demux.c,v
retrieving revision 1.24
diff -b -B -u -r1.24 dvb_demux.c
--- a/dvb_demux.c   19 Dec 2003 20:30:09 -0000   1.24
+++ b/dvb_demux.c   29 Jan 2009 22:00:56 -0000
@@ -296,6 +295,10 @@
               count=0;

         } else { // section continues to following TS packet
+            if (2 => count) {
+               printk("Nokia epg workaround!\n");
+               return -1;
+            }
            demux->memcopy(feed, sec->secbuf, buf+p, count);
            sec->secbufp+=count;
            count=0;
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von seife »

Mach mal über dem
demux->memcopy(feed, sec->secbuf, buf+p, count);
aber nach der Klammer "}" noch eine Zeile

printk("Nokia-workaround 2!\n");

rein. Mich würde mal interessieren, ob der code jemals dort rein läuft.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von GetAway »

Wenn zu nicht zu diesem Fehler kommt, ständig. Aber was will man mit 1mio. Debugausgaben. :wink:

Übrigens kommt es bei mir zu einem Kompilierfehler, ich habs dann mal geändert.

Code: Alles auswählen

-            if (2 => count) {
+            if (2 >= count) {
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von seife »

ok, dann weglassen :-)
Es gibt ja 2 bedingungen, die in diesen Codepfad führen:

* count <= 2
* section_length(buf+p)) <= count

Ich denke, man könnte weiter oben, also auf Zeile 279 mit

Code: Alles auswählen

        if (count <=2)
                return -1;
und dem Entfernen von "count > 2" in Zeile 280 eine Abfrage sparen, aber das ist vermutlich eine extrem-mikro-optimierung ;)

Allerdings wäre es vermutlich wirklich lohnend, mal die dvb-1.1.1 Treiber zu probieren, da ist bestimmt noch mehr gefixt worden. Der 2.6-Branch scheint so ungefähr auf diesem Stand zu sein, und dort trat das Problem anscheinend nicht auf.
tine1084
Einsteiger
Einsteiger
Beiträge: 160
Registriert: Freitag 8. September 2006, 14:58

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von tine1084 »

Also bei mir funktioniert es mit diesem code sehr gut:

Code: Alles auswählen

					count=0;

			} else { // section continues to following TS packet
		            if (2 >= count) {
		               printk("Nokia epg workaround!\n");
		               return -1;
		            }

				demux->memcopy(feed, sec->secbuf, buf+p, count);

Bisher damit keine hänger mehr auf den problemsendern! :D
tine1084
Einsteiger
Einsteiger
Beiträge: 160
Registriert: Freitag 8. September 2006, 14:58

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von tine1084 »

Habe jetzt mal mit diesem code getestet:

Code: Alles auswählen

		            if (1 >= count) {
		               printk("Nokia epg workaround!\n");
		               return -1;
		            }
edit: geht doch nicht damit!


Aber mit

Code: Alles auswählen

if (2 >= count)
keine probleme auf meiner nokia avia 600. :D

Mit dem 2.6 kernel musste ich feststellen das es zwar keine hänger auf den problemsendern gibt, dafür aber auf RTL, Sat 1 und Pro7 gleich nach dem einschalten die box einfriert. Kann aber auch noch bei anderen sendern so sein, hab nicht alle getestet.
voicebox
Interessierter
Interessierter
Beiträge: 38
Registriert: Donnerstag 6. Januar 2005, 09:04

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von voicebox »

tine1084 hat geschrieben:Also bei mir funktioniert es mit diesem code sehr gut:

Code: Alles auswählen

					count=0;

			} else { // section continues to following TS packet
		            if (2 >= count) {
		               printk("Nokia epg workaround!\n");
		               return -1;
		            }

				demux->memcopy(feed, sec->secbuf, buf+p, count);

Bisher damit keine hänger mehr auf den problemsendern! :D
HI!
Hab jetz mal selber ne dvbcore erstellt mit dem 2. Patch von Houdini und hab absolut keine Probleme mehr mit Boxhängern. Finde die Lösung auf jeden Fall besser als die EPG Blacklist Variante.

Gruß voicebox
tine1084
Einsteiger
Einsteiger
Beiträge: 160
Registriert: Freitag 8. September 2006, 14:58

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von tine1084 »

Was mir aber noch aufgefallen ist, dass auf den problemsendern wie z.b. Arte sehr viele ausgaben im log erscheinen. Bei anderen sendern ist das nicht so.
16:16:25.920 EIT Update Filter: Activate cnThread
16:16:25.957 dmxCN: waking up again - requested from .change()
16:17:01.340 dmxCN: going to sleep...
16:17:01.341 eit_set_update_filter, servicekey = 0x4000001233b, current version 9
16:17:40.870 EIT Update Filter: Activate cnThread
16:17:40.907 dmxCN: waking up again - requested from .change()
16:18:16.260 dmxCN: going to sleep...
16:18:16.261 eit_set_update_filter, servicekey = 0x4000001233b, current version 10
16:19:20.760 EIT Update Filter: Activate cnThread
16:19:20.797 dmxCN: waking up again - requested from .change()
16:19:56.281 dmxCN: going to sleep...
16:19:56.282 eit_set_update_filter, servicekey = 0x4000001233b, current version 11
16:21:00.651 EIT Update Filter: Activate cnThread
16:21:00.687 dmxCN: waking up again - requested from .change()
16:21:36.321 dmxCN: going to sleep...
16:21:36.322 eit_set_update_filter, servicekey = 0x4000001233b, current version 12
16:22:15.580 EIT Update Filter: Activate cnThread
16:22:15.617 dmxCN: waking up again - requested from .change()
16:22:51.381 dmxCN: going to sleep...
16:22:51.382 eit_set_update_filter, servicekey = 0x4000001233b, current version 13
16:23:55.480 EIT Update Filter: Activate cnThread
16:23:55.517 dmxCN: waking up again - requested from .change()
16:24:31.271 dmxCN: going to sleep...
16:24:31.272 eit_set_update_filter, servicekey = 0x4000001233b, current version 14
16:25:10.411 EIT Update Filter: Activate cnThread
16:25:10.447 dmxCN: waking up again - requested from .change()
16:25:46.340 dmxCN: going to sleep...
16:25:46.341 eit_set_update_filter, servicekey = 0x4000001233b, current version 15

Code: Alles auswählen

printk("Nokia epg workaround!\n");
habe ich jetzt entfernt.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von GetAway »

OT:
seife hat geschrieben: Allerdings wäre es vermutlich wirklich lohnend, mal die dvb-1.1.1 Treiber zu probieren, da ist bestimmt noch mehr gefixt worden.
@seife

Ich habe mir mal das dvb-1.1.1 Paket gezogen und es wurde fehlerfrei kompiliert. Ich musste nur
die dvb_i2c_bridge.h und .c übernehmen. Jetzt ne Frage bevor ich den mir den heute Abend mal
in die Nokia packe. Ich denke mal wenn es funktioniert dann funktionierts, wenn es nicht funktioniert,
kann dann die Hardware in Mitleidenschaft gezogen werden?
Habe nur Nokia, Sagem und Philips müsste dann ein anderer testen.

Bei erfolgreicher Anwendung werde ich mal das diff posten.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von seife »

GetAway hat geschrieben:wenn es nicht funktioniert,
kann dann die Hardware in Mitleidenschaft gezogen werden?
"Eigentlich nicht". Theoretisch ist es sicher möglich, die tunerchips z.B. durch übertaktung zu killen, aber ich denke nicht, dass das passiert.
Ausserdem geht es hier ja hauptsächlich um die core-Treiber und nicht so sehr um die Frontendtreiber IIUC.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von GetAway »

Soo einfach ist es doch nicht.

Beim laden des sectionsd, gibts nen Crash.
avia_gt_v4l2: $Id: avia_gt_v4l2.c,v 1.12 2003/09/30 04:54:03 obi Exp $
DVB: VES1820(0): pwm=0x47 (user specified)
DVB: registering frontend 0:0 (VES1820 based DVB-C frontend)...
avia_av_napi.c: $Id: avia_av_napi.c,v 1.33 2004/03/11 15:30:27 derget Exp $
avia_gt_napi: $Id: avia_gt_napi.c,v 1.203 2005/01/05 05:49:56 carjay Exp $

Please press Enter to activate this console. $Id: sectionsd.cpp,v 1.285 2009/01/20 15:24:44 seife Exp $
[sectionsd] Caching max 1500 events
[sectionsd] Caching 4 days
[sectionsd] Caching 12 hours Extended Text
[sectionsd] Events are old 120min after their end time
/var/tuxbox/config/zapit/epgfilter.xml: No such file or directory
/var/tuxbox/config/mybouquets.xml: No such file or directory
Oops: kernel access of bad area, sig: 11
NIP: C3BA0CD0 XER: 20000000 LR: C38E4340 SP: C14BFD90 REGS: c14bfce0 TRAP: 0300 Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 9421FFDC, DSISR: C0000000
TASK = c14be000[283] 'sectionsd' Last syscall: 54
last math 00000000 last altivec 00000000
GPR00: C38E4340 C14BFD90 C14BE000 C3BAA000 C3BCB01F FFFFFFFF 00000000 00000000
GPR08: 00000012 9421FFD0 00000000 FFFFFFEA 24002022 1005D2BC 00000000 300198B4
GPR16: 30019574 00000000 1000627C 00000004 00009032 014BFF40 C38E21E8 C1F04D60
GPR24: C14E68B0 C3BA2FA0 C14BFE50 C3BCB008 00000000 C3BA0CA0 C3BA21CC C3BAA000
Call backtrace:
00000000 C38E4340 C38E1CC4 C38E24A4 C38E53F0 C38E2698 C0044160
C000289C 0FE278F8 10029508 100063DC 0FE0CA1C 0FD2BBD4
[timerd] woke up from timer? false!
Torsten73
Erleuchteter
Erleuchteter
Beiträge: 547
Registriert: Mittwoch 30. Juni 2004, 16:06

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von Torsten73 »

Hi,
mit dem JTG Patch vom 30.01 habe ich zur Zeit auf den normalen Astra Sendern keine Probleme. Die Abstürze von RTL Sendern (Sectionsd) hatte ich nur mit aktiviertem EPG Speichern auf der Sagem mit HDD! Dann ließ die Box sich auch nicht mehr herunterfahren. Vielleicht hilft das ja Euch.

Leider hat die Sagem Box seit dem Update ein anderes Problem mit der Hdd Aufnahme. Dort erscheint immer "Fehler beim Schreiben der Daten" und die Aufnahmen haben 0 Bytes. Ein Hdd Check funktioniert komischer Weise auch nicht.
Ich bin mir nicht ganz sicher woran das liegt. Die Nokia 600 mit Hdd funktioniert einwandfrei. Ich meine sogar, dass die Box während der Aufnahme sogar flüssiger wieder reagiert, als es vor einiger Zeit noch war. Ein Unterschied zur Sagem fällt mir nicht mehr auf! ABer möglicherweise liegt die Ursache darin, dass die Hdd nicht mehr den unmount Befehl annimmt. Die Wiedergabe alter Aufnahmen ist kein Problem.

Falls jemand einen Tipp hat nur her damit. Sonst muß ich die Box wieder zurücksetzen.

Cu
Torsten
tine1084
Einsteiger
Einsteiger
Beiträge: 160
Registriert: Freitag 8. September 2006, 14:58

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von tine1084 »

Das habe ich gerade über die dvb-1.1.1 treiber gefunden. Da steht was alles gefixt wurde:
Changes for linuxtv-dvb-1.1.1:
- fixed various timing issues in frontend code to speed up tuning
- fixed pointer bug in ring buffer handling which potentially
affected common interface communication
- fixed av7110 debi functions for ARM64, added better error checking
- fixed software demux section filter bug which caused data loss
if there were two sections in one TS packet and the first section
was smaller than 18 bytes

- frontend fixes for ves1820 and stv0299
- added support for Fujitsu-Siemens Activy card
- various minor cleanup things
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von GetAway »

Laut seife kann es auch passieren das der Bug bei "count == 3" zuschlägt.

Hat schon jemand mit Problemboxen das probiert:

Code: Alles auswählen

if (count < 4) {
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von seife »

Bei "3" passiert es tatsächlich nicht, weil der Anfang oder das Ende dann nicht "gerade" ist, und deswegen mindestens 1 draufaddiert wird.

Wie auf der Mailingliste geschrieben: im avia_napi-Treiber, der die beschleunigte CRC32-Funktion des eNX/GTX benutzt, werden von dem übergebenen Wert 4 abgezogen und das was rauskommt als Schleifenzähler benutzt (oder so ähnlich).
3-4 ist aber nun 4,294,967,295 (weil das ein unsigned 32bit-Wert ist), was ganz viele Schleifendurchläufe machen würde. Allerdings wird, wenn entweder der Start oder das Ende des Puffers "ungerade" ist, eins dazuaddiert (wenn beide ungerade sind, sogar 2).
Weil bei einer Pufferlänge von "3" aber entweder der Start oder das Ende ungerade sein müssen, passiert nichts, weil 4,294,967,295 + 1 = 0.

3 Sollte also in Ordnung sein, 4 sowieso. Man kanns aber trotzdem im Auge behalten :-)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von rhabarber1848 »

seife hat geschrieben:Wie auf der Mailingliste geschrieben:
Für das Archiv: http://cvs.tuxbox-cvs.sourceforge.net/l ... 00006.html
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [PATCH] Mal wieder ein sectionsd-Versuch...

Beitrag von seife »

Back on Topic:
Ich habe mir mal wieder (zwangsweise) den sectionsd angeschaut , weil er mit en Drachentreibern nicht wollte.
Dabei sind mir ein paar Sachen aufgefallen, die sich auch durch verbesserte Performance auswirken könnten, so man sie ändert:
- DMX::getSection liest erst 3 bytes header, alloziert dann mit new() einen buffer passender Größe und liest dort die section rein. Da eine section AFAIK nicht länger als 4098 (0x0FFF + 3 bytes header) sein kann, ist das mit dem dynamischen allozieren IMHO overkill.
- DMX::getSection gibt einen pointer auf ebendiesen allozierten Speicher zurück, der Inhalt wird (muss?) dann aber eh nochmals kopiert und der buffer freigegeben (ausser es wird vergessen. Ganz sicher bin ich mir da nie)

Vorschlag:
Im jeweiligen (eit, cn, sdt,...)-Thread wird ein statischer Buffer von 4098 bytes definiert, der wird dann an getSection übergeben un anstelle eines pointers gibt das die Anzahl der bytes zurück, mit denen der buffer "befüllt" wurde.

Ich weiss nicht, wie performant die new/delete-Implementation in C++ ist und ob man einen Unterschied merkt, ich vermute aber, dass die POLLERR etwas zurückgehen werden und ausserdem die Speicherfragmentierung wesentlich weniger stark zuschlagen wird.

Will das mal jemand probieren? Ich bin dummerweise bis heute abend unterwegs und habe nur das N770 dabei, und ohne Tastatur programmiere ich echt mies :wink:

Andererseits sollte das schnell zu verifizieren sein.