Nirvana's sectionsd Testecke

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

Beitrag von Nirvana »

Einlesen ist commandreadSIfromxml im sectionsd.cpp. Der Aufruf kommt aus InitZapper von neutrino.cpp.

Aber wenn das Abspeichern geht, klappt auch das Einlesen. Warst du vielleicht zu ungeduldig?
Auf MTV (sender ohne EPG) schalten.
Dann Runterfahren.
EPG.xml löschen.
Dann Booten. Auf RTL schalten. Warten bis Events gelsen.
Dann auf MTV.
Dann runterfahren und neu starten.
Du solltest nach spätestens einigen Minuten auch die Events von RTL wieder sehen, obwohl du auf MTV geblieben bist.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ok ish teste mal auf einen non epg sender. Das Vierte hat ja auch keinen epg :). also beim abspeichern seh ich ja die netzwerk leds leuchten. nur beim start sehe ich da nichts :( werden beim start alle epg daten eingelesen ??

PS Danke großer Meister. es geht nun wunderbar. ich bin eben ein ungedulduger kerl :oops:
Fehlt nur noch die fehlerbereinigung, das shutdownbild zerstückelt wird. es legt sich irgendwie das neutrino menü drüber :(
dann noch das ganze sectionsd/epg zeugs in eine sectionsd.conf paken. das wäre der oberhammer
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Geil, wa?

Nur:
Papst hat geschrieben:So, habs jetzt hinbekommen nachdem ich ein paar Sachen gecleant hab.
1. Der Speicherverbrauch nach einem Start mit vorhandenem File steigt schnell auf fast 50%. Bei nicht vorhandenem File ist der Speicherverbrauch wie ohne den Patch.
2. Beim Runterfahren durch langes drücken der Standby Taste schaltet die Box während des Fileschreibens in Standby und führt auch das Standby.on Script aus. Ist so sicherlich nicht gedacht.
3. Beim Runterfahren durch DBoxTaste-StandbyTaste scheinen das Shutdownbild und das Hauptmenü merkwürdig vermischt dargestellt zu werden. Allerdings geht die Box nicht in Standby, sondern fährt ganz normal runter.
kann ich alles bestätigen. Hab aber voraussichtlich nicht die Zeit mich demnächst drum zu kümmern. Schade.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Auch das Einlesen der daten funktioniert wunderbar... Könnte allerings
etwas schneller sein...

Kann man die Übertragung der epg.xml auch schon früher beim booten
starten (sobald Netzwerk läuft)??

So langsam brauchen wie aber wirklich ein EPG-Einstellungs-Fenster. :D

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

Beitrag von Nirvana »

PauleFoul hat geschrieben:Auch das Einlesen der daten funktioniert wunderbar... Könnte allerings
etwas schneller sein...
Ich glaube das bringt nix. Die CPU ist eh dicht. Ich habe es ausprobiert auf höherer Priorität einlesen zu lassen, aber dann ist die Box unbedienbar lahm.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Nirvana hat geschrieben:
PauleFoul hat geschrieben:Auch das Einlesen der daten funktioniert wunderbar... Könnte allerings
etwas schneller sein...
Ich glaube das bringt nix. Die CPU ist eh dicht. Ich habe es ausprobiert auf höherer Priorität einlesen zu lassen, aber dann ist die Box unbedienbar lahm.
Und was passiert wenn ich in dieser Zeit auf Sender mit EPG zappe??
Werden die epg.xml Daten dann verworfen / gelöscht / aktualisiert??


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

Beitrag von Nirvana »

Immer wer als Letzter kommt gewinnt. D.h. wenn dasselbe Event vom Sat kommt (früher oder später) ist das vom Sat drin. Das macht sectionsd sowieso permanent: Event mit der aktuellenNummer raus. Event mit der aktuellen Nummer rein. Das ist ja gerade der etwas dumme aber schnelle Algorithmus, der dazu führt, dass schon mal eine ausführliche Beschreibung gelöscht wird.
Eigentlich müsste man tatsächlich aktualisiseren. Extended Event dazu oder Zeiten aktualisiert. Aber da sind dann möglicherweise viele Vergleiche zu machen...
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich hab ein sectionsd.conf menü fertig. es ist bestimmt nicht perfekt. es wird eine sectionsd.conf gespeichert, die vom sectionsd eingelesen wird bei jeden start und bei epg-reset.
-zeitaktualisierung über DVB/NTP
-zeitserver
-Intervall bei NTP einstelbar, bei DVB bleibt es 30minuten
-EPG cache in Tagen einstellbar (tage)
-EPG datenerhalt nach ende des events einstellbar (stunden)
-maxevents to cache einstellbar (6000)

mir fehlt noch das sectionsd scan (aus der scan.conf raus)
und das neue epg_speichern (aus neutrino.conf raus)
-ein/aus als option
-speicherort in mountverzeichnis

wenn ich das noch hinbekomme, das neutrino damit nichts mehr zu tun hat. mal sehn ob mir das gelingt. timerd, neutrino,controld,nhttpd haben configs. also wird es zeit, das der sectionsd auch eine bekommt. und nicht alles verstreut irgendwo rumliegt :)
ich benötige nur von Nirvana noch paar genauere angaben. eventuell kann man ja im chat sowas mal abklären, wenn ich reinkomm :(

PS.
soweit ich das überblicken kann, macht neutrino nur eine abfrage, ob ein eintrag mountpfad in der neutrino.conf da ist ?

Code: Alles auswählen

if (strcmp(g_settings.epg_file, "") != 0)
		g_Sectionsd->readSIfromXML(g_settings.epg_file);
...
...
if (strcmp(g_settings.epg_file, "") != 0) {
				waitforshutdown = true;
				g_Sectionsd->writeSI2XML(g_settings.epg_file);
oder hab ich da was übersehen ?
wie kann ich das aus der sectionsd.conf, die ich ja in der sectionsd.cpp auslese hier in neutrino eintragen ? ich steh da bischen aufn schlauch. :gruebel:

auch der einfachheit der neutrino source, solte da nicht so viel neues reinkommen. darüber war man sich ja einig.
Torsten73
Erleuchteter
Erleuchteter
Beiträge: 547
Registriert: Mittwoch 30. Juni 2004, 16:06

Beitrag von Torsten73 »

Hi,
ich habe es mit dem JTG Testsnap auch nach einigem Suchen hinbekommen.
Wichtig ist anscheinend nur das man den "EPG-File" in der neutrino.conf auch wirklich editiert und anlegt. Läßt man den Leer oder einen falschen Pfad bzw keinen Dateinamen gibt es tatsächlich kein EPG mehr.

Nur muß ich leider bemäkeln, dass es viel zu langsam ist. Bis das EPG erscheint, habe ich schon längst die Sender duchgezappt :( Und das periodische Speichern fehlt halt noch.

Generell denke ich, dass es u.U. nicht schneller gehen kann, da
- nicht sequentiell gespeichert wird sondern immer alles
- die Datei zu groß ist
- es keine Datenbank ist und unkomprimiert ist

Gedankenanstoß:
Was wäre, wenn beim Starten der Box beim ersten Aufruf de Sectionsd es eine Meldung gäbe, "EPG wird eingelesen", während dieser Zeit geht dann wirklich nichts anderes, weil höchste Prozessprio. Denn jetzt passiert übers Netzwerk kaum etwas, die Daten werden im schneckentempo ausgelesen.
Wie lange würde dann das Rebuild vom EPG dauern?

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

Beitrag von mb405 »

das mit den meldungen ist bestimmt machbar später.

priorität hat für mich:
-komisches shutdownbild
-erstellung einer sectionsd.conf, und alle sachen sectionsd betreffend da rein.
-das periodische abspeichern ist so ne sache, denn dann ist die box net so gut bedienbar garantiert.

ich hab ein eigenen reboot aufruf eingebastelt, damit das abspeichern nur beim shutdown passieren soll. ich teste weiter.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich hab grad paar printfs mal eingebaut.
mit aufruf dessen.
g_Sectionsd->writeSI2XML(g_settings.epg_file);
kommt der komische endbildschirm (neutrino menü kann man umrisshaft erkennen).
petb
Erleuchteter
Erleuchteter
Beiträge: 785
Registriert: Samstag 6. August 2005, 03:39

Beitrag von petb »

mb405 hat geschrieben:ich hab grad paar printfs mal eingebaut.
mit aufruf dessen.
g_Sectionsd->writeSI2XML(g_settings.epg_file);
kommt der komische endbildschirm (neutrino menü kann man umrisshaft erkennen).
Probier dann mal die blaue Taste und geh ins shellexec menü.
Bei mir kommt dann wieder Bild und Menü :-)
bye
PetB
1 x DBOX2 Phillips, 1 x DBOX2 Nokia, 1 x DBOX2 Sagem, 100er Gibertini (Astra / Hotbird), NFS Server
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

???????
beim shutdown ?

ich probier mal framebuffer clearen. dann erst das shutdown.raw laden. wir bekommen das schon hin :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

so es geht mit einer extra config. ich teste mal weiter.
logausgaben auf DasErste
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
before removeoldevents
after removeoldevents
before removeoldevents
after removeoldevents
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
before removeoldevents
after removeoldevents
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
before removeoldevents
after removeoldevents
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
before removeoldevents
after removeoldevents
[sectionsd] readNbytes: received POLLERR
[sectionsd] readNbytes: received POLLERR
before removeoldevents
after removeoldevents
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also prinzipiell funktioniert das ganze mit den sectionsd scan, und epg speichern wunderbar. nur eben wie gesagt hat sich wohl wieder ein speicherfresser eingeschlichen. ich hab nach ca. 1-2 stunden beim sectionsd locker 40-45%MEM nutzung. die box bleibt bedienbar. nur streamen ist dann nicht mehr drin.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Die Debugmeldungen sind harmlos.
Und der Memverbrauch dürfte normal sein. Dass irgendwann Streamen/Movieplayer nicht mehr geht ist bei mir schon immer so. Deshalb soll ja die Funktion freemem genutzt werden, bevor die anderen Speicherfresser gestartet werden. Das wäre schön wenn das mal jemand einbauen würde. Ansonsten: schmeiß doch mal eine Testversion ins Gelände.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ähhh freemem ist ja drin. oder hab ich da was falsch gesehen. ??
wenn du mir kurz sagst was man machen muss, und wie und woo . teste ich gerne mit. ich liebe Nirvana + Barf patche.
THX euch beiden

PS
muss ich mir das so vorstellen ??

g_Sectionsd->freeMemory()

im movieplayer.cpp aufrufen=für wiedergabe
im ???????????.cpp aufrufen=für streaming
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Ich würde es in Neutrino aufrufen. Also bevor der Movieplayer gestartet wird.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

und der aufruf würde soo funzen ???

hehe. dann hätt ich wieder was gelernt :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

@Nirvana
kannst mir nicht mal nen tip geben, wie ich das memfree aufrufe ?
danke
Hollo
Einsteiger
Einsteiger
Beiträge: 226
Registriert: Mittwoch 22. August 2001, 00:00

Beitrag von Hollo »

free

oder :wink:
Nokia 2xA bmon 1.0 Kabel Avia 500
Sagem 1xI bmon 1.3 Kabel Avia 600L
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

??

also in die neutrino.cpp vor aufruf des movieplayers, vor aufnahme usw soll ja das freemem rein. nur so geht es nicht :(

g_Sectionsd->freeMemory() ;
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Ich hoffe es sind noch nicht alle erschöpft vom testen des hervorragenden Movieplayers.

http://s48.yousendit.com/d.aspx?id=3NWD ... 1XTD7LMDI0

Das ist die fehlerbereinigte Version des EPG-Speicher-Features. (diff gg. aktuelles CVS)
Zur Wdh.: Beim Shutdown der Box werden (optional natürlich) die gespeicherten Events auf ein NFS Laufwerk ausgelagert. Beim Starten werden sie von dort gelesen. Vorteile: Man hat EPG auf allen Sendern ohne mühsam durchzuzappen. Man könnte EPG aus dem Internet importieren, etc.

Fehler der ersten Version waren:
- rätselhafter Speicherverbrauch
- komisches Bild beim Ausschlten über Menü (wer macht denn sowas)
- langes Drücken der Austaste bei aktiviertem Standby machte Fehler (Leute, lasst den Standby sein, das kostet zu viel Strom - so viel zu meiner missionarischen Ader für heute...)

Diese Fehler sollten gefixed sein, wobei der erste wohl durch den XML-Parser bei großen Dateien auftrat. Immer wenn ich parseXMLfile() die 2MB Datei aufgemacht habe, war der Speicher futsch.

Änderungen:
Es gibt nicht mehr eine XML-Datei, die die gesammelten Events enthält, sondern jeder Sender hat seine Datei. Damit kann der xml-Parser kleine Dateien öffnen ohne Speicher zu versemmeln und außerdem wollten wir das sowieso so haben, um evtl. gezielt Events im laufenden Betrieb zu speichern oder nachzuladen. Zusätzlich wird eine index.xml Datei angelegt, die die Dateinamen der einzelnen Event-Dateien enthält. Standardmäßig haben die Eventdateien Namen nach ONIDTSIDSID.xml.
Weil es sich jetzt nicht mehr um eine Datei handelt, muss in der Neutrino.conf folgerichtig auch ein Verzeichnis angegeben werden. (epg_dir=/mnt/bla/) Bitte den letzten "/" nicht vergessen.

Status:
Ich bin mal wieder äußerst zufrieden und halte das ganze für CVS-reif. Jetzt seid ihr dran und dürft wieder für Unzufriedenheit sorgen. ;)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

mal ne dumme Frage zum patchen - ich gehe in mein cdk verzeichnis und mache an der console

Code: Alles auswählen

patch -b /home/irgendwas/nirvana_epg2b.diff
wird der pfad und das zu patchende file durch patch von alleine gefunden? Wenn man den diff sich im editor anguckt steht ja der Pfad drin :gruebel:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

zieh dir doch alle benötigten daten vom cvs auf ein verzeichnis. dann das diff dort mit rein. dann geb ich ein patch -p0 xxxxx.diff
daraufhin will der die dateien wissen. einfach reingeben und gut ist.

@Nirvana
kannste kurz sagen welche dateien du geändert hast ?? zur vorversion ?