BTW: Plugin hat nun neuen Unterschlupf gefunden unter:
http://projects.vdr-developer.org/projects/show/plg-tvtv
monty35
BTW: Plugin hat nun neuen Unterschlupf gefunden unter:
http://projects.vdr-developer.org/projects/show/plg-tvtv
monty35
Timer Update Zeitverschiebungsfix: auto
Zeitzonen-Verschiebungs-Fix: Ignoriere Zeitzone
BTW: Plugin hat nun neuen Unterschlupf gefunden bei:
http://projects.vdr-developer.org/projects/show/plg-tvtv
monty35
Anbei eine neue Version vom p8, sozusagen ein Release Candidate.
Änderungen gegenüber dem letzten:
- Add support for manual timezone offset fix, supported also DST or non-DST only and can
be also ignored
=> das mit DST und non-DST habe ich eingebaut, damit nächsten Jahr im März nicht wieder ein "Unglück" passiert. Das mit "ignore" deshalb, weil im XML (Alternativformat von tvtv) keine der Zeiten eine TimeZone drinhaben und anscheinend UTC benutzen - versuchsweise habe ich jetzt bei mir "ignore" am laufen...mal schauen, was nächsten März passiert
- examples/tvtv_channelmap.conf_DVB-S: fix ARTE (reported by uclara)
- change translation support from i18n to gettext (mo/po)
=> anscheinend unterstützt vdr-1.6.0 das alte i18n nicht mehr, hab's nun umgestellt auf gettext
Bitte testen und Rückmelden, ob alles klappt.
Viel Erfolg.
monty35
Anbei ein neuer Patch gegen "vanilla" 0.3.3. Aufgrund eines Hinweises eines leidenden tvtv-plugin-Benutzers, der über Sat auch BBC-Sendungen aufnimmt, habe ich festgestellt, daß mein erster Ansatz des Zeitzonenfix nur in der lokalen Zeitzone funktioniert (d.h. Timer haben die gleiche Zeitzone wie der vdr). Wenn Timer mit unterschiedlichen Zeitzonen zum Einsatz kommen, funktioniert der Autodetect nicht mehr.
Lösung: Option in der Plugin-Config, die auch einen konstanten manuell definierten Timezoneshift erlaubt.
Gibt jetzt: autodetect (ausreichend für z.B. Kabel und Sat, wenn nur CE(S)T-Sender benutzt werden
manual (einstellbar -1,0,+1)
off
Patch *-patched8
In Planung ist noch, diesen manuellen Offset noch weiter schaltbar zu machen:
- manual (gibt' s nun)
- manual only non-DST (manueller Offset nur während der Winterzeit)
- manual only DST (manueller Offset nur während der Sommerzeit)
Kommt demnächst dann mal.
Viel Erfolg beim Patchen, patched8 ist bereits als funktionsfähig verifiziert von jemanden anderen.
monty35
Noch paar Anmerkungen,
der Fix von der letzten Winterzeit-Sommerzeitumstellung, der die Optionen:
tvtv.TVTVBugfix = 1
tvtv.TVTVBugfixHrs = 1
hernimmt, fixt ein anderes Problem, denn es gab (evtl. gibt's noch, müßt mal das Log auswerten) Zeiten, da hat TVTV manchmal richtige Einträge geschickt, manchmal welche, die verschoben waren (ich vermute, ein anderer Server hinter dem Loadbalancer war/ist falsch konfiguriert)...die haben also absolut die Zeitzonen nicht im Griff.
Der obige Konfigurationsparameter, der am besten auf "auto" steht, erkennt solche falschen Updates und ignoriert diese, anstatt den Timer plötzlich um 1 (Winter) oder 2 (Sommer) Stunden nach vorne zu verlegen.
Ich hab übrigens wg. beiden Problemen auch schon Tickets bei tvtv aufgemacht...keine Reaktion.
Gibt aktuell übrigens noch ein Problem...tvtv schickt seit einiger Zeit alte Timer weiter mit, was nervig ist, wenn man eine Aufnahme manuell abbricht...wenn beim nächsten Update der Timer wieder mitkommt und die Endzeit noch nicht erreicht ist, startet die Aufnahme wieder...ist nun auch gefixt (0.3.3.patched7).
Wenn Ihr wieder mal auf Probleme stößt, schickt lieber mir mal eine Nachricht, denn der ursprüngliche Entwickler hat sich mehr oder weniger ausgeklingt.
Ich dagegen werde tvtv weiterhin nutzen...notfalls fix ich halt die Bugs von tvtv im Plugin, solange ich's schaff...inzwischen bin ich ganz fit geworden
monty35
So, anbei neue Version des Patches, der (schaltbar) verhindert, daß nicht-VPS-Timer (erneut) hinzugefügt werden, deren Startzeit schon vorbei ist. Das verhindert dann, daß manuell (absichtlich) abgebrochene Aufnahmen nach einem TVTV-Update plötzlich wieder losstarten.
Grund: TVTV liefert seit einiger Zeit veraltete Timer weiter aus.
Schaut im Log so aus:
Nov 13 23:27:50 vdr vdr: [32427] TVTV: timer NOT added (StartTime in the past & AddOngoingNonVpsTimers=off) (Show / Comedy~TV total) [17139934/Pro7/13/2320-0105/-]
Wenn die Endzeit eines Timers auch schon vorbei ist, wird der Timer auf gar keinen Fall mehr hinzugefügt, denn vdr würde den gleich wieder löschen.
Schaut im Log so aus:
Nov 13 23:22:38 vdr vdr: [22117] TVTV: timer NOT added (EndTime in the past) (Agentenfilm~James Bond
007: Sag niemals nie) [17099625/hr Ferns/13/2005-2255/-]
Viel Erfolg beim Testen.
monty35
BTW: zum Winterzeit-Problem siehe auch http://www.vdrportal.de/board/thread.php?threadid=81443
Hallo,
ich hab das Problem schon am 28.10. gefixt...deshalb ist mir der Beitrag hier gar nicht aufgefallen.
Schaut mal in den Thread http://www.vdrportal.de/board/thread.php?threadid=77102, da gibt's einen Patch, der das Winterzeitproblem heilt: tvtv-0.3.3.patched6.diff
Viel Erfolg.
monty35
Hallo,
scheinbar sind die Programmierer von TVTV nicht die besten...
Seit p4 ist folgendes aufgetreten:
- plötzlich werden alte Timer noch ausgeliefert
- seit der Zeitumstellung liefert TVTV immer noch +0200 anstatt +0100
Anyway, nichts, was man durch Programmieren nicht lösen kann
Anbei neuer Patch gegen vanilla 0.3.3
2008-10-28: Version 0.3.3p6
- Minor change to be compatible to 1.6.0
- Fix segfault after manual update
- The time shift bugfix is now extended, option "auto" detects current
used timezone automatically and takes care (this covers daylight
saving time switches) (thx to monty35)
- Add option to define the format of the filename, Nature(Genre) and
Format can be included now (thx to monty35)
Note: existing timers would not be updated after a change (needs to be
impemented)!
- Add autofix of buggy received timezone offset (thx to monty35)
TVTV transmit still +0200 for CET times (20081028)
- Do not readd outdated timers (thx to monty35)
TVTV still transmit outdated timers, which otherwise would be added
by plugin and shortly deleted by vdr
Display More
Viel Erfolg!
monty35
Anbei eine neue Version.
- Kompiliert nun auch unter vdr 1.6.0
- Ursache für Segfault nach manuellem Update gefunden (schon länger drin, erst letztens aufgetaucht)
- Dateinamenformat noch flexibler schaltbar.
Patch ist gegen tvtv-0.3.3 nativ.
Viel Spaß,
monty35
Hallo,
anbei mein aktueller Patch gegen tvtv-0.3.3 (btw: der Entwickler selbst wird wohl nicht mehr großartig weiterentwickeln...müßte sich ein neuer Maintainer finden).
Damit bekommt das Plugin (auf Wunsch) eine Automatikschaltung (berücksichtigt Zeitzone) für den Timeshift-Bug (hat bei mir den März bestens überstanden).
Außerdem ist die Aufnahme des Genre/Nature Felds, in dem seit einiger Zeit meist die Episodennamen von Serien drinstehen, in den Titel nun schaltbar zw. voran- (bisher default) oder hintenanstellen.
Viel Erfolg beim Testen.
monty35
Hallo,
mustang scheint aktuell nicht auf e-mails zu reagieren, anbei ein Patch, der Sommer-/Winterzeitumstellung automatisch berücksichtigt, um das leidige Thema der falschen Zeiten, die TVTV immer wieder mal rausgibt, zu fixen.
Ist getestet (letztens...) und funktioniert.
Änderung/Erweiterung: bei "0" wird die Automatik aktiv, d.h. der fest einzustellende Shift-Wert (der in D im Sommer 2 h und im Winter 1 h betragen soll), wird automatisch über localtime ermittelt.
Viel Spaß beim Testen, insbesondere im März 2008
diff -u -urN tvtv-0.3.3.old/i18n.c tvtv-0.3.3/i18n.c
--- tvtv-0.3.3.old/i18n.c 2007-10-07 10:07:01.000000000 +0200
+++ tvtv-0.3.3/i18n.c 2007-10-07 10:41:51.000000000 +0200
@@ -470,8 +470,8 @@
#endif
#endif
},
- { " Time shift (hrs)", // English
- " Zeitverschiebung (Std)", // Deutsch
+ { " Time shift (hrs) (0=auto)", // English
+ " Zeitverschiebung (Std) (0=Auto)", // Deutsch
"", // Slovenski
"", // Italiano
"", // Nederlands
diff -u -urN tvtv-0.3.3.old/tvtv.c tvtv-0.3.3/tvtv.c
--- tvtv-0.3.3.old/tvtv.c 2007-10-07 10:07:01.000000000 +0200
+++ tvtv-0.3.3/tvtv.c 2007-10-07 10:41:58.000000000 +0200
@@ -90,7 +90,7 @@
Add(new cMenuEditBoolItem( tr("Time shift bugfix"), &data.tvtv_bugfix));
if (data.tvtv_bugfix)
- Add(new cMenuEditIntItem( tr(" Time shift (hrs)"), &data.tvtv_bugfix_hrs, 1, 4));
+ Add(new cMenuEditIntItem( tr(" Time shift (hrs) (0=auto)"), &data.tvtv_bugfix_hrs, -23, 23));
Add(new cOsdItem(tr("Reload ChannelMap"),osUser9));
diff -u -urN tvtv-0.3.3.old/update.c tvtv-0.3.3/update.c
--- tvtv-0.3.3.old/update.c 2007-10-07 10:07:01.000000000 +0200
+++ tvtv-0.3.3/update.c 2007-10-07 11:03:44.000000000 +0200
@@ -400,6 +400,10 @@
time_t tStartTime, tVpsTime, tEndTime;
struct tm tStart, tVps, tEnd;
int StartTZ, VpsTZ, EndTZ;
+
+ int tvtv_bugfix_secs; /* seconds of TVTV bugfix (sends sometimes UTC instead of local time) */
+ struct tm *timelocal;
+ time_t tloc;
cTimer *oTimer = NULL;
cTimer *ti = NULL;
@@ -621,10 +625,22 @@
if (timer_update) { // Timer exists
if (tvtv_timer[DEF_TVTV_SCHEDULE_ACT] == "rec") {
- // avoid Timer updates if Timer is shifted exactly 1 or 2 hours earlier (TVTV Problem)
- if (TVTVConfig.tvtv_bugfix && ((((ti->StartTime() - tStartTime) == TVTVConfig.tvtv_bugfix_hrs*3600) &&
- ((ti->StopTime() - tEndTime) == TVTVConfig.tvtv_bugfix_hrs*3600)) ||
- (vps && ((ti->StopTime() - tEndTime) == TVTVConfig.tvtv_bugfix_hrs*3600)) )) {
+ // avoid Timer updates if Timer is shifted (TVTV UTC Problem)
+ if (TVTVConfig.tvtv_bugfix_hrs != 0) {
+ // exactly configured hours
+ dsyslog("TVTV: manual configured timezone shift: %d hrs", TVTVConfig.tvtv_bugfix_hrs);
+ tvtv_bugfix_secs = TVTVConfig.tvtv_bugfix_hrs * 3600;
+ } else {
+ // autodetect time zone distance
+ time(&tloc);
+ timelocal = localtime(&tloc);
+ dsyslog("TVTV: autodetected timezone: %s, shift: %d hrs", timelocal->tm_zone, (int) (timelocal->tm_gmtoff / 3600));
+ tvtv_bugfix_secs = timelocal->tm_gmtoff;
+ };
+
+ if (TVTVConfig.tvtv_bugfix && ((((ti->StartTime() - tStartTime) == tvtv_bugfix_secs) &&
+ ((ti->StopTime() - tEndTime) == tvtv_bugfix_secs)) ||
+ (vps && ((ti->StopTime() - tEndTime) == tvtv_bugfix_secs)) )) {
isyslog("TVTV: timer %d update rejected (%s) [%s/%s/%d/%04d-%04d/%s]", ti->Index() + 1,
ti->File(),
tvtv_timer[DEF_TVTV_SCHEDULE_UID].c_str(),
Display More
Bin dort nicht registriert, kann das jemand anders machen? BTW: mein Patch implementiert den Support von cs2 in stv0297.c vollständig rein.
Ich bin hier auf das gleiche Problem gestoßen, dummerweise hat ein Zurückgehen auf Kernel 2.6.16 auch nicht mehr geholfen...naja, dank OpenSource ist das ja nicht aussichtslos. Hab nun den Patch von oben in die aktuelle Version von v4l reinadaptiert und siehe da, hier unter 2.6.18 (Fedora Core 6) funktioniert der neue Treiber!
Patch anbei, viel Erfolg beim Testen!
Und hier meine Channel-Konfig für FreeTV in München (DVB-C ist bevorzugt vor DVB-T)
//////////////////////////////////////////////////////////////
// ChannelMap for TVTV-Plugin
//////////////////////////////////////////////////////////////
//
// TVTV ChannelID = VDR ChannelID (Src-NID-TID-SID)
//
//// Kabelfernsehen Muenchen
//
// 394 MHz
2 = C-1-1079-28006 // ZDF
118 = C-1-1079-28007 // 3sat
963 = C-1-1079-28011 // ZDF infokanal
960 = C-1-1079-28014 // ZDF dokukanal
961 = C-1-1079-28016 // ZDF theaterkanal
63 = C-1-1079-28008 // KiKa
//
// 410 MHz
1 = C-1-1101-28106 // ARD
10 = C-1-1101-28109 // ARTE
206 = C-1-1101-28114 // Phoenix
17 = C-1-1101-28111 // WDR Köln
26 = C-1-1101-28108 // HR
57 = C-1-1101-28112 // BR-alpha
18 = C-1-1101-28107 // BR3
29 = C-1-1101-28113 // SWR BW
//
// 426 MHz
962 = C-1-1073-28201 // Eins Extra
955 = C-1-1073-28202 // Eins Festival
956 = C-1-1073-28203 // EinsPlus
//35 = C-1-1073-28205 // rbb Brandenburg
35 = C-1-1073-28206 // rbb Berlin
30 = C-1-1073-28231 // SWR RP
//19 = C-1-1073-28224 // NDR FS MV
19 = C-1-1073-28225 // NDR FS HH
//19 = C-1-1073-28226 // NDR FS NDS
//19 = C-1-1073-28227 // NDR FS SH
33 = C-1-1073-28204 // MDR
//33 = C-1-1073-28228 // MDR SACHSEN
//33 = C-1-1073-28229 // MDR S-ANHALT
//33 = C-1-1073-28230 // MDR THÜRINGEN
//
//
//// DVB-T Muenchen
//
// Kanal 34
4 = T-8468-12801-16405 // RTL
9 = T-12338-0-16406 // RTL2
11 = T-12338-0-16418 // VOX
179 = T-12338-0-16411 // Super RTL
//
// Kanal 48
5 = T-8468-13057-16408 // SAT.1
6 = T-8468-13057-16403 // ProSieben
8 = T-8468-13057-16394 // Kabel eins
953 = T-8468-13313-16420 // N24
//
// Kanal 66
105 = T-8468-13313-16413 // TELE-5
107 = T-8468-13313-16420 // Eurosport
40 = T-8468-13313-16393 // HSE24
889 = T-8468-13313-1856 // München.TV
Display More
Die Daten sind aus meiner channel.conf, funktionieren soweit.
vdr hat 2x DVB-C und 1x DVB-T
Beim Aufbau einer Channel-Konfig für München habe ich einen Kanal vergessen, was doch glatt zu einem Segfault führte. Hier der Fix:
--- tvtv-0.3.0.orig/channelmap.c 2006-10-09 10:02:29.000000000 +0200
+++ tvtv-0.3.0/channelmap.c 2006-10-21 17:46:26.000000000 +0200
@@ -75,6 +75,7 @@
}
tChannelID cChannelMap::GetChanID(int tvtvid) {
+ if (chanmap[tvtvid] == NULL) return tChannelID::InvalidID;
return tChannelID::FromString(chanmap[tvtvid]);
}
Bei der Gelegenheit, wenn Du mal noch bisserl Zeit hast, könntest Du das alte Thema wieder aufgreifen mit dem Problem, daß ChannelMap.h aktuell nicht für DVB-T paßt (zumindest hier in München).
Hier mein aktueller Patch:
--- ../tvtv-0.2.14.orig/ChannelMap.h 2006-09-30 11:23:30.000000000 +0200
+++ ../tvtv-0.2.13a/ChannelMap.h 2006-09-17 15:46:35.000000000 +0200
@@ -61,21 +61,21 @@
{"NICK", 28640},
//
// Privatsender [de]
-{"RTL", 12003},
-{"SAT.1", 46},
-{"ProSieben", 898},
-{"Kabel eins", 899},
-{"RTL2", 12020},
-{"Super RTL", 12040},
-{"VOX", 12060},
+{"RTL", 16405},
+{"SAT.1", 16408},
+{"ProSieben", 16403},
+{"Kabel eins", 16394},
+{"RTL2", 16406},
+{"Super RTL", 16411},
+{"VOX", 16418},
{"9Live", 897},
-{"TELE-5", 51},
+{"TELE-5", 16413},
{"TV Gusto", 659},
{"Das Vierte", 1793},
//
// Nachrichten
{"n-tv", 12090},
-{"N24", 47},
+{"N24", 16398},
{"EuroNews", 28015},
{"BBC World Germany", 10050},
{"Sky News", 28707},
Display More
Realisierungsvorschlag: ChannelMap über Menü-Schalter umschaltbar machen, dazu am besten die Einträge von 2 auf 3 Felder erweitern und den alternativen Kanal dort einfügen, falls vorhanden:
Z.B.:
{"TELE-5", 16413,51}
Einträge, wo kein alternativer Kanal bekannt ist, bekommen
{"EuroNews", 28015, -1}
Bei "-1" wird dann der erste verwendet.
Oder Du lagerst den Inhalt von ChannelMap.h auf eine vom Plugin zu ladende Konfigurationsdatei aus.
monty35
QuoteHISTORY
- Timer updates are rejected if shifted 2 hours earlier. Successful and rejected updates are documented in the logfile (thx to monty35).
Danke, aber die aktuelle Implementierung wird zu Beginn der Winterzeit wieder Ärger machen.
Ich denke, bei Winterzeit wird der Shift auf 1 Stunde runtergehen, somit wäre es super, wenn Du (wie schon vorgeschlagen) die Zeitzone checken würdest und den Check entsprechend machst:
UTC+2 : 7200 Sekunden
UTC+1: 3600 Sekunden
Evtl. wäre es auch noch schön, diesen Workaround über Menü-Eintrag schaltbar zu machen.
Danke,
monty35
QuoteOriginal von monty35
Werd mal den aktuellen Entwickler kontaktieren.
Hat sich gemeldet, hat grad wenig Zeit aber in 2-3 Wochen sollte es wohl eine neue Version zum testen geben, die meinen Vorschlag implementiert hat...
Also ich hab das hier auch, hab auch an TVTV geschrieben, auch erfolglos bisher. Ich vermute, daß die ein Problem im Datenbank-Backend oder in der Middleware haben. Der Frontendserver ist ja www.tvtv.de, aber das CGI geht sicher auf ein Backend. Und da steht wahrscheinlich ein Loadbalancer davor, und entweder haben die mehr als einen Middleware-Server oder mehr als einen Datenbank-Server. Und einer davon läuft auf der falschen Zeitzone.
Das mit der Middleware/Backend ist übrigens daran zu erkennen:
http ://www.tvtv.de/cgi-bin/WebObjects/TVSync.woa/wa/getjobs?&serial=0&account=****&product=35&target=www.tvtv.de&doctype=csv&access=****'
-> target=...
Der einzige Workaround, der mir aktuell einfällt, ist der, daß Timerupdates nicht akzeptiert werden, wenn die Zeit um genau einen definiertes Delta zurückspringt:
CEST: - 2 h
CET : -1 h
Werd mal den aktuellen Entwickler kontaktieren.
QuoteOriginal von monty35
Ich wäre für jeden Tipp dankbar, jetzt werd ich mal eine ältere Version ausprobieren (müssen).
Siehe da, mit 0.6.10 funktioniert das. Ist das noch gar keinem aufgefallen?! Oder muß ich das ab 0.6.11 anders spezifizieren?
Danke für Tipps!