sectionsd goes tabled

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

sectionsd goes tabled

Beitrag von Nirvana »

Ich hab mal wieder was gebastelt. Mich nervt, dass der sectionsd immer sinnlos Events löscht und neu wieder einfügt. Kostet schließlich Rechenzeit und zerhackt den Speicher.
Deshalb merkt sich diese Version welche sections er schon gelesen hat. Testet mal bitte das Verhalten. Kann natürlich sein, dass Fehler drin stecken und bestimmte sections zu Unrecht nicht durchgelassen werden. Kann aber auch an den Sendern liegen, die die Standards relativ frei interpretieren. Dafür spräche wenn es bestimmte Sender beträfe.
Von da aus sollte es nur ein kleiner Schritt Richtung einer echten table Verwaltung sein.

Diff:
http://download.yousendit.com/FD3F7741486A5847
Bin:
http://download.yousendit.com/488C9724293B1665
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Erster Test:

- Es werden nicht alle Events eingelesen
- Bei manchen Sendern nur 2 - 3 Events
- Speicher geht zu


Gruß
____Paule
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Welche Sender denn?

RTL2 und Sat1 zählen nicht:
http://www.vdr-portal.de/board/thread.p ... adid=62897
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Nirvana hat geschrieben:Welche Sender denn?

RTL2 und Sat1 zählen nicht:
http://www.vdr-portal.de/board/thread.p ... adid=62897
ZDF, Pro7 und SAT1 meine ich...

War auch nicht so wie jetzt das garnichts kommt, sondern es wurden
nur einige Event teilweise mit Lücken geladen.
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

Scheint auf den ersten Blick zu laufen.

Was mir aber spontan aufgefallen ist, ist das Event die nach "now + EPG Cache (Tage)" liegen nicht mehr entfernt werden.
Vorher verschwanden die nach einiger Zeit. Keine Ahnung ob das beabsichtigt ist oder ob das als Bug reingekommen ist.
Das löschen der abgelaufenen Events funktioniert hingegen wie vorher.

Zur Erklärung, ich lasse beim Start, für vier Sender, das EPG aus XML Dateien laden. Diese XML Dateien beinhalten das EPG des Senders für 14 Tage. Da ist also immer ne Menge an Infos die entfernt werden.

Das ganze ist auch nicht so tragisch. Aber es ist immerhin ne Menge an Speicher (so bis 2MB an XML Dateigröße) der so nur für vier Sender verbraucht wird.

cu
usul
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

PauleFoul hat geschrieben:War auch nicht so wie jetzt das garnichts kommt, sondern es wurden
nur einige Event teilweise mit Lücken geladen.
das konnte ich bei einem kurzem test nicht feststellen. hast du ein beispielsender, bei dem dir events fehlen?

das projekt sectionsd goes table finde ich sehr gut - mal ein fettes danke an nirvana für seine arbeit in den letzten monaten.

könnte jemand das wiki zum sectionsd erweitern? es fehlen infos zu mybouquets.xml, bouquets filter (soweit ich weiß noch nicht eingecheckt) etc. die ganze arbeit von nirvana und houdini am sectionsd geht imho irgendwie in vielen foren unter.

innu
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Innuendo hat geschrieben: das konnte ich bei einem kurzem test nicht feststellen. hast du ein beispielsender, bei dem dir events fehlen?
Habe gerade noch einmal frisch getestet... Also so wie es sich jetzt
darstellt funktionieren alle Sender. Es dauert teilweise nur etwas länger
bis die Events erscheinen. Niw und Next wird aber sehr schnell angezeigt.
Der Rest hat bei ARD über eine Minute gedauert...
Innuendo hat geschrieben: das projekt sectionsd goes table finde ich sehr gut - mal ein fettes danke an nirvana für seine arbeit in den letzten monaten.
Finde die Idee auch sehr gut und möchte mich an dieser Stelle anschließen
und ebenfalls meinen Dank für die tolle Arbeit aussprechen.
Innuendo hat geschrieben: könnte jemand das wiki zum sectionsd erweitern? es fehlen infos zu mybouquets.xml, bouquets filter (soweit ich weiß noch nicht eingecheckt) etc. die ganze arbeit von nirvana und houdini am sectionsd geht imho irgendwie in vielen foren unter.
Sollte doch eigentlich alles drin sein, oder?? Ich meine ich hätte alle
Änderungen nachgezogen...


Gruß
____Paule

PS: Zum Thema "Speicher" wäre es auch nicht auch möglich, die
Beschreibung aus dem EPG rauszufilteren und diese Optional für
Now und Next einzulesen. Wird doch bestimmt massig Speicher
sparen...
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Also ich konnte den Fehler auch nicht nachvollziehen.
Aber ich habe eine neue Version:
Diff:
http://ulc.tuxbox-cvs.sourceforge.net/i ... tory=Diffs&
Bin:
http://ulc.tuxbox-cvs.sourceforge.net/i ... y=Binaries&

+ liest jede section nur ein Mal => Ressourcenschonend
+ arbeitet die Filter schneller ab. Events stehen schneller zur Verfügung (gerade die Liste...)
- Die Bevorzugung des aktuellen Kanals klappt so natürlich nicht.

