Externer EPG - Vorschlag für eine Plugin-Schnittstelle


  • Bedeutet das dann nicht faktisch, dass der im VDR eingebaute "PUTE"-Befehl dann nur noch brauchbar ist, wenn man zusätzlich dieses Plugin lädt?


    Wenn ich es mir recht überlege, dann braucht's dieses Plugin wohl überhaupt nicht, denn wenn ein Event eine Table-ID hat, die kleiner ist als 0x4E, dann wird er sowieso nicht verändert:


    Code
    uchar TableID = pEvent->TableID();
             // If the new event has a higher table ID, let's skip it.
             // The lower the table ID, the more "current" the information.
             if (Tid > TableID)
                continue;


    Klaus

  • Moin!


    Kann es sein, dass aber vorher der Running-Status usw. von einem 0-Event angepasst wurde, was dann jetzt nicht mehr passieren würde?
    Ich versuche nur im alten vdr nachzuvollziehen, was er so bei "ExternalData" alles (nicht) gemacht hat.


    Lars.


  • Kann es sein, dass aber vorher der Running-Status usw. von einem 0-Event angepasst wurde, was dann jetzt nicht mehr passieren würde?
    Ich versuche nur im alten vdr nachzuvollziehen, was er so bei "ExternalData" alles (nicht) gemacht hat.


    Das ist wohl so, aber wirklich interessant ist das eigentlich eh nur für VPS-Aufnahmen, und die werden mit externem EPG kaum funktionieren, da der Wert des PDC-Descriptors nicht bekannt sein dürfte.


    Klaus

  • Moin!


    Das ist wohl so, aber wirklich interessant ist das eigentlich eh nur für VPS-Aufnahmen, und die werden mit externem EPG kaum funktionieren, da der Wert des PDC-Descriptors nicht bekannt sein dürfte.


    Ok. Da du da aber sicherlich mehr Überblick haben wirst als ich, gibt es evtl. da noch andere Dinge, die vielleicht trotz Table-Id == 0 passieren sollten?
    Das mit dem Running-Status war als Beispiel gedacht. Mir fällt da zumindest noch der ComponentDescriptorTag auf.


    Ich kann schon verstehen, diese Table-0-Sache aus dieser Monsterschleife zu entfernen. Ist nicht einfach zu lesen... :]


    Lars.


  • Ok. Da du da aber sicherlich mehr Überblick haben wirst als ich, gibt es evtl. da noch andere Dinge, die vielleicht trotz Table-Id == 0 passieren sollten?
    Das mit dem Running-Status war als Beispiel gedacht. Mir fällt da zumindest noch der ComponentDescriptorTag auf.


    Ich kann schon verstehen, diese Table-0-Sache aus dieser Monsterschleife zu entfernen. Ist nicht einfach zu lesen... :]


    Tja, 'n bisschen Schwund ist immer ;)


    Aber wenn wir hier schon tiefer eingreifen, dann müssen solche Sonderlocken auf jeden Fall raus.
    Ich sehe es eh kommen, daß es ein Super-Wuper-Monster-EPG-Plugin geben wird, mit tausenden von Parametern und Optionen und etlichen verschiedenen Datenbanken - da können sich einige dann so richtig austoben... ;)


    Klaus

  • Ich sehe es eh kommen, daß es ein Super-Wuper-Monster-EPG-Plugin geben wird, mit tausenden von Parametern und Optionen und etlichen verschiedenen Datenbanken


    Ich sehe es ehr kommen, dass gar kein Plugin kommt. War ja bei TrueColor auch so, erst kreischen alle, dass der VDR das unbedingt braucht, und wie viele Plugins nutzen es jetzt wirklich?

  • Moin!


    Ich sehe es ehr kommen, dass gar kein Plugin kommt. War ja bei TrueColor auch so, erst kreischen alle, dass der VDR das unbedingt braucht, und wie viele Plugins nutzen es jetzt wirklich?


    Ich werde auf alle Fälle eins schreiben...
    Ich weiß nur noch nicht, wofür: tvmovie, epgdata, "Serienepisodentitel aus Datei"...


    Lars.

  • Zitat


    War ja bei TrueColor auch so, erst kreischen alle, dass der VDR das unbedingt braucht, und wie viele Plugins nutzen es jetzt wirklich?



    davon abgesehen, dass es eh völliger bullshit ist.
    es gehört hier nicht in diesen thread.


    ich bin froh, dass kls endlich mal vorher was "bespricht" bevor es umgesetzt wird.
    natürlich muss es (epg-plugin) dann auch jemand machen, aber das schon in diesem thread totreden ist bescheuert.


  • Das ist wohl so, aber wirklich interessant ist das eigentlich eh nur für VPS-Aufnahmen, und die werden mit externem EPG kaum funktionieren, da der Wert des PDC-Descriptors nicht bekannt sein dürfte.


    Klaus


    Lässt sich soetwas nicht über die Schnittstelle durch "das Plugin" auslesen und wieder miteinmischen?


    CafeDelMar

  • Moin!


    Lässt sich soetwas nicht über die Schnittstelle durch "das Plugin" auslesen und wieder miteinmischen?


    Ja, müsste gehen.


    Lars.

  • Es gibt Leute die benutzen den VDR als reinen Server und dafür ist die SVDRP-API eine wichtige Schnittstelle, ohne sich mit Hochsprachen auskennen zu müssen. Von daher wäre es schön, diese Schnittstelle jetzt nicht zu vernachlässigen. Es gibt etliche Beispiele dafür die das rechtfertigen würden.


    In meinem Fall möchte ich einzelne/viele EPG-Einträge ändern können, die dann der VDR nur noch ändert, wenn die Sendeanstalt ein "Update" schickt.

    Server: CPU J1900 | 1x CineS2 | Debian Bullseye headless| VDR 2.6.3
    Client: 2x Himbeere mit vdr

  • Moin!


    https://github.com/flensrocker/vdr-plugin-noepg
    Hier schon mal ein erster Entwurf eines noEPG-Plugins auf Basis des neuen cEpgHandler.
    Ist natürlich noch total ungetestet... :]


    Ich werde es anpassen und verfeinern, sobald der passende vdr raus ist.
    Konfiguration über OSD soll dann auch noch kommen.
    Noch muss man $(CONFDIR)/plugins/noepg/settings.conf manuell editieren.


    Code
    mode=blacklist
    channelid
    channelid
    channelid


    oder

    Code
    mode=whitelist
    channelid
    channelid
    channelid


    Lars.

  • Über die neue Schnittstelle lassen sich ja nun die bereits vom Sender übertragenen EPG-Daten mit externen Daten aufhübschen. Aber was ist, wenn man EPG für einen längeren Zeitraum haben möchte oder im Falle eines ausgefallenen Sender-EPGs (kommt bei mir öfter mal vor) dies alternativ extern haben möchte?



    Dann müsste das externe EPG doch zusätzlich noch für die Tage, für die der Sender noch kein EPG hat, trotzdem eingespielt werden, oder?
    Und wird dies dann, sobald Daten vorliegen, "korrekt" überschrieben? Ganz wichtig: Bleiben dann gesetzte Timer erhalten?


    Wenn dies nicht der Fall sein sollte: Bei der verworfenen "0x02" Lösung wäre doch eine Anpassung der externen Daten an die Sender-Daten vorgenommen worden, lässt sich das auch irgendwie mit der neuen Plugin-Schnittstelle realisieren?


    CafeDelMar


    PS: Ich beschäftige mich gerade tiefer mit dem Thema und arbeite auch an einer Plugin-Lösung, aber einige Fragen sind da eben noch offen. ;)

  • Moin!


    Ja, es ist richtig, dass die EpgHandler nur für gesendetes EPG aufgerufen werden.


    Um zusätzliche EPG-Infos zu bekommen, kannst du aber wie bisher einfach cEvent-Objekte in die cSchedules pumpen. Nur musst du dann eben selbst prüfen, ob das Event schon da ist oder nicht (evtl. von deinem EpgHandler aus in deiner Datenbank die Events als "gesendet" mit der Event-Id markieren?).
    Alle Events werden jetzt vom vdr überschrieben, egal, welche Table-Id du dem bisher ungesendeten Event verpasst, gesucht wird das Event über die Startzeit bzw. die Event-Id, wenn die erste Suche kein Ergebnis liefert.


    Die EPG-Verarbeitung des vdrs kann komplett vom Plugin übersteuert werden. D.h. du importierst einfach fröhlich dein EPG von sonstwoher, und "hübscht" es mit den Infos aus dem DVB-Stom auf, entweder im HandleEitEvent (d.h. alles selbst machen, vor allem die cEvent-Objekte erstellen) oder in einer der vielen sonstigen Funktionen für die einzelnen Felder (dann erstellt der vdr das cEvent).


    Lars.

Jetzt mitmachen!

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