@DEV: apps/mczap/neutrinoNG/ui/update.cpp - Fehler?

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

@DEV: apps/mczap/neutrinoNG/ui/update.cpp - Fehler?

Beitrag von Massa »

In der Datei apps/mczap/neutrinoNG/ui/update.cpp in den Zeilen 82, 87, 95 ist m.E. beim sscanf-Befehl ein & zuviel.
Auch der Compiler meckert das an:

Code: Alles auswählen

update.cpp: In constructor `CFlashUpdate::CFlashUpdate()':
update.cpp:82: warning: char format, different type arg (arg 3)
update.cpp:87: warning: char format, different type arg (arg 3)
update.cpp:95: warning: char format, different type arg (arg 3)
Die Zeilen heissen:
82:

Code: Alles auswählen

sscanf(buf, "basepath: %s\n", &buf2);[/ode]
 87:[code]sscanf(buf, "imagefile: %s\n", &buf2);
95:

Code: Alles auswählen

sscanf(buf, "versionfile: %s\n", &buf2);
und sollten m.E. lauten:
82:

Code: Alles auswählen

sscanf(buf, "basepath: %s\n", buf2);[/ode]
 87:[code]sscanf(buf, "imagefile: %s\n", buf2);
95:

Code: Alles auswählen

sscanf(buf, "versionfile: %s\n", buf2);
SAT-Box; Phillips 2xI; AVIA600L; ENX
McClean
Senior Member
Beiträge: 175
Registriert: Samstag 21. Juli 2001, 00:00

Beitrag von McClean »

hast recht - muss ich mal fixen - danke für den tip


/McClean
Bild
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

Nichts zu danken.

Ich hasse Compiler-Warnings, und gehen denen meistens auf den Grund :-)

(m.E. sind 99% aller Compiler-Warnings vermeidbar und das restliche Prozent lässt sich dann mit gezielten #pragma's ausblenden...)
SAT-Box; Phillips 2xI; AVIA600L; ENX
woglinde
Einsteiger
Einsteiger
Beiträge: 261
Registriert: Donnerstag 15. November 2001, 00:00

Beitrag von woglinde »

Hi,

das mache ich auch grad und den fix hatte ich schon bloss noch nicht
eingecheckt. Ich hoffe wir machen nicht doppelte Arbeit.

Gruss Woglinde
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

@woglinde:
Ich bin bei der Übersetzung des CDKs einfach einigen Warnings die mir suspekt erschienen sind nachgegangen und habe sie gefixt.
Die, die ich als echte Fehler gesehen habe habe ich schon gepostet.
Andere, die keine Fehler sind, nur halt so programmiert, dass sie Warnings produzieren, habe ich teilweise bei mir behoben (v.a. im avia-Bereich), aber nicht gepostet.

Wenn Du aber gerade nach allen auftretenden Warnings schaust, werde ich die Finger davon lassen :-)

Ich muss sowieso erstmal wieder mein Repository-Abzug auf aktuellen Stand bringen, da sich doch am letzten Wochenende, wo ich weg war, einiges getan hat.

Ansonsten werde ich mir mal den neutrino-Zweig näher anschauen, weil mich der am meisten interessiert und ich auch dort etwas machen möchte.

@McClean: Gibt es irgendwo eine Übersicht, wie die Kommunikation der einzelnen Prozesse innerhalb neutrinos läuft?
Sind die Neutrino-Prozesse eigentlich Multithread-Applikationen (habe nur bemerkt, dass die pthread-Library hinzugelinkt wird) ?
SAT-Box; Phillips 2xI; AVIA600L; ENX
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

@woglinde:
Bin gerade dabei, mir mal wieder ein aktuell ausgechecktes CDK zu übersetzen.
Besonders im sectionsd gibt es noch jede Menge Warnungen, die man m.E.
auch nachverfolgen und verbessern sollte.
(z.B. mehrere "comparison between signed and unsigned...", "too few arguments for format", ...)
Bist Du da auch dran?
SAT-Box; Phillips 2xI; AVIA600L; ENX
McClean
Senior Member
Beiträge: 175
Registriert: Samstag 21. Juli 2001, 00:00

Beitrag von McClean »

Hi Massa,

Also die Kommunikation zwischen den Prozessen wird über die clientlibs erledigt. Zu jeden Daemon gibt es da ja ein Subdir, wo diese enthalten ist. Zu Multithread:
Also viele sind es tatsächlich - Ziel wäre es an vielen Stellen, diese zu eliminieren - ist auch schon an zig Stellen gemacht worden, aber es gibt eben noch "Reste".
Zu Sectionsd:
Also der ist heikel und sowieso unser Sorgenkind :)

Gruss McClean
Bild
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

@McClean:
gut, die clientlibs werde ich mir mal anschauen.

Wegen den Threads habe ich eigentlich nur gefragt, weil mir auf der einen Seite aufgefallen ist, daß mit Threads gearbeitet wird,
auf der anderen Seite werden aber globale Variablen ohne Synchronisation verwendet.
Das muß eigentlich früher oder später knallen.

Besonders im sectionsd sind mir viele pthread_xxx-Aufrufe aufgefallen.
Soll' ich mir den mal näher zu Gemüte führen und dessen Code genauer anschauen?
(BTW: für was ist der eigentlich da :-) )

Ich will nur nicht, daß ich mich an gleiche Teile setze, an dem auch schon andere arbeiten (siehe Beseitigung der Warnings und woglinde)...
SAT-Box; Phillips 2xI; AVIA600L; ENX
McClean
Senior Member
Beiträge: 175
Registriert: Samstag 21. Juli 2001, 00:00

Beitrag von McClean »

Also der sectionsd dient zum parsen und cachen der EPG-Daten. Leider ist der sectionsd seit sein Schöpfer nicht mehr da ist pflegelos. Wenn Du da also was machen möchtest, dann nur zu :)


Gruss McClean
Bild
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

Und wieso ist er Euer Sorgenkind?
Bei mir funktioniert das EPG doch ganz gut???

Aber ich schaue ihn mal durch und versuche ihn zu verstehen und zumindest die warnings zu beseitigen.

Ich melde mich wieder, wenn ich soweit bin :-)
SAT-Box; Phillips 2xI; AVIA600L; ENX
McClean
Senior Member
Beiträge: 175
Registriert: Samstag 21. Juli 2001, 00:00

Beitrag von McClean »

Naja Sorgenkind weil er eben doch nicht so doll funktioniert :)

- Premiere Directs werden wenn überhaupt erst nach Ewigkeiten erkannt.
- Bei Multi-Perspektiv-Sendungen kann es vorkommen, dass die Perspektiven nicht erkannt werden - also nur das Hauptsignal zur Verfügung steht - reboot ist nötig..
- An sonsten sorgt er für viele demux-Meldungen und frisst viel CPU-Power...

Gruss McClean
Bild
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

- Premiere Directs werden wenn überhaupt erst nach Ewigkeiten erkannt.
Hmm, das kann (bzw. werde) ich nicht überprüfen können. Premiere Direct kostet mir zuviel!
- Bei Multi-Perspektiv-Sendungen kann es vorkommen, dass die Perspektiven nicht erkannt werden - also nur das Hauptsignal zur Verfügung steht - reboot ist nötig..
ÄÄhhh. Jetzt muss ich doch mal blöd fragen: EPG heißt doch "Electronic Program Guide", oder?
Und da gibt es perspektivabhängige Meldungen?
Hmm, das kann man wohl auch nicht so oft testen, das kommt ja eigentlich nur bei Formel 1, oder?
- An sonsten sorgt er für viele demux-Meldungen und frisst viel CPU-Power...
Was bedeuten "demux"-Meldungen? Synchronisationsprobleme?
Was wird da gedemultiplexed?

Ich weiss nicht, ob meine Fragen etwas doof sind, aber wer nicht frägt lernt nichts :-)

Gruss,
Massa :oops:
SAT-Box; Phillips 2xI; AVIA600L; ENX
McClean
Senior Member
Beiträge: 175
Registriert: Samstag 21. Juli 2001, 00:00

Beitrag von McClean »

hi massa,


also der epg bei den premiere direct - das kannst Du schon testen / prüfen. Die EPG's werden natürlich nicht gescrambled, daher musste für den reinen EPG auch nichts bezahlen :)
Wegen Multiview: also stimt schon, es gibt keine perspektivenabhängigen EPG's. Aber was für Perspektiven - und auch welche Audiokanäle es gibt, wird auch von Sectionsd ermittelt.
So noch zu den Meldungen vom demux:
Das bedeutet, dass Daten da waren aber nicht vom Sectionsd abgeholt wurden. - Was wird gedemuxed: Also die verschiedenen streams - zugriff erfolgt über pids's (z.b. audio pid, video pid)...

/McClean
Bild
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

@McClean:

Also ich habe mir jetzt mal die Sourcen vom sectionsd angeschaut.
Ich muss sagen, ich verstehe bis jetzt noch nicht allzu viel.

Kann es sein, dass sich da schon mehrere Leute dran versucht haben :-? ?

Wird aus dem sections-Verzeichnis nur der Prozess sectionsd verwendet?
(Es gibt noch mehr "mains", die scheinen aber nur Beispiele zur Verwendung zu sein)

Kannst Du mir vielleicht noch sagen, welche Schnittstellen nach aussen hin verwendet werden, d.h. wo bekomt er seine Informationen (Incoming-Schnittstelle) und wie/wer/was holt Informationen (Outgoing-Schnittstelle)?
Speziell die Schnittstellen, die momentan Probleme machen sind interessant.

Also ich werde mir das ganze nochmals mit eingeschalteten Debug-Ausgaben auf der Box anschauen. Wie kann ich denn das Zusammenspiel der Prozesse am besten beobachten? Haben die alle eine "-d" Option?

Also ich werde mir das auf jeden Fall weiter anschauen, aber nach heutiger Einschätzung brauchst Du nicht so schnell mit brauchbaren verbesserten Ergebnissen rechnen.
Ich muß ja so nebenher auch noch was arbeiten, meine Familie zufrieden stellen und es gibt auch sonst noch ein Leben nebenher :D
SAT-Box; Phillips 2xI; AVIA600L; ENX
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

@McClean: Also ich habe jetzt mal einen selbstübersetzten sectionsd mit Debug-Option ausprobiert.
Es gibt keine größeren Änderungen, nur Behebung der Warnings und erweiterte Debug-Ausgaben (damit ich besser durchsteige :-) )

Aber so richtig verstehe ich den Ablauf noch nicht.

Vor allem was er da so lange versucht zu cachen (504 min. lang, wie er beim Start meldet) und wieso events so lange aufgehoben werden (erst 60min. nach Ihrem "Ende" veralten sie) ???

Naja, ausserdem habe ich wie wild auf den Direct-Kanälen und dem Erotik-Kanal von Premiere rumgeschaltet.
Direkte Abstürze hatte ich keine, aber es stimmt, dass er die EPG-Infos zumindest in der Vorschau manchmal nicht anzeigt. Das macht er bei anderen freien Programmen aber auch. Normal?

Was ich auch nicht verstehe, was er da in der ganzen Zeit, wenn ich auf dem gleichen Programm bleibe, so im Leerlauf "rumrödelt" (read.timeout - restarted; read.timeout - restarted; ...)
Zuletzt geändert von Massa am Montag 5. August 2002, 12:01, insgesamt 1-mal geändert.
SAT-Box; Phillips 2xI; AVIA600L; ENX
McClean
Senior Member
Beiträge: 175
Registriert: Samstag 21. Juli 2001, 00:00

Beitrag von McClean »

also leider kann ich Dir keine weiteren Infos zum sectionsd geben. Die einzigsten wären wohl fnbrd und field - fnbrd ist ganz weg - field hat keine zeit im moment und wird auch so schnell nicht mehr können - leider...


/McClean
Bild
T-Olli
Interessierter
Interessierter
Beiträge: 83
Registriert: Montag 22. Oktober 2001, 00:00

Beitrag von T-Olli »

Bei eurer Compiler-Warning Bereinigung hat sich ein kleiner Fehler eingeschlichen.
In neutrinoNG/gui/widget/listbox.h ist

Code: Alles auswählen

virtual void paintItem(int itemNr, int paintNr, bool selected); 
und in neutrinoNG/gui/bedit/bouqueteditor_chanselect.h

Code: Alles auswählen

void paintItem(uint itemNr, int paintNr, bool selected); 
definiert. Somit wird eine neue Funktion definiert und nicht die virtuelle überschrieben. In der Kanalauswahlliste erscheinen nicht die Kanäle sondern immer nur 'Demo'.