sectionsd aktualisiert Kanalliste

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

sectionsd aktualisiert Kanalliste

Beitrag von Nirvana »

Die Vorgeschichte zu diesem Thema findet sich hier:
http://forum.tuxbox-cvs.sourceforge.net ... 71&start=0

Ich bitte nun, um Bugreporting und Verbesserungsvorschläge.
Den Patch habe ich hier abgelegt.
http://s59.yousendit.com/d.aspx?id=2CX4 ... 1TY2BTBQ3K
Beachtet insbesondere die Bemerkung in obigen Posting zu den Librariers im Makefile.am. Gepatched werden die Dateien im Vertzeichnis sectionsd und der sectionsdclient.

Weil das das erste diff ist, das ich erstellt habe, kann es sein, dass ich noch was vergessen habe. Also falls etwas nicht compiliert liegt das am diff. Der sectionsd an sich sollte wenigstens erstmal starten. Falls dann im Betrieb etwas nicht funktioniert, ladet mal bitte eure services.xml hoch und sagt welcher Transponder scheitert.

Mein weiteres Vorgehen neben dem Bughunting und dem zapit update, wird dem NIT gelten, damit auch neue Transponder dazu geschrieben werden können.

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

Beitrag von PauleFoul »

Tolle Sache! Mal sehen wie der Patch funktioniert...

Ich überlege gerade wie ich am besten testen soll!? Ich könnte eine
alte Service.xml einspielen und dann schaun ob diese aktualisiert wird, oder?


Gruß
____Paule
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

hm aufs cvs diffen kannst du mit cvs diff -u > blaaffoo.diff

Allerdings sind dann die neuen Dateie nicht dabei, die muss man manuell dabeischreiben oder eben 2 cvs-dirs diffen...


Dein Patch baut aber nicht bei mir:

Code: Alles auswählen