Wer hat die Geschichte mit dem update_eit / sectionsd -nu gemacht? Wo ist der Thread dazu? Das funktioniert meines Erachtens nicht richtig. Sobald ein Filter mal wegen Timeout beendet wurde, schläft der sectionsd nicht mehr ein.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Nirvana hat geschrieben: Wer hat die Geschichte mit dem update_eit / sectionsd -nu gemacht? Wo ist der Thread dazu? Das funktioniert meines Erachtens nicht richtig. .
Vielleicht weiss Houdini was drüber...
Nirvana hat geschrieben:Sobald ein Filter mal wegen Timeout beendet wurde, schläft der sectionsd nicht mehr ein.
Das hört sich aber nicht gut an... :-?


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

Beitrag von Houdini »

Wer hat die Geschichte mit dem update_eit / sectionsd -nu gemacht? Wo ist der Thread dazu? Das funktioniert meines Erachtens nicht richtig. Sobald ein Filter mal wegen Timeout beendet wurde, schläft der sectionsd nicht mehr ein.
Ich :-)
kannst du das mal bitte genauer erklären
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Vorweg: Ich habe das nicht genau nachvollzogen, weil der Programmierer das immer besser erklären kann.

Bei der Version ohne das eit_update war das Verhalten so:
Lese table 0x4e+0x4f
Lese table 0x50-0x5f
Lese table 0x60-0x6f
Schlafe...
An der Stelle wird NIT-Scan und dann SDT-Scan geweckt

Jetzt ist das Verhalten so:
Lese table 0x4e+0x4f
Lese table 0x50-0x5f
Lese table 0x60-0x6f
(wenn hier timeout war, weil der Sender keine 6x sendet, wird der EIT-Thread durch das eit_update sofort wieder geweckt.)
Parallel arbeiten dann NIT und SDT
Das war halt früher nicht, ich weiß aber nicht ob das beabsichtigt ist.
Getestet hatte ich meine neue Version mit sectionsd -d1. Da habe ich den fehlenden Schlaf bemerkt.
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

fyi: Läuft bei mir unauffällig und scheint weniger Speicher zu benötigen...
AudioSlyer
Erleuchteter
Erleuchteter
Beiträge: 450
Registriert: Sonntag 28. Juli 2002, 01:18

Beitrag von AudioSlyer »

Hab auch noch nichts negatives festgestellt
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Diff:
http://ulc.tuxbox-cvs.sourceforge.net/i ... tory=Diffs&
Bin:
http://ulc.tuxbox-cvs.sourceforge.net/i ... y=Binaries&

Small Bugfix. Ich hatte überlegt, das Problem, dass Sat1 über table 60 die Events von Premiere table 50 überschreibt und umgekehrt und dabei die ausführliche Beschreibung tötet zu fixen, aber ich habe beschlossen, dass das doch besser auf Eventebene geht. Mit anderen Worten: falls keiner Einwände hat bin ich fertig damit.
Feynman
Developer
Beiträge: 16
Registriert: Samstag 3. Februar 2007, 15:32

Beitrag von Feynman »

Hi Nirvana,

Dein Binary scheint defekt zu sein. Jedenfalls kann ich es nicht entpacken (WinRAR 3.62) :gruebel:. Könntest Du das bitte prüfen!?

Feynman
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Das ist nicht gepackt. Einfach auf die Box kopieren, den alten sectionsd killen und dann das binary starten. Ggf. die start_neutrino anpassen.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

habs gerade eingebaut - mal schauen, wie es die nächsten tage über läuft.

hat jetzt nix mit nirvanas änderung zu tun:
bekommt noch jemand das log mit diesen einträgen voll?
[qoute]
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] read: Value too large for defined data type
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[/quote]

ich bekomme die nur weg, wenn ich
static DMX dmxEIT(0x12,384);
vergrößer (0x12, 1024)

innu
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Sieht bei mir auch so aus:

PES, queue 0 normal.
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] read: Value too large for defined data type
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR


cu
Jens
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Die POLLERR sind schon "normal". Die sollte jeder haben. Es handelt sich dabei um Pufferüberläufe, die sich wie von Innuendo beschrieben beheben lassen. Die Frage ist, wo der sinnvolle Kompromiss liegt. Reserviere ich mir 1MB Ram als Puffer, das dann dauernd weg ist und verliere keine sections oder akzeptiere ich, dass mal eine kaputt geht und ich warten muss bis sie noch einmal gesendet wird.
Ich bin da eher auf der letzten Seite zumal ja nur wenige Sender den Puffer ausnutzen, aber man kann drüber streiten. Wen es stört, der kann ja den printf auskommentieren. ;)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

dieses pollen kommt nur auf ard bei mir.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

Nirvana hat geschrieben:Wen es stört, der kann ja den printf auskommentieren. ;)
:D
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

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

Beitrag von mb405 »

also ich habs jetzt 2 tage drauf, und keine fehler gefunden.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Nirvana

Beinhaltet dieses Diff auch die MyBouquets.xml Aenderungen

@ Diff Versteher ... :cry: :cry: :cry:

Code: Alles auswählen


patch -p2 < 10_04_2007_tablesectionsd3.diff
missing header for unified diff at line 8 of patch
can't find file to patch at input line 8
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: dmx.cpp
|===================================================================
|RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/daemons/sectionsd/dmx.cpp,v
|retrieving revision 1.27
|diff -u -r1.27 dmx.cpp
|--- a/dmx.cpp  21 Apr 2006 20:41:02 -0000      1.27
|+++ b/dmx.cpp  10 Apr 2007 14:32:42 -0000
--------------------------
File to patch: 
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich denke schon das nirvana auf cvs difft :)
ich habs händisch reinkopiert