[ANNOUNCE] VDR developer version 1.7.25

  • Mischen tue ich hier auch nicht - da der Key ja nur die Sendezeit ist gibt mir das zu schnell Duplikate. Augenscheinlich mischen hier aber andere.


    Ganz richtig ist es auch nicht - DVB EPG Daten kann ich dann nicht extern mit einfliessen lassen - da ich sie nicht mehr bekomme - in MEINER persönlichen Anwendung kommt das auch so nicht vor. Ich benutze momentan noEPG noch. also für MICH völlig ok.


    Der zweite Absatz den du von mir zitiert hast, hast du ja nicht weiter angesprochen - von sofern lass ich das mal so stehen (hat auch nur indirekt mit diesem Thema zu tun)

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Was passiert denn, wenn man einen Eintrag mit PUTE ändert? Wird dann für alle späteren EPG-Events kein EPG mehr vom DVB-Stream eingelesen? Oder gilt das nur für diesen einen Event?


    Sobald der erste Event in der Liste eines Kanals (wobei die Events nach Startzeit sortiert sind) eine Table-ID von 0x00 hat lässt VDR diese Liste so lange komplett in Ruhe, bis alle "veralteten" Events verschwunden sind und der erste Event in der LIste wieder eine Table-ID ungleich 0x00 hat.


    Klaus

  • Mischen tue ich hier auch nicht - da der Key ja nur die Sendezeit ist gibt mir das zu schnell Duplikate. Augenscheinlich mischen hier aber andere.


    Ganz richtig ist es auch nicht - DVB EPG Daten kann ich dann nicht extern mit einfliessen lassen - da ich sie nicht mehr bekomme - in MEINER persönlichen Anwendung kommt das auch so nicht vor. Ich benutze momentan noEPG noch. also für MICH völlig ok.


    Wie gesagt, wenn du schon eine externe Quelle für den EPG hast, dann doch bitte alles von dort beziehen ;)


    Zitat


    Der zweite Absatz den du von mir zitiert hast, hast du ja nicht weiter angesprochen - von sofern lass ich das mal so stehen (hat auch nur indirekt mit diesem Thema zu tun)


    Sorry, den hätte ich wohl löschen sollen ;)


    Klaus

  • Nur mal so aus reiner Neugier: Was war denn der Anlass hierfür? Viel schwer zu wartenden Code loswerden? Oder...?


    cu

  • Nur mal so aus reiner Neugier: Was war denn der Anlass hierfür? Viel schwer zu wartenden Code loswerden? Oder...?


    Derek Kelly (user.vdr@gmail.com) lag mir ständig in den Ohren wegen des EPG in Amerika, den die anscheinend aus externen Quellen beziehen, und der immer wieder mit dem aus dem DVB-Datenstrom kollidierte. Daher diese Änderung, mit der man den extern eingespeisten EPG so gestalten kann, daß VDR ihn vollkommen in Ruhe lässt.


    Klaus

  • also wenn ich es recht sehe wird hier nicht wie bei noepg das gesamte EPG, welches beim Schauen eines Kanals reinkommt, abgeklemmt, sondern viel mehr nur der Weg in die epg.data verhindert sobald hier für den Kanal schon ein Event mit Table-ID 0 gesetzt ist.


    Super!


    Weil: praktisches Beispiel: Neue Sender für die es keine tvm/epgdata ID gibt kann ich bisher nicht vom Sender auffüllen lassen, weil die mir das tvm EPG für das gesamte Bouquet versauen. - Mit der neuen Variante kann ich das sehr wohl weil der Rest des Bouquet quasi tabu ist. Perfekt wenns so ist!


    Aktuelle Beispiele wenn ich kurz durchschaue: ATV2, ORFSport+, ORFIII, Sport HD Extra, Sport HD News, Sky 3D, und weiß der Teufel welche neuen Programme nach der Analogabschaltung dieses Jahr noch dazukommen.


    Einzig komisch ist der Moment zwischen dem CLRE und dem Einlesen des ext. EPG, da weiß der VDR ja noch nicht welche Sender extern eingelesen werden. Vllt wäre es ne Lösung wenn er nach einem CLRE für eine bestimmte Zeit keine Daten vom Transponder nimmt damit das sauber bleibt...?


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Man kann per PUTE laden, aber man bekommt dann kein DVB EPG mehr wenn etwas manuell mit table id 0 geladen hat. ...


    Soviel zur Theorie, funktiomiert hat die "Table id 0 Methode" aber leider nie!
    Wobei ich mir ncht sicher bin, ob da die Grösse der epg.data eine Rolle spielt? Ich habe in der Vergangenheit beobachtet dass mein ext-EPG immer wieder, zumindest mal teilweise, überschrieben wurde.
    Ich habe da den VDR selber in Verdacht, der wenn die epg.data recht gross ist, einfach beim beenden nicht sauber zurück schreibt. Selbiges gilt natürlich auch bei einem Crash des VDRs. Meine epg.data ist i.d.R. so um die 60 -80 MB gross.

  • @C-3PO: Da muss ich dir leider recht geben - ich hab da bis jetzt nicht gefunden was da exakt passiert. Mehr als "nicht sauber" und merkwürdig fällt mir da auch nicht ein.


    $ ls -lah /var/cache/vdr/epg.data
    -rw-r--r-- 1 vdr vdr 65M 2012-03-04 01:44 /var/cache/vdr/epg.data


    Die Größe ist bei mir ähnlich. Eine These wäre evtl. das die verkettete Liste durcheinanderkommt wenn man CLRE macht und Timer gesetzt werden, weil die Einträge die einen Timer haben nicht gelöscht werden.


    Das neue hier ist ja aber das gar kein DVB EPG mehr reinkommen sollte für diesen Sender - ob es sich dadurch bessert muss sich ja noch zeigen. - Ich nehme mal an du hast es jetzt noch nicht probiert :)

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Um das nochmal für das Modifizieren einzelner Events zusammenzufassen: Die EPG-Events sind zeitlich sortiert abgespeichert und wenn der erste EPG-Event eines Senders die TableID 0x00 hat, dann werden für diesen Sender keine EPG-Einträge aktualisiert.
    Wenn man einen zukünftigen EPG-Event selbst modifziert (z.B. mit vdradmin-am), dann wird ab dem Moment wo dieser EPG-Eintrag der erste (=laufende) ist keine weiteren Einträge dieses Senders aktualisiert. Wenn dieser EPG-Event dann vorbei ist und damit aus der Liste rausfällt, dann werden wieder die EPG-Events dieses Senders aktualisiert.
    Ausnahmen sind natürlich modifizierte EPG-Events in der Zukunft, da diese ja wieder die TableID 0x00 haben und wie bisher nicht verändert werden.
    Alles klar? ;D


    @C-3PO & steffen_b: Die "Table ID 0 Methode" funktioniert einwandfrei wenn man z.B. mit vdradmin-am die vorhandenen EPG-Events modifiziert. Das schützt bisher natürlich nicht vor neuen Einträgen, die z.B. leicht daneben liegen (wie z.B. gestern Abend der Bond: 23:00->23:20). Ob der VDR beim Shutdown crasht bzw. nach einem Timeout gekillt wird sieht man ja im Log. Die epg.data wird übrigens alle 10 Min auf Platte gechrieben.

  • Die epg.data wird übrigens alle 10 Min auf Platte gechrieben.

    Im Regelfall ja.


    sofern keine laufenden Aufnahmen, anosnsten wird das Housekeeping so lang ausgesetzt ;D


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • [...] @C-3PO & steffen_b: Die "Table ID 0 Methode" funktioniert einwandfrei wenn man z.B. mit vdradmin-am die vorhandenen EPG-Events modifiziert. Das schützt bisher natürlich nicht vor neuen Einträgen, die z.B. leicht daneben liegen (wie z.B. gestern Abend der Bond: 23:00->23:20). Ob der VDR beim Shutdown crasht bzw. nach einem Timeout gekillt wird sieht man ja im Log. Die epg.data wird übrigens alle 10 Min auf Platte gechrieben.


    Schön, dass es bei Dir funktioniert, wie schon gesagt, bei mir ging das noch nie.


    Meine EPG Daten sehen alle so aus, bevor sie via PUTE in den VDR geschrieben werden:



    Wie man sieht, sind alle TableIDs auf 0. Leider interessiert das den VDR recht wenig....
    Wenn der VDR durchläuft, dann ist das kein Problem, nur wenn der VDR mal neu gestartet wird, dann "vergisst" er, dass er die Evensts mit id 0 nicht anfassen soll.


    BTW: vdradmin-am verwende ich nicht. Wozu auch, ich habe keine Lust, nach jedem EPG Update alles von Hand zu editieren.

  • Weil: praktisches Beispiel: Neue Sender für die es keine tvm/epgdata ID gibt kann ich bisher nicht vom Sender auffüllen lassen, weil die mir das tvm EPG für das gesamte Bouquet versauen. - Mit der neuen Variante kann ich das sehr wohl weil der Rest des Bouquet quasi tabu ist. Perfekt wenns so ist!


    Wieso, das ging bisser auch wunderbar. Sender für die du das DVB EPG nicht willst sperrst du mit noEPG und gut ist. Dazu brauchts diese Neuerung nicht.


    Einzig komisch ist der Moment zwischen dem CLRE und dem Einlesen des ext. EPG, da weiß der VDR ja noch nicht welche Sender extern eingelesen werden. Vllt wäre es ne Lösung wenn er nach einem CLRE für eine bestimmte Zeit keine Daten vom Transponder nimmt damit das sauber bleibt...?


    Du hast 10 Sekunden

    Code
    "CLRE [ <number> | <name> | <id> ]\n"
      "    Clear the EPG list of the given channel number, name or id.\n"
      "    Without option it clears the entire EPG list.\n"
      "    After a CLRE command, no further EPG processing is done for 10\n"
      "    seconds, so that data sent with subsequent PUTE commands doesn't\n"
      "    interfere with data from the broadcasters.",


    cu

  • Ich möchte mal nen anderes Thema anschneiden. Wie ist nun die Änderung mit dem --rcu Parameter zu verstehen. ersetzt das rcu Plugin nur die --rcu Option, oder wird damit auch das remote Plugin hinfällig?


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Vllt wäre es ne Lösung wenn er nach einem CLRE für eine bestimmte Zeit keine Daten vom Transponder nimmt damit das sauber bleibt...?


    Das ist doch schon der Fall:


    Code
    help clre
    214-CLRE [ <number> | <name> | <id> ]
    214-    Clear the EPG list of the given channel number, name or id.
    214-    Without option it clears the entire EPG list.
    214-    After a CLRE command, no further EPG processing is done for 10
    214-    seconds, so that data sent with subsequent PUTE commands doesn't
    214-    interfere with data from the broadcasters.
    214 End of HELP info


    Allerdings sehe ich da jetzt bei genauerer Betrachtung durchaus eine Lücke, wenn nicht der EPG eines einzelnen Kanals mit CLRE gelöscht wird, sondern alle EPG-Daten:


    Code
    else {
         cSchedules::ClearAll();
         cEitFilter::SetDisableUntil(time(NULL) + EITDISABLETIME);
         Reply(250, "EPG data cleared");
         }


    In der kurzen Zeit zwischen dem ClearAll() und SetDisableUntil() könnten theoretisch Daten vom Transponder kommen, denn der cSchedulesLock greift ja nur innerhalb ClearAll().
    Außerdem könnten die 10 Sekunden abgelaufen sein, wenn sehr viele EPG-Daten einzulesen sind, da die über SVDRP übergebenen Daten erst in einer Datei zwischengespeichert und dann am Ende des PUTE-Befehls komplett an cSchedules::Read() übergeben werden. Daher sollte wohl nach jeder eingelesenen Zeile der Timeout neu aufgezogen werden.


    Könnt ihr bitte mal folgendes testen:



    Damit sollte es jetzt möglich sein, EPG-Daten einzulesen ohne daß Transponderdaten "dazwischenfunken" können.


    Falls sehr viele EPG-Daten von unterschiedlichen Kanälen eingelesen werden sollen, empfehle ich, dies für jeden Kanal einzeln zu tun. Also erst ein CLRE mit der ChannelID des Kanals, und dann mit PUTE die Daten für genau diesen Kanal. Dann ist die Hauptschleife nicht zu lange blockiert.


    Klaus

  • Ich möchte mal nen anderes Thema anschneiden. Wie ist nun die Änderung mit dem --rcu Parameter zu verstehen. ersetzt das rcu Plugin nur die --rcu Option, oder wird damit auch das remote Plugin hinfällig?


    Das remote Plugin hat damit nix zu tun. Bei dem rcu gehts ja um die Steuerung mit nem selbstbau IR Empfänger.


    So wie es aussieht wurde einfach der rcu Teil (den vermutlich eh nur noch sehr wenige Nutzen) in ein Plugin ausgelagert. Diese Änderung sollte also nur sehr wenige Betreffen.


    cu

  • Eine These wäre evtl. das die verkettete Liste durcheinanderkommt wenn man CLRE macht und Timer gesetzt werden, weil die Einträge die einen Timer haben nicht gelöscht werden.


    Das wurde in Version 1.7.23 korrigiert. Seitdem löscht auch ein CLRE für einen einzelnen Kanal die Events, die mit einem Timer verknüpft sind.


    Klaus

  • [...]
    Wenn der VDR durchläuft, dann ist das kein Problem, nur wenn der VDR mal neu gestartet wird, dann "vergisst" er, dass er die Evensts mit id 0 nicht anfassen soll.


    Dieses "Vergessen" könnte ich mir höchstens bei einem unkontrollierten Absturz erklären, wenn seit dem letzten PUTE die EPG-Daten noch nicht auf die Platte geschrieben wurden (was alle 10 Minuten passiert).
    Wenn VDR normal beendet wird, dann werden die EPG-Daten auf alle Fälle geschrieben.


    Kannst du eine reproduzierbare Vorgehensweise angeben, bei der das nicht wie erwartet funktioniert?


    Klaus

  • Falls sehr viele EPG-Daten von unterschiedlichen Kanälen eingelesen werden sollen, empfehle ich, dies für jeden Kanal einzeln zu tun. Also erst ein CLRE mit der ChannelID des Kanals, und dann mit PUTE die Daten für genau diesen Kanal. Dann ist die Hauptschleife nicht zu lange blockiert.


    Das hatte mein Script früher so gemacht, leider dauert dann das EPG einlesen so ca. 45 Min. und das finde ich, ist mir zu lange...


    Wäre es denn nicht möglich, eine SVDRP Funktion einzubauen, mit der man das EPG Handling abschalten kann?


    Z.B. so:


    CLRE # EPG Löschen
    ESTP # EPG Handling anhalten
    PUTE # EPG Daten in den VDR schreiben
    ESTT # EPG Handling wieder starten

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!