then mv -f ".deps/sectionsd.Tpo" ".deps/sectionsd.Po"; else rm -f ".deps/section
In file included from sectionsd.cpp:76:
SIbouquets.hpp:71: error: expected `,' or `...' before "_bouquet_id"
SIbouquets.hpp:71: error: ISO C++ forbids declaration of `t_bouquet_id' with no
SIbouquets.hpp:82: error: expected `,' or `...' before "_bouquet_id"
SIbouquets.hpp:83: error: ISO C++ forbids declaration of `t_bouquet_id' with no
SIbouquets.hpp:83: error: `SIbouquet::SIbouquet(int)' and `SIbouquet::SIbouquet(
SIbouquets.hpp:100: error: `t_bouquet_id' does not name a type
SIbouquets.hpp: In constructor `SIbouquet::SIbouquet(int)':
SIbouquets.hpp:73: error: `bouquet_id' undeclared (first use this function)
SIbouquets.hpp:73: error: (Each undeclared identifier is reported only once for
SIbouquets.hpp:73: error: `_bouquet_id' undeclared (first use this function)
SIbouquets.hpp: In constructor `SIbouquet::SIbouquet(int)':
SIbouquets.hpp:84: error: `_service_id' undeclared (first use this function)
SIbouquets.hpp:85: error: `_original_network_id' undeclared (first use this func
SIbouquets.hpp:86: error: `_transport_stream_id' undeclared (first use this func
SIbouquets.hpp: In copy constructor `SIbouquet::SIbouquet(const SIbouquet&)':
SIbouquets.hpp:95: error: `bouquet_id' undeclared (first use this function)
SIbouquets.hpp:95: error: 'const class SIbouquet' has no member named 'bouquet_i
SIbouquets.hpp: In member function `void SIbouquet::dump() const':
SIbouquets.hpp:116: error: `bouquet_id' undeclared (first use this function)
sectionsd.cpp: In function `void addBouquetEntry(const SIbouquet&)':
sectionsd.cpp:574: error: 'class SIbouquet' has no member named 'bouquet_id'
sectionsd.cpp: At global scope:
sectionsd.cpp:1522: error: `t_transponder_id' does not name a type
sectionsd.cpp:1524: error: `t_transponder_id' does not name a type
sectionsd.cpp:1527: error: `t_bouquet_id' does not name a type
sectionsd.cpp: In function `void initSDTtables()':
sectionsd.cpp:1545: error: `messaging_bat_bouquet_id' undeclared (first use this
sectionsd.cpp:1552: error: `messaging_sdt_other_tid' undeclared (first use this
sectionsd.cpp:1555: error: `messaging_sdt_other_sections_got_all' undeclared (fi
sectionsd.cpp: At global scope:
sectionsd.cpp:3068: error: `t_bouquet_id' was not declared in this scope
sectionsd.cpp:3069: error: expected `,' or `;' before '{' token
sectionsd.cpp:3080: error: `t_transponder_id' was not declared in this scope
sectionsd.cpp:3081: error: expected `,' or `;' before '{' token
sectionsd.cpp:3101: error: `t_transponder_id' was not declared in this scope
sectionsd.cpp:3102: error: expected `,' or `;' before '{' token
sectionsd.cpp:3112: error: variable or field `tid_complete' declared void
sectionsd.cpp:3112: error: `t_transponder_id' was not declared in this scope
sectionsd.cpp:3113: error: expected `,' or `;' before '{' token
sectionsd.cpp: In function `void* sdtThread(void*)':
sectionsd.cpp:3137: error: `t_transponder_id' undeclared (first use this functio
sectionsd.cpp:3137: error: expected `;' before "tid"
sectionsd.cpp:3295: error: `tid' undeclared (first use this function)
sectionsd.cpp:3296: error: `CREATE_TRANSPONDER_ID_FROM_ORIGINALNETWORK_TRANSPORTs function)
sectionsd.cpp:3343: error: `is_other_sdt_ready' cannot be used as a function
sectionsd.cpp:3344: error: `get_sdt_slot' cannot be used as a function
sectionsd.cpp:3378: error: `tid_complete' cannot be used as a function
sectionsd.cpp:3388: error: `messaging_sdt_other_tid' undeclared (first use this
sectionsd.cpp:3405: error: `t_bouquet_id' undeclared (first use this function)
sectionsd.cpp:3405: error: expected `;' before "bouquet_id"
sectionsd.cpp:3407: error: `bouquet_id' undeclared (first use this function)
sectionsd.cpp:3412: error: `get_bat_slot' cannot be used as a function
make[4]: *** [sectionsd.o] Error 1
make[4]: Leaving directory `/home/jtgimage/tuxbox-cvs/apps/tuxbox/neutrino/daemo
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/jtgimage/tuxbox-cvs/apps/tuxbox/neutrino/daemo
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/jtgimage/tuxbox-cvs/apps/tuxbox/neutrino'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/jtgimage/tuxbox-cvs/apps/tuxbox/neutrino'
make: *** [.deps/neutrino] Error 2
 
Hab aber noch nicht weiter geguckt was da fehlt..
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

@Paule
Ja, oder ich habe einfach mal ein paar Services gelöscht. Oder die Transponder ganz leer gemacht. Die Transponder Nodes darf man natürlich solange NIT updates noch nicht unterstützt werden noch nicht löschen.

@Riker

Mist, ja da war ich noch wo tätig:

Code: Alles auswählen

--- /usr/local/src/tuxbox-cvs/apps/dvb/zapit/include/zapit/client/zapittypes.h	2004-02-25 00:50:57.000000000 +0100
+++ /home/sebastian/tuxbox-cvs/apps/dvb/zapit/include/zapit/client/zapittypes.h	2005-11-05 11:58:10.000000000 +0100
@@ -45,10 +45,16 @@
 
 typedef uint16_t t_network_id;
 
+//Introduced by Nirvana 11/05. Didn't check if there are similar types
+typedef uint16_t t_bouquet_id;
+//Introduced by Nirvana 11/05. Didn't check if there are similar types
+typedef uint32_t t_transponder_id;
+
 /* unique channel identification */
 typedef uint64_t t_channel_id;
 #define CREATE_CHANNEL_ID_FROM_SERVICE_ORIGINALNETWORK_TRANSPORTSTREAM_ID(service_id,original_network_id,transport_stream_id) ((((t_channel_id)transport_stream_id) << 32) | (((t_channel_id)original_network_id) << 16) | (t_channel_id)service_id)
 #define CREATE_CHANNEL_ID CREATE_CHANNEL_ID_FROM_SERVICE_ORIGINALNETWORK_TRANSPORTSTREAM_ID(service_id, original_network_id, transport_stream_id)
+#define CREATE_TRANSPONDER_ID_FROM_ORIGINALNETWORK_TRANSPORTSTREAM_ID(original_network_id,transport_stream_id) ((((t_original_network_id) original_network_id) << 16) | (t_transport_stream_id) transport_stream_id)
 #define GET_ORIGINAL_NETWORK_ID_FROM_CHANNEL_ID(channel_id) ((t_original_network_id)((channel_id) >> 16))
 #define GET_SERVICE_ID_FROM_CHANNEL_ID(channel_id) ((t_service_id)(channel_id))
 #define PRINTF_CHANNEL_ID_TYPE "%16llx"
Metallica
Einsteiger
Einsteiger
Beiträge: 191
Registriert: Dienstag 30. Dezember 2003, 01:49

Beitrag von Metallica »

@Nirvana
Kannst du die geänderte files auf upload geben ?
Ich kann dein diff nicht benutzen .

ps. ich mache diff immer so:
diff -Naur org_dir neue_dir
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Nirvana an Metallica: (auch nicht schlecht ;) )

http://s62.yousendit.com/d.aspx?id=3F4G ... FISHH1OSI1

Das diff des sectionsd hatte ich mit diff -Nur org_dir new_dir erstellt. Hmm, a sollte doch keinen Unterschied machen.
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Hm, hast du jetzt die zapittypes.h mit drin, deswegen bauts nicht ;)
Metallica
Einsteiger
Einsteiger
Beiträge: 191
Registriert: Dienstag 30. Dezember 2003, 01:49

Beitrag von Metallica »

Nirvana an Metallica: (auch nicht schlecht )
hihi war mir nicht bewusst. ;)
ok ich hab alle diffs , ich hoffe ,dass ich es morgen hinbekomme.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

kann sein dass du die manuell inscdk/*/ include kopieren muss, da war doch sowas
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ Nirvana
Genau so werde ich es versuchen und berichten...


Gruß
____Paule
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Nirvana hat geschrieben:Nirvana an Metallica: (auch nicht schlecht ;) )

http://s62.yousendit.com/d.aspx?id=3F4G ... FISHH1OSI1

Das diff des sectionsd hatte ich mit diff -Nur org_dir new_dir erstellt. Hmm, a sollte doch keinen Unterschied machen.
Baut nun, und wie testet man das jetzt ? ;)

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

Beitrag von Nirvana »

JtG-Riker hat geschrieben: Baut nun, und wie testet man das jetzt ? ;)
Am besten man wartet, bis mal wieder ein Sender neu aufgeschaltet wird. ;)

Nur Spaß. Hau doch mal alle ARD Sender in die Tonne. Wie gesagt, nur die channels - Einträge nicht die transponder. Dann schaltest du auf ZDF und wartest eine Minute. Danach sollte die services.xml wieder heile sein - inklusive der ARD Sender.

Achja, ich habe da eine Backoff Zeit drin, um dem EPG den Vorrang zu geben und das Zappen in keinem Fall zu behindern. Deshalb wacht der sdt-Thread erst 20 Sekunden nach dem Umschalten auf.
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Nirvana hat geschrieben:
JtG-Riker hat geschrieben: Baut nun, und wie testet man das jetzt ? ;)
Am besten man wartet, bis mal wieder ein Sender neu aufgeschaltet wird. ;)

Nur Spaß. Hau doch mal alle ARD Sender in die Tonne. Wie gesagt, nur die channels - Einträge nicht die transponder. Dann schaltest du auf ZDF und wartest eine Minute. Danach sollte die services.xml wieder heile sein - inklusive der ARD Sender.

Achja, ich habe da eine Backoff Zeit drin, um dem EPG den Vorrang zu geben und das Zappen in keinem Fall zu behindern. Deshalb wacht der sdt-Thread erst 20 Sekunden nach dem Umschalten auf.

Hm ein paar debugs im seriellen log wären hilfreich, oder ist das schon was: T: SR SÃœDWEST Ferns.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ Nirvana

Also das funktioniert ja schon echt hervorragend.
Zwei Dinge sind mir aufgefallen:

1. Man muss "Kanallisten neu laden" machen, damit man die
gefundenen Einträge in Neutrino sieht.

Wäre schön wenn das automatisch gehen würde.

2. Auf dem Brummiere Sportkanal werden PN-XXX Kanäle gefunden...
Sind das etwa die aktuellen Subchannles??

Code: Alles auswählen

- <transponder id="0003" onid="0085" frequency="362000000" inversion="2" symbol_rate="6900000" fec_inner="0" modulation="3">
  <channel service_id="0011" name="PREMIERE SPORT PORTAL" service_type="01" /> 
  <channel service_id="0065" name="PN-101" service_type="01" /> 
  <channel service_id="00dc" name="PN-220" service_type="01" /> 
  <channel service_id="00de" name="PN-222" service_type="01" /> 
  <channel service_id="00f0" name="PN-240" service_type="01" /> 
  <channel service_id="00f1" name="PN-241" service_type="01" /> 
  <channel service_id="00f2" name="PN-242" service_type="01" /> 
  <channel service_id="00f3" name="PN-243" service_type="01" /> 
  <channel service_id="00f4" name="PN-244" service_type="01" /> 
  <channel service_id="0dae" name="CPT_TP65" service_type="0c" /> 
  <channel service_id="cf10" name="PN-53008" service_type="01" /> 
  </transponder>
Ansonsten, geniale Arbeit (für den Anfang... :-) )


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

Beitrag von PauleFoul »

Das sind in der Tat die aktuellen Subkanäle von PremiereDirekt und
dem SportKanal!!

PN-220 ist z.B. die Infoseite (News) der SportPortals. Was für ein
geniales "Abfallprodukt" Deiner Arbeit... :D

Man müsste jetzt mal beobachten welche Logik in der Nummerierung
steckt...


Gruß
____Paule
vinyl
Interessierter
Interessierter
Beiträge: 50
Registriert: Dienstag 1. Februar 2005, 13:44

Beitrag von vinyl »

PauleFoul hat geschrieben:Man müsste jetzt mal beobachten welche Logik in der Nummerierung steckt...
Ganz einfach: Bei PN-XXX steht XXX für die SID (dezimal).
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

vinyl hat geschrieben:
PauleFoul hat geschrieben:Man müsste jetzt mal beobachten welche Logik in der Nummerierung steckt...
Ganz einfach: Bei PN-XXX steht XXX für die SID (dezimal).
Jo.

Ich meinte ob bestimmte Nummern immer die gleiche Funktion haben...


Beispiel: Nummer 220 = News
usw.


Gruß
____Paule
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

PauleFoul hat geschrieben: Ich meinte ob bestimmte Nummern immer die gleiche Funktion haben...


Beispiel: Nummer 220 = News
usw.


Gruß
____Paule
News bleibt wohl gleich aber der Rest wechselt.

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

Beitrag von Nirvana »

@Riker

Ja das T: gehört zu meinen Sachen. Habe ich aber nur vergessen auszukommentieren. Mehr Debug-Ausgaben gibts bei sectionsd -d. Aber das wird dir wohl dann zu unübersichtlich werden. Wenn das allgemein gewünscht wird, könnte ich eine Version machen, in der die wichtigen Sachen direkt geprinted werden.

@Paule
Ja dass die Kanalliste neu geladen werden muss ist klar. Habe ich ja auch geschrieben. Wie gesagt: der sectionsd sagt Neutrino auch schon Bescheid. Nur Neutrino hört noch nix. :)

Und eigentlich sollten die Subkanäle da nicht sein. Die habe ich auch noch nie beim Testen bekommen. Kannst du nachvollziehen, auf welchem Sender sie signalisiert werden? Wenn du auf Sportportal schaltest sollten sie jedenfalls wieder verschwinden. In dem SDT stecken sie meines Wissens nicht, oder Premi hat zu dem Zeitpunkt rumgespielt. Ich habe die einzelnen Feeds in myservices.xml, denn da gehören sie rein rechtlich gesehen hin. ;)
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Ich sehe da noch folgende Probleme/Aufgaben
- jetzt schreiben sowohl sectionsd als auch zapit in die services.xml Datei.
- Man sollte vielleicht die secvices.xml zur Laufzeit ins /tmp kopieren und dort "bearbeiten" und erst auf Kommando/beim Herunterfahren ins Flash schreiben um die Flash Schreibzugriffe zu minimieren.
- Kommen sich zapit und sectionsd bei normaler Kanalsuche ins Gehege?

Weiter so!
Houdini
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Diesen Kommentar bitte nicht so ernst nehmen. Ich möchte niemanden ärgern oder seine Arbeit, die ich sehr wohl zu schätzen weiß, geringschätzen.

Überspitzt formuliert ist mein Standpunkt nämlich: Wenn ich fertig bin, braucht man keine Kanalsuche mehr. Ich habe mich schon immer geärgert, dass zu viel Energie in zapit und Settingseditoren "verschwendet" wurde, statt es einmal richtig zu machen.
Meine Vision geht so:
Auf einer frisch installierten Box wird eine leere services.xml geliefert. Der Benutzer wird nach seinen Diseqc - Einstellungen/Kabel-Provider gefragt. Aus der satellites.xml wird pro Satellit/Kabel ein (Idealfall - wenn alle anderen Transponder über die NIT gefunden werden) oder mehrere leere Transponder in die services.xml eingefügt. Dann wird so lange getuned, bis der sectionsd alle Transponder ausgefüllt hat. Und zwar alles automatisch.

Fazit: zapit soll services.xml nicht mehr anrühren und sich um seine Dinge kümmern.

Aber schon Helmut Schmidt sagte: Wer Visionen hat, soll zum Arzt gehen!
Sprich: Ob sich das realisieren lässt sehe ich, wenn ich fertig bin.

@Houdini
Davon abgesehen, finde ich das mit dem Schreiben bei Kommando / Herunterfahren schon sinnvoll. Die aktualisierte Liste wird ohnehin z.Z. im /tmp zusammengebaut. Nur wie oft denkst du ändern sich die services.xml? Das muss glaube ich dann die Praxis zeigen. Ich will auch nicht ständig von Meldungen genervt werden: Hui neuer Sender, ich lade mal eben die Liste neu.

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

Beitrag von Houdini »

ich könnte mir folgendes vorstellen:
neu gefundene Sender wandern ja in die services.xml und vielleicht auch automatisch auch in ein Bouquet "$Neu".
Keine weiteren Meldungen/Popups.
Wenn man dann nach neuen Sender schauen möchte einfach ins Bouquet $Neu gehen.
Per Komanndo "Neugefundene Sender speichern" kann diese neue services/bouquet.xml" in Flash.
So kann jeder die Sender aus dem Bouquet $Neu da einsortieren wo er mag.

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

Beitrag von Nirvana »

Ja, genau.

Und dem LoadServices bringe ich bei, dass er falls es im /tmp eine currentservices.xml gibt, diese mit berücksichtigt.
Beim Runterfahren, wird die currentservices.xml dann in die eigentliche services.xml eingefügt.
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Nirvana hat geschrieben: Ich will auch nicht ständig von Meldungen genervt werden: Hui neuer Sender, ich lade mal eben die Liste neu.
Das wäre auch nicht gut falls jemand mit einem Analogen Gerät aufnehmen will und ihm dann die Aufnahme "versaut".

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

Beitrag von PauleFoul »

@ Nivana

Also die Subkanäle füge ich auch über die myservices.xml hinzu.

Code: Alles auswählen

- <transponder id="0003" onid="0085" frequency="362000000" inversion="2" symbol_rate="6900000" fec_inner="0" modulation="3">
  <channel action="add" name="Premiere Direkt da" service_id="00da" service_type="01" /> 
  <channel action="add" name="Premiere Direkt db" service_id="00db" service_type="01" /> 
  <channel action="add" name="Premiere Direkt dc" service_id="00dc" service_type="01" /> 
  <channel action="add" name="Premiere Direkt de" service_id="00de" service_type="01" /> 
  <channel action="add" name="Premiere Direkt f0" service_id="00f0" service_type="01" /> 
  <channel action="add" name="Premiere Direkt f1" service_id="00f1" service_type="01" /> 
  <channel action="add" name="Premiere Direkt f2" service_id="00f2" service_type="01" /> 
  <channel action="add" name="Premiere Direkt f3" service_id="00f3" service_type="01" /> 
  <channel action="add" name="Premiere Direkt f4" service_id="00f4" service_type="01" /> 
  <channel action="add" name="Premiere Direkt f5" service_id="00f5" service_type="01" /> 
  </transponder>
Diese habe ich dann in einem eigenen Bouquet zusammen mit dem
SportPortal angelegt.
Die Kanäle die aktuell gefunden werden bekommen dann aber den PN-XXX
Namen verpasst. Die Kanäle die den Namen aus der Myservices.xml
behalten sind alle "Kanal nicht verfügbar".

Hoffe das hilft Dir etwas weiter...

Gruß
____Paule