Lücken im Premiere Sport EPG
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Lücken im Premiere Sport EPG
Bei mir sind im EPG des Premiere Sport Portals und auf den einzeln abgespeicherten Feeds Lücken vorhanden. Es fehlt beispielsweise die Sendung Heat, die morgen zwischen 10:00 und 11:00 laufen soll. Kann das jemand bestätigen?
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Und wieder eine Lücke. Von 1:30 bis 5:15 läuft auf dem Feed 00de "Bank of America 500, ...". Die nächste Sendung im EPG beginnt aber erst um 7:30. Also fehlen zwischen 5:15 und 7:30 die Einträge. Falls das wieder niemand nachvollziehen kann, hat vielleicht jemand Ahnung, was daran Schuld sein kann? Eventuell der sectionsd, der ucode (00f0) oder HW-Sections?
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Ich habe mir den Befehl jetzt selbst zusammengesucht:
Heute um 19:15 kommt auf dem Premiere Feed 00de "Formel 3 Euro Series, Rennen 2 in LeMans". Im Videotext steht das auch genau so drin, im EPG ist kein Eintrag vorhanden und dvbsnoop liefert mir folgende Daten:
Die Daten werden also von Premiere gesendet. Somit liegt es dann wohl tatsächlich am sectionsd.
Code: Alles auswählen
dvbsnoop -nph -privateprovider premiere.de 0xb12
Code: Alles auswählen
------------------------------------------------------------
SECT-Packet: 00000087 PID: 2834 (0x0b12), Length: 677 (0x02a5)
Time received: Sun 2006-10-15 15:33:15.872
------------------------------------------------------------
PID: 2834 (0x0b12)
Guess table from table id...
using private provider space: premiere.de
User_Defined-decoding....
Table_ID: 160 (0xa0) [= Premiere Content Information Table]
Section_syntax_indicator: 1 (0x01)
private_indicator: 0 (0x00)
reserved: 0 (0x00)
private_section_length: 674 (0x02a2)
table_id_extension: 0 (0x0000)
reserved: 0 (0x00)
Version_number: 18 (0x12)
Current_next_indicator: 1 (0x01) [= valid now]
Section_number: 124 (0x7c)
Last_section_number: 164 (0xa4)
Content id: 2856307 (0x002b9573)
Duration: 17664 (0x004500)
Reserved: 0 (0x00)
descriptor_section_length: 656 (0x0290)
DVB-DescriptorTag: 84 (0x54) [= content_descriptor]
descriptor_length: 2 (0x02)
Content_nibble_level_1: 4 (0x04)
Content_nibble_level_2: 7 (0x07)
[= motor sport]
User_nibble_1: 0 (0x00)
User_nibble_2: 0 (0x00)
DVB-DescriptorTag: 77 (0x4d) [= short_event_descriptor]
descriptor_length: 55 (0x37)
ISO639_2_language_code: DEU
event_name_length: 40 (0x28)
event_name: "Formel 3 Euro Series, Rennen 2 in LeMans" -- Charset: Latin alphabet
text_length: 10 (0x0a)
text_char: "Motorsport" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 0 (0x00)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "Zum ersten Mal seit 2003 war die Formel 3 Euro Serie wieder zu Gast auf der Traditionsstrecke von Le Mans. Ein wohl bekannter Nico Rosberg jubelte vor drei Jahren nach dem Samstagslauf auf dem obersten Treppchen. Am Ende der Saison war Rosberg Achte" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 1 (0x01)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "r der Gesamtwertung, die Saison 2004 schloss er als Gesamtvierter ab. Ein Jahr später saß Rosberg im Cockpit eines GP2-Boliden und wurde Meister. In dieser Saison schließlich, ist er in der Königsklasse angelangt. Wird auch Sebastian Vettel sich die" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 49 (0x31)
descriptor_number: 2 (0x02)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 43 (0x2b)
text: "sen Traum bald verwirklichen? Wh. v. 15.10." -- Charset: Latin alphabet
DVB-DescriptorTag: 240 (0xf0) [= User defined]
descriptor_length: 11 (0x0b)
using private provider space: premiere.de
--> Premiere Content Order descriptor
Order_number_length: 3 (0x03)
Order_number: "100" -- Charset: Latin alphabet
Order_price_length: 3 (0x03)
Order_price: "¤ 5" -- Charset: Latin alphabet
Order_phone_number_length: 0 (0x00)
Order_phone_number: ""
SMS_order_information_length: 0 (0x00)
SMS_order_information: ""
URL_order_information_length: 0 (0x00)
URL_order_information: ""
DVB-DescriptorTag: 242 (0xf2) [= User defined]
descriptor_length: 15 (0x0f)
using private provider space: premiere.de
--> Premiere Content Transmission descriptor
transport_stream_ID: 3 (0x0003)
original_network_id: 133 (0x0085) [= BetaTechnik | BetaTechnik]
service_ID: 222 (0x00de) [= --> refers to PMT program_number]
Start_date: 0xd307 [= 2006-10-15]
start_time_loop_length: 6 (0x06)
Start_time: 0x094000 [= 09:40:00 (UTC)]
Start_time: 0x171500 [= 17:15:00 (UTC)]
CRC: 416252514 (0x18cf8262)
==========================================================
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Ich habe noch ein wenig weiter geforscht. "Formel 3 Euro Series, Rennen 2 in LeMans" hat die Content id 2856307. Der Eintrag ist aber insgesamt dreimal in den EPG-Daten vorhanden. Dann liegt der Fehler wohl doch bei Premiere.
Könnte man den sectionsd einfach (ich weiss, dass der suckt) erweitern, so dass er sich nicht nur nach der Content id, sondern auch nach Duration richtet? Diese Angabe ist nämlich bei allen 3 Einträgen unterschiedlich.
Könnte man den sectionsd einfach (ich weiss, dass der suckt) erweitern, so dass er sich nicht nur nach der Content id, sondern auch nach Duration richtet? Diese Angabe ist nämlich bei allen 3 Einträgen unterschiedlich.
Code: Alles auswählen
------------------------------------------------------------
SECT-Packet: 00000086 PID: 2834 (0x0b12), Length: 680 (0x02a8)
Time received: Sun 2006-10-15 15:33:15.741
------------------------------------------------------------
PID: 2834 (0x0b12)
Guess table from table id...
using private provider space: premiere.de
User_Defined-decoding....
Table_ID: 160 (0xa0) [= Premiere Content Information Table]
Section_syntax_indicator: 1 (0x01)
private_indicator: 0 (0x00)
reserved: 0 (0x00)
private_section_length: 677 (0x02a5)
table_id_extension: 0 (0x0000)
reserved: 0 (0x00)
Version_number: 18 (0x12)
Current_next_indicator: 1 (0x01) [= valid now]
Section_number: 123 (0x7b)
Last_section_number: 164 (0xa4)
Content id: 2856307 (0x002b9573)
Duration: 16384 (0x004000)
Reserved: 0 (0x00)
descriptor_section_length: 659 (0x0293)
DVB-DescriptorTag: 84 (0x54) [= content_descriptor]
descriptor_length: 2 (0x02)
Content_nibble_level_1: 4 (0x04)
Content_nibble_level_2: 7 (0x07)
[= motor sport]
User_nibble_1: 0 (0x00)
User_nibble_2: 0 (0x00)
DVB-DescriptorTag: 77 (0x4d) [= short_event_descriptor]
descriptor_length: 55 (0x37)
ISO639_2_language_code: DEU
event_name_length: 40 (0x28)
event_name: "Formel 3 Euro Series, Rennen 2 in LeMans" -- Charset: Latin alphabet
text_length: 10 (0x0a)
text_char: "Motorsport" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 0 (0x00)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "Zum ersten Mal seit 2003 war die Formel 3 Euro Serie wieder zu Gast auf der Traditionsstrecke von Le Mans. Ein wohl bekannter Nico Rosberg jubelte vor drei Jahren nach dem Samstagslauf auf dem obersten Treppchen. Am Ende der Saison war Rosberg Achte" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 1 (0x01)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "r der Gesamtwertung, die Saison 2004 schloss er als Gesamtvierter ab. Ein Jahr später saß Rosberg im Cockpit eines GP2-Boliden und wurde Meister. In dieser Saison schließlich, ist er in der Königsklasse angelangt. Wird auch Sebastian Vettel sich die" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 49 (0x31)
descriptor_number: 2 (0x02)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 43 (0x2b)
text: "sen Traum bald verwirklichen? Wh. v. 15.10." -- Charset: Latin alphabet
DVB-DescriptorTag: 240 (0xf0) [= User defined]
descriptor_length: 11 (0x0b)
using private provider space: premiere.de
--> Premiere Content Order descriptor
Order_number_length: 3 (0x03)
Order_number: "100" -- Charset: Latin alphabet
Order_price_length: 3 (0x03)
Order_price: "¤ 5" -- Charset: Latin alphabet
Order_phone_number_length: 0 (0x00)
Order_phone_number: ""
SMS_order_information_length: 0 (0x00)
SMS_order_information: ""
URL_order_information_length: 0 (0x00)
URL_order_information: ""
DVB-DescriptorTag: 242 (0xf2) [= User defined]
descriptor_length: 18 (0x12)
using private provider space: premiere.de
--> Premiere Content Transmission descriptor
transport_stream_ID: 3 (0x0003)
original_network_id: 133 (0x0085) [= BetaTechnik | BetaTechnik]
service_ID: 222 (0x00de) [= --> refers to PMT program_number]
Start_date: 0xd308 [= 2006-10-16]
start_time_loop_length: 3 (0x03)
Start_time: 0x150000 [= 15:00:00 (UTC)]
Start_date: 0xd30a [= 2006-10-18]
start_time_loop_length: 3 (0x03)
Start_time: 0x113000 [= 11:30:00 (UTC)]
CRC: 3794776760 (0xe22fb2b8)
==========================================================
------------------------------------------------------------
SECT-Packet: 00000087 PID: 2834 (0x0b12), Length: 677 (0x02a5)
Time received: Sun 2006-10-15 15:33:15.872
------------------------------------------------------------
PID: 2834 (0x0b12)
Guess table from table id...
using private provider space: premiere.de
User_Defined-decoding....
Table_ID: 160 (0xa0) [= Premiere Content Information Table]
Section_syntax_indicator: 1 (0x01)
private_indicator: 0 (0x00)
reserved: 0 (0x00)
private_section_length: 674 (0x02a2)
table_id_extension: 0 (0x0000)
reserved: 0 (0x00)
Version_number: 18 (0x12)
Current_next_indicator: 1 (0x01) [= valid now]
Section_number: 124 (0x7c)
Last_section_number: 164 (0xa4)
Content id: 2856307 (0x002b9573)
Duration: 17664 (0x004500)
Reserved: 0 (0x00)
descriptor_section_length: 656 (0x0290)
DVB-DescriptorTag: 84 (0x54) [= content_descriptor]
descriptor_length: 2 (0x02)
Content_nibble_level_1: 4 (0x04)
Content_nibble_level_2: 7 (0x07)
[= motor sport]
User_nibble_1: 0 (0x00)
User_nibble_2: 0 (0x00)
DVB-DescriptorTag: 77 (0x4d) [= short_event_descriptor]
descriptor_length: 55 (0x37)
ISO639_2_language_code: DEU
event_name_length: 40 (0x28)
event_name: "Formel 3 Euro Series, Rennen 2 in LeMans" -- Charset: Latin alphabet
text_length: 10 (0x0a)
text_char: "Motorsport" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 0 (0x00)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "Zum ersten Mal seit 2003 war die Formel 3 Euro Serie wieder zu Gast auf der Traditionsstrecke von Le Mans. Ein wohl bekannter Nico Rosberg jubelte vor drei Jahren nach dem Samstagslauf auf dem obersten Treppchen. Am Ende der Saison war Rosberg Achte" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 1 (0x01)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "r der Gesamtwertung, die Saison 2004 schloss er als Gesamtvierter ab. Ein Jahr später saß Rosberg im Cockpit eines GP2-Boliden und wurde Meister. In dieser Saison schließlich, ist er in der Königsklasse angelangt. Wird auch Sebastian Vettel sich die" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 49 (0x31)
descriptor_number: 2 (0x02)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 43 (0x2b)
text: "sen Traum bald verwirklichen? Wh. v. 15.10." -- Charset: Latin alphabet
DVB-DescriptorTag: 240 (0xf0) [= User defined]
descriptor_length: 11 (0x0b)
using private provider space: premiere.de
--> Premiere Content Order descriptor
Order_number_length: 3 (0x03)
Order_number: "100" -- Charset: Latin alphabet
Order_price_length: 3 (0x03)
Order_price: "¤ 5" -- Charset: Latin alphabet
Order_phone_number_length: 0 (0x00)
Order_phone_number: ""
SMS_order_information_length: 0 (0x00)
SMS_order_information: ""
URL_order_information_length: 0 (0x00)
URL_order_information: ""
DVB-DescriptorTag: 242 (0xf2) [= User defined]
descriptor_length: 15 (0x0f)
using private provider space: premiere.de
--> Premiere Content Transmission descriptor
transport_stream_ID: 3 (0x0003)
original_network_id: 133 (0x0085) [= BetaTechnik | BetaTechnik]
service_ID: 222 (0x00de) [= --> refers to PMT program_number]
Start_date: 0xd307 [= 2006-10-15]
start_time_loop_length: 6 (0x06)
Start_time: 0x094000 [= 09:40:00 (UTC)]
Start_time: 0x171500 [= 17:15:00 (UTC)]
CRC: 416252514 (0x18cf8262)
==========================================================
------------------------------------------------------------
SECT-Packet: 00000088 PID: 2834 (0x0b12), Length: 674 (0x02a2)
Time received: Sun 2006-10-15 15:33:16.006
------------------------------------------------------------
PID: 2834 (0x0b12)
Guess table from table id...
using private provider space: premiere.de
User_Defined-decoding....
Table_ID: 160 (0xa0) [= Premiere Content Information Table]
Section_syntax_indicator: 1 (0x01)
private_indicator: 0 (0x00)
reserved: 0 (0x00)
private_section_length: 671 (0x029f)
table_id_extension: 0 (0x0000)
reserved: 0 (0x00)
Version_number: 18 (0x12)
Current_next_indicator: 1 (0x01) [= valid now]
Section_number: 125 (0x7d)
Last_section_number: 164 (0xa4)
Content id: 2856307 (0x002b9573)
Duration: 20480 (0x005000)
Reserved: 0 (0x00)
descriptor_section_length: 653 (0x028d)
DVB-DescriptorTag: 84 (0x54) [= content_descriptor]
descriptor_length: 2 (0x02)
Content_nibble_level_1: 4 (0x04)
Content_nibble_level_2: 7 (0x07)
[= motor sport]
User_nibble_1: 0 (0x00)
User_nibble_2: 0 (0x00)
DVB-DescriptorTag: 77 (0x4d) [= short_event_descriptor]
descriptor_length: 55 (0x37)
ISO639_2_language_code: DEU
event_name_length: 40 (0x28)
event_name: "Formel 3 Euro Series, Rennen 2 in LeMans" -- Charset: Latin alphabet
text_length: 10 (0x0a)
text_char: "Motorsport" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 0 (0x00)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "Zum ersten Mal seit 2003 war die Formel 3 Euro Serie wieder zu Gast auf der Traditionsstrecke von Le Mans. Ein wohl bekannter Nico Rosberg jubelte vor drei Jahren nach dem Samstagslauf auf dem obersten Treppchen. Am Ende der Saison war Rosberg Achte" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 255 (0xff)
descriptor_number: 1 (0x01)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 249 (0xf9)
text: "r der Gesamtwertung, die Saison 2004 schloss er als Gesamtvierter ab. Ein Jahr später saß Rosberg im Cockpit eines GP2-Boliden und wurde Meister. In dieser Saison schließlich, ist er in der Königsklasse angelangt. Wird auch Sebastian Vettel sich die" -- Charset: Latin alphabet
DVB-DescriptorTag: 78 (0x4e) [= extended_event_descriptor]
descriptor_length: 49 (0x31)
descriptor_number: 2 (0x02)
last_descriptor_number: 2 (0x02)
ISO639_2_language_code: DEU
length_of_items: 0 (0x00)
text_length: 43 (0x2b)
text: "sen Traum bald verwirklichen? Wh. v. 15.10." -- Charset: Latin alphabet
DVB-DescriptorTag: 240 (0xf0) [= User defined]
descriptor_length: 11 (0x0b)
using private provider space: premiere.de
--> Premiere Content Order descriptor
Order_number_length: 3 (0x03)
Order_number: "100" -- Charset: Latin alphabet
Order_price_length: 3 (0x03)
Order_price: "¤ 5" -- Charset: Latin alphabet
Order_phone_number_length: 0 (0x00)
Order_phone_number: ""
SMS_order_information_length: 0 (0x00)
SMS_order_information: ""
URL_order_information_length: 0 (0x00)
URL_order_information: ""
DVB-DescriptorTag: 242 (0xf2) [= User defined]
descriptor_length: 12 (0x0c)
using private provider space: premiere.de
--> Premiere Content Transmission descriptor
transport_stream_ID: 3 (0x0003)
original_network_id: 133 (0x0085) [= BetaTechnik | BetaTechnik]
service_ID: 222 (0x00de) [= --> refers to PMT program_number]
Start_date: 0xd307 [= 2006-10-15]
start_time_loop_length: 3 (0x03)
Start_time: 0x113000 [= 11:30:00 (UTC)]
CRC: 1469267625 (0x57933ea9)
==========================================================
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Ich habe mir mal den Quelltext des sectionsd angesehen und versucht, dem Einfügen eines Events zu folgen. Dabei bin ich in der "sectionsd.cpp" (v1.227) auf die Funktion "addEvent" gestoßen und habe mir folgende Änderungen überlegt. Es müsste doch reichen, dass man den Code ab der Zeile 402
durch folgenden ersetzt
. Oder liege ich da vollkommen falsch oder habe an der falschen Stelle gesucht?
Falls durch diese Änderung zuviel CPU-Zeit im Nicht-Premiere-Private-EPG verbraucht wird, könnte man ja eine neue Funktion "addPPTEvent" erstellen, die den Code von "addEvent" inklusive der obigen Änderungen enthält, und diese statt "addEvent" in "pptThread" einfügen.
Code: Alles auswählen
/*
MySIeventsOrderUniqueKey::iterator si = mySIeventsOrderUniqueKey.find(evt.uniqueKey());
bool already_exists = (si != mySIeventsOrderUniqueKey.end());
if (already_exists) {
}
*/
Code: Alles auswählen
MySIeventsOrderUniqueKey::iterator si = mySIeventsOrderUniqueKey.find(evt.uniqueKey());
bool already_exists = (si != mySIeventsOrderUniqueKey.end());
if (already_exists) {
// bisher gespeicherte Zeiten retten
e->times.insert(si->second->times.begin(), si->second->times.end());
}
Falls durch diese Änderung zuviel CPU-Zeit im Nicht-Premiere-Private-EPG verbraucht wird, könnte man ja eine neue Funktion "addPPTEvent" erstellen, die den Code von "addEvent" inklusive der obigen Änderungen enthält, und diese statt "addEvent" in "pptThread" einfügen.
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
Hallo Gaucho
Ich habe das mal aufgenommen aber nicht probiert ob es so einfach ist wie oben geschrieben.
Hier mal meine Lösung, die sicher noch suboptimal ist, aber funktioniert:
http://home.arcor.de/houdini/dbox/secti ... eevent.cpp
Ich habe das mal aufgenommen aber nicht probiert ob es so einfach ist wie oben geschrieben.
Hier mal meine Lösung, die sicher noch suboptimal ist, aber funktioniert:
http://home.arcor.de/houdini/dbox/secti ... eevent.cpp
-
- Einsteiger
- Beiträge: 166
- Registriert: Dienstag 22. Juni 2004, 22:12
Hi Houdini,
ich hab da auch nochmal ene kleine Änderungen für den Infoviewer :
Hiermit wird der Subchannel Name als Channel Name angezeigt und die richtige EPG-Channel-ID bei den Subchannels genommen.
Kannst ja mal anschauen und evtl. einchecken......
Gruß Kroki
ich hab da auch nochmal ene kleine Änderungen für den Infoviewer :
Code: Alles auswählen
Index: infoviewer.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/infoviewer.cpp,v
retrieving revision 1.202
diff -a -u -r1.202 infoviewer.cpp
--- infoviewer.cpp 22 Aug 2006 21:50:23 -0000 1.202
+++ infoviewer.cpp 21 Oct 2006 12:01:42 -0000
@@ -182,8 +182,18 @@
{
showButtonBar = !calledFromNumZap;
std::string ChannelName = Channel;
+ bool subChannelNameIsUTF = true;
bool new_chan = false;
+ if (! calledFromNumZap && !(g_RemoteControl->subChannels.empty()) && (g_RemoteControl->selected_subchannel >= 0)) {
+ channel_id = g_RemoteControl->subChannels[g_RemoteControl->selected_subchannel].getChannelID();
+ ChannelName = g_RemoteControl->subChannels[g_RemoteControl->selected_subchannel].subservice_name;
+ subChannelNameIsUTF = false;
+ }else{
+ channel_id = new_channel_id;
+ }
+
+
bool fadeIn = ((g_info.box_Type == CControld::TUXBOX_MAKER_PHILIPS) || (g_info.box_Type == CControld::TUXBOX_MAKER_SAGEM)) && // eNX only
g_settings.widget_fade &&
(!is_visible) &&
@@ -235,7 +245,6 @@
col_NumBoxText = COL_INFOBAR;
col_NumBox = COL_INFOBAR_PLUS_0;
}
- channel_id = new_channel_id;
//number box
frameBuffer->paintBoxRel(BoxStartX+10, BoxStartY+10, ChanWidth, ChanHeight, COL_INFOBAR_SHADOW_PLUS_0);
@@ -274,8 +283,8 @@
paintTime( false, true );
// ... with channel name
- g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_CHANNAME]->RenderString(ChanNameX+ 10, ChanNameY+ time_height, BoxEndX- (ChanNameX+ 20)- time_width- 15, ChannelName, COL_INFOBAR, 0, true); // UTF-8
-
+ g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_CHANNAME]->RenderString(ChanNameX+ 10, ChanNameY+ time_height, BoxEndX- (ChanNameX+ 20)- time_width- 15, ChannelName, COL_INFOBAR, 0, subChannelNameIsUTF); // UTF-8
+
ChanInfoX = BoxStartX + (ChanWidth / 3);
int ChanInfoY = BoxStartY + ChanHeight+ 10;
ButtonWidth = (BoxEndX- ChanInfoX- ICON_OFFSET)>> 2;
Kannst ja mal anschauen und evtl. einchecken......
Gruß Kroki
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Ich habe das ja auch nur theoretisch durchgespielt und versucht hinter die Logik des Einfügens von Events zu kommen. Jetzt müßte nur noch jemand so nett sein, ein Binary des sectionsd daraus zu machen und mir zur Verfügung zu stellen. Dann würde ich meinen und auch gerne deinen Vorschlag testen.Houdini hat geschrieben:Ich habe das mal aufgenommen aber nicht probiert ob es so einfach ist wie oben geschrieben.
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
Hier, ist aber ungestripped und hat deine Änderungen noch nicht mit drin
http://home.arcor.de/houdini/dbox/secti ... pdateevent
http://home.arcor.de/houdini/dbox/secti ... pdateevent
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Danke Houdini, funktioniert ja wunderbar.
Ich bin nun zu dem Schluss gekommen, dass meine einfachen Änderungen so nicht funktionieren werden, und habe mir mal deinen Code angesehen und das ganze etwas optimiert. Allerdings muss ich zugeben, dass ich noch nicht so viel mit C/C++ gemacht habe. Sieh dir doch mal bitte meine Änderungen im Aufruf von "updateEvent" und in der Funktion selbst an. Mich hat der doppelte Aufruf von gestört. Kann das so funktionieren, wie ich es geändert habe?
--- URL gelöscht ---
Ich bin nun zu dem Schluss gekommen, dass meine einfachen Änderungen so nicht funktionieren werden, und habe mir mal deinen Code angesehen und das ganze etwas optimiert. Allerdings muss ich zugeben, dass ich noch nicht so viel mit C/C++ gemacht habe. Sieh dir doch mal bitte meine Änderungen im Aufruf von "updateEvent" und in der Funktion selbst an. Mich hat der doppelte Aufruf von
Code: Alles auswählen
MySIeventsOrderUniqueKey::iterator si = mySIeventsOrderUniqueKey.find(e->uniqueKey());
--- URL gelöscht ---
Zuletzt geändert von Gaucho316 am Dienstag 31. Oktober 2006, 21:25, insgesamt 3-mal geändert.
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Ich habe jetzt noch mal über das Hinzufügen der Uhrzeiten nachgedacht. Werden jetzt nicht immer dann, wenn dieser Thread läuft, die gleichen Uhrzeiten hinzugefügt? Falls das so ist, habe ich noch eine andere Idee, wie man testen kann, ob "updateEvent" aufgerufen werden muss. Diese Idee beruht auf der Erkenntnis, dass im Premiere PrivateEPG die Events mit derselben ID direkt hintereinander im Datenstrom kommen. Den Quelltext mit den nötigen Änderungen erstelle ich allerdings erst morgen. Gute Nacht.
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Was aber eigentlich ein Problem sein sollte, ist der Fall, dass sich die Anfangszeit eines Events verschiebt. Dann würde diese neue Zeit meiner Meinung nach hinzugefügt werden, obwohl sie ja eigentlich die bisherige Anfangszeit ersetzen sollte. Dieses Problem sollte meine neue Variante lösen. Schau dir doch bitte einmal meine Änderungen an und erstelle ein Binary zum Testen.
--- URL gelöscht ---
--- URL gelöscht ---
Zuletzt geändert von Gaucho316 am Dienstag 31. Oktober 2006, 21:25, insgesamt 1-mal geändert.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Einen Vorschlag zur Optimierung habe ich noch. Da ja jedem "updateEvent" garantiert ein "addEvent" vorausgeht, könnte man doch in der Funktion "updateEvent" diesen Code, der auch in "addEvent" ausgeführt wird, weglassen:
Oder liege ich da falsch?
Edit:
Wofür werden "mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey" und "mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey" überhaupt benötigt? Müsste man eventuell beim Einfügen von Zeiten auf diese beiden Mengen Rücksicht nehmen und das Event mit den geänderten Zeiten zuerst löschen und dann wieder einfügen?
Code: Alles auswählen
// Falls das Event in den beiden Mengen mit Zeiten nicht vorhanden
// ist, dieses dort einfuegen
MySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey::iterator i2 = mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.find(ie->second);
if (i2 == mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end())
{
// nicht vorhanden -> einfuegen
mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.insert(ie->second);
mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.insert(ie->second);
}
Edit:
Wofür werden "mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey" und "mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey" überhaupt benötigt? Müsste man eventuell beim Einfügen von Zeiten auf diese beiden Mengen Rücksicht nehmen und das Event mit den geänderten Zeiten zuerst löschen und dann wieder einfügen?
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Danke. Ich würde es ja gern selbst testen, habe aber leider keine Möglichkeit zum Kompilieren.
Hier erst einmal eine kurze Zusammenfassung der Ereignisse, die mich dazu brachten, Houdinis ursprüngliche Version anzupassen: wurde und davor habe ich natürlich noch die benutzten Variablen angelegt und initialisiert. Den vollständigen Code der angepassten "sectionsd.cpp" findest du unter --- URL gelöscht ---
Mir möchte jetzt eigentlich nur wissen, ob meine Änderungen der Änderungen genauso gut funktionieren, wie die ursprüngliche Version von Houdini funktioniert hat, also ob keine Events im Premiere Sport EPG mehr fehlen. Könntest du bitte auch so nett sein, mir das Binary zur Verfügung zu stellen?
Hier erst einmal eine kurze Zusammenfassung der Ereignisse, die mich dazu brachten, Houdinis ursprüngliche Version anzupassen:
Gaucho316 hat geschrieben:Ich habe jetzt noch mal über das Hinzufügen der Uhrzeiten nachgedacht. Werden jetzt nicht immer dann, wenn dieser Thread läuft, die gleichen Uhrzeiten hinzugefügt? Falls das so ist, habe ich noch eine andere Idee, wie man testen kann, ob "updateEvent" aufgerufen werden muss. Diese Idee beruht auf der Erkenntnis, dass im Premiere PrivateEPG die Events mit derselben ID direkt hintereinander im Datenstrom kommen. Den Quelltext mit den nötigen Änderungen erstelle ich allerdings erst morgen.
Houdini hat geschrieben:Habe ich auch gedacht, aber bei meinen Tests wurden die gleichen Zeiten nicht verdoppelt.
Ich habe in der ursprünglich von Houdini bereitgestellten Version ein paar Codezeilen geändert. AusGaucho316 hat geschrieben:Was aber eigentlich ein Problem sein sollte, ist der Fall, dass sich die Anfangszeit eines Events verschiebt. Dann würde diese neue Zeit meiner Meinung nach hinzugefügt werden, obwohl sie ja eigentlich die bisherige Anfangszeit ersetzen sollte. Dieses Problem sollte meine neue Variante lösen. Schau dir doch bitte einmal meine Änderungen an und erstelle ein Binary zum Testen.
Code: Alles auswählen
MySIeventsOrderUniqueKey::iterator si = mySIeventsOrderUniqueKey.find(e->uniqueKey());
if (si != mySIeventsOrderUniqueKey.end()) {
// Und die Zeiten im Event updaten
updateEvent(*e);
} else {
addEvent(*e);
}
Code: Alles auswählen
curEventID = e->uniqueKey();
if (curEventID == prevEventID) {
// Und die Zeiten im Event updaten
updateEvent(*e);
} else {
addEvent(*e);
prevEventID = curEventID;
}
Mir möchte jetzt eigentlich nur wissen, ob meine Änderungen der Änderungen genauso gut funktionieren, wie die ursprüngliche Version von Houdini funktioniert hat, also ob keine Events im Premiere Sport EPG mehr fehlen. Könntest du bitte auch so nett sein, mir das Binary zur Verfügung zu stellen?
Zuletzt geändert von Gaucho316 am Dienstag 31. Oktober 2006, 21:26, insgesamt 1-mal geändert.
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12
Also bei dem Patch von dir und bei dem von Houdini bleibt das EPG bis Programmende erhalten und verschwindet nicht immer.
Der Patch von Kroki zeigt neben der Zeit die Programme bei gelber Taste an?
Sowas war glaube ich schon mal in der Entwicklung hatte es aber Aufgrund von Problemen nicht in das CVS geschafft kann das sein?
Mal die Tage alte Threads wühlen, Krokipatch probiere ich dann die Tage einzeln noch.
http://home.arcor.de/mybase/sectionsd-u ... ent-v3.rar
Der Patch von Kroki zeigt neben der Zeit die Programme bei gelber Taste an?
Sowas war glaube ich schon mal in der Entwicklung hatte es aber Aufgrund von Problemen nicht in das CVS geschafft kann das sein?
Mal die Tage alte Threads wühlen, Krokipatch probiere ich dann die Tage einzeln noch.
http://home.arcor.de/mybase/sectionsd-u ... ent-v3.rar