vdr-live @ vdr-2.3.1 ?

  • Hat jemand schon vdr-live an 2.3.1 angepasst?

    Ich würde es eigentlich gerne benutzen, aber alles was ich finde ist alt und
    z.Z. scheitere ich an den extremen Änderungen zwischen vdr-2.2 und 2.3.1.


    Einfach mal so nach Schema 'X' die Änderungen einzupflegen funktioniert bei diesem Plugin eher nicht,
    und es wär schade Zeit zu verschwenden dafür, wenn jmd anders etwas fertig hat
    Man kommt wegen tntnet, gleichzeitigem Zugriff auf EPG , Channels und Aufzeichnungen bei dem Plugin in Teufels Küche.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • ..schade.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Ja, das ganze ist etwas überladen. Und die Locking Mechanismen im Plugin wären zu VDRs gedoppelt.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Am ehesten würde es sich vielleicht anbieten, ein externes Programm zu schreiben, welches mit dem vdr über restfulapi kommuniziert.
    Ich brauche da auch noch einen Ersatz (neben epgsearch).

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Alles neu, wenn alles eigentlich schon existiert?
    Und xml basiert Daten versenden um sie auf der Empfängerseite mühsam per dom parser zu entpacken? Hm..

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Alles neu, wenn alles eigentlich schon existiert?
    Und xml basiert Daten versenden um sie auf der Empfängerseite mühsam per dom parser zu entpacken? Hm..


    Nö, das restfulapi plugin kann auch JSON. Als ich damit anfing sogar ausschließlich.

    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Der Code von live (wie auch epgsearch) ist mir zu komplex und auch in einem anderen Stil programmiert, mit dem ich nicht so gut um kann. Ich hab bei beiden versucht, sie an 2.3.1 anzupassen, aber es fehlt halt der letzte Rest. Es läuft einfach nicht rund oder hängt mal hier oder mal da. Manchmal ist es auch nicht verkehrt, mit dem Gelernten von vorne zu beginnen.

    Lars

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Der Style an sich ist völlig ok, aber alles ist wirklich sehr komplex gemacht. Merkwürdig ist nur die Formatierung, Tabs und Space wahlweise und kaum leserlich. Und wozu dieser RecordingsManager unbedingt nötig ist, ist mir nicht ganz klar.

    Hast du einen diff dieses Versuches bei live?

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Hat jemand schon vdr-live an 2.3.1 angepasst?

    Ich würde es eigentlich gerne benutzen, aber alles was ich finde ist alt und
    z.Z. scheitere ich an den extremen Änderungen zwischen vdr-2.2 und 2.3.1.


    Einfach mal so nach Schema 'X' die Änderungen einzupflegen funktioniert bei diesem Plugin eher nicht,
    und es wär schade Zeit zu verschwenden dafür, wenn jmd anders etwas fertig hat
    Man kommt wegen tntnet, gleichzeitigem Zugriff auf EPG , Channels und Aufzeichnungen bei dem Plugin in Teufels Küche.

    Ich hatte mich die letzten Tage mal daran gemacht, muss allerdings sagen dass ich von den Internas des VDR im Allgemeinen und von Live im Besonderen reichlich wenig verstehe. Wie dem auch sei, das Plugin lässt sich compilieren und läuft auch soweit ich das beurteilen kann. Ich verwende davon allerdings nicht viele Funktionen.

    Drei Dinge haben sich leider nicht anpassen lassen, da die Methoden aus welchen Gründen auch immer nicht mehr vorhanden sind:


    1. Timers: Timers->Modified gibt es nicht mehr, es wird halt immer true zurückgegeben

    Code
    #if VDRVERSNUM >= 20301
                        	bool Modified() { return true; }
    #else
                        	bool Modified() { return Timers.Modified(m_state); }
    #endif

    2. Timers: Timers->BeingEdited gibt es nicht mehr, diese Überprüfung finded halt nicht mehr statt

    Code
    +#if VDRVERSNUM < 20301
                	if ( Timers.BeingEdited() ) {
                        	StoreError( timerData, tr("Timers are being edited - try again later") );
                        	return;
                	}
    +#endif

    3. Recordings: Recordings->StateChanged gibt es ebenfalls nicht mehr, es wird halt immer true angenommen

    Code
    #if VDRVERSNUM >= 20301
                	bool stateChanged = true;
    #else
                	bool stateChanged = Recordings.StateChanged(m_recordingsState);
    #endif
                	if (stateChanged || (!m_recTree) || (!m_recList) || (!m_recDirs)) {

    Bei meinen Tests mit maximal 3 Timern und 3 Recordings dürfte das sich nicht nachteilig auswirken, wie das allerdings ist wenn man viele Recordings hat kann ich nicht beurteilen, wenn ich mal 10 Aufnahmen habe dann ist das schon viel :]

    Für Interessierte habe ich meinen Patch hier mit beigelegt.

    Files

    Kodi 18.7 & 19.0a1 @ openSUSE 13.1 x86_64 - Asus E35M1-I DELUXE | 8GB Ram | 250G 2.5" HD
    Kodi 19.0a1 on 1st Raspberry Pi B @ XBian | Kodi 19.0a1 on Raspberry Pi 3 @ XBian | Kodi 17.6 on SolidRun i.MX6 @ XBian
    VDR 2.4.1 with Dynamite, Epgsearch, Live, Streamdev-server, Vnsiserver and Wirbelscan Plugin on Cubieboard2 @ Debian Stretch

  • Das sind auch ungefähr die Stellen, an denen ich dann aufgegeben habe. Zumindest bei Nummer 3 muss man sich dort irgendwo einen StateKey merken, und mit diesem die Recordings überprüfen, ob sie sich seit dem letzten mal geändert haben. Wenn man immer "true" annimmt, wird live ständig was tun und unnötig CPU verbrennen.

    Ähnliches gilt für Timers.BeingEdited. Da muss man ggf. prüfen, ob jemand einen Write-Lock auf die Timer hat und dann entsprechend aussteigen.

    Und das "Modified" der Timer fragt man auch über einen StateKey ab, den man vorhalten muss.

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Das sind auch ungefähr die Stellen, an denen ich dann aufgegeben habe. Zumindest bei Nummer 3 muss man sich dort irgendwo einen StateKey merken, und mit diesem die Recordings überprüfen, ob sie sich seit dem letzten mal geändert haben. Wenn man immer "true" annimmt, wird live ständig was tun und unnötig CPU verbrennen.

    Davon ging ich auch aus, aber wenn die Funktionen von dem Erleuchteten (sorry für den Sarkasmus) wegoptimiert wurden, dann geht das halt eben nicht. Bei meinem Kurztest gestern abend konnte ich aber keine permanente CPU Last erkennen. Ich vermute mal, dass das nur zum Tragen kommt wenn man auf der Web-Oberfläche herumklickt.

    Ähnliches gilt für Timers.BeingEdited. Da muss man ggf. prüfen, ob jemand einen Write-Lock auf die Timer hat und dann entsprechend aussteigen.

    Das bringt aber auch nix, da man ja nicht zwangsläufig jeden Write-Lock mitbekommt. Sollte aber auch egal sein, da ein LOCK_TIMERS_WRITE ja solange wartet bis eventuell bereits vorhandene Write Locks wieder entfernt wurden.

    Und das "Modified" der Timer fragt man auch über einen StateKey ab, den man vorhalten muss.

    Völlig richtig. Aber was nicht vorhanden ist lässt sich halt auch nicht verwenden. Tolle Weiterentwicklung kann ich da nur sagen X(

    Kodi 18.7 & 19.0a1 @ openSUSE 13.1 x86_64 - Asus E35M1-I DELUXE | 8GB Ram | 250G 2.5" HD
    Kodi 19.0a1 on 1st Raspberry Pi B @ XBian | Kodi 19.0a1 on Raspberry Pi 3 @ XBian | Kodi 17.6 on SolidRun i.MX6 @ XBian
    VDR 2.4.1 with Dynamite, Epgsearch, Live, Streamdev-server, Vnsiserver and Wirbelscan Plugin on Cubieboard2 @ Debian Stretch

    Edited once, last by Nachteule (October 5, 2016 at 8:19 PM).

  • Ich seh grad,

    Code
    Timers.BeingEdited()


    ist im Epgsearch Plugin auch nur deaktiviert worden

    Kodi 18.7 & 19.0a1 @ openSUSE 13.1 x86_64 - Asus E35M1-I DELUXE | 8GB Ram | 250G 2.5" HD
    Kodi 19.0a1 on 1st Raspberry Pi B @ XBian | Kodi 19.0a1 on Raspberry Pi 3 @ XBian | Kodi 17.6 on SolidRun i.MX6 @ XBian
    VDR 2.4.1 with Dynamite, Epgsearch, Live, Streamdev-server, Vnsiserver and Wirbelscan Plugin on Cubieboard2 @ Debian Stretch

  • Für Timers->Modified war meine Idee eher, einen std::vector mit den bekannten Timern zu verwenden. Wenn man erst prüft ob die ID gleich ist und erst danach der Timer als const char* gleich ist, dann sollte sich der Aufwand in Grezen halten.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Nachteule: Gute Arbeit, passt soweit. Ich kann zwar nicht alles ausprobieren, aber was ich brauche funktioniert. Für 1) und 3) hab ich mir noch workarounds gebastelt, aber prinzipiell ist das nicht nötig.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Blöde Frage: Könnte man die fehlenden Funktionen nicht einfach in einer Bibliothek oder so nachbauen?
    Das müsste man dann nur einmal machen und die Änderungen in den Plugins wären gering.

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Warum wurden die überhaupt entfernt? Das ist die Frage.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Die Nummer 2 war irgendwie vom alten Lockningsystem.
    Wenn ich es richtig sehe ist es durch das Makro LOCK_TIMERS_WRITE ersetzt. Es müsste also von Nachteule schon korrekt umgesetzt sein.
    - Ich hab es eben aber nur kurz überflogen.

    Bei den anderen keine Ahnung.

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Die Nummer 2 war irgendwie vom alten Lockningsystem.
    Wenn ich es richtig sehe ist es durch das Makro LOCK_TIMERS_WRITE ersetzt.

    Das würde ich auch so sehen

    Kodi 18.7 & 19.0a1 @ openSUSE 13.1 x86_64 - Asus E35M1-I DELUXE | 8GB Ram | 250G 2.5" HD
    Kodi 19.0a1 on 1st Raspberry Pi B @ XBian | Kodi 19.0a1 on Raspberry Pi 3 @ XBian | Kodi 17.6 on SolidRun i.MX6 @ XBian
    VDR 2.4.1 with Dynamite, Epgsearch, Live, Streamdev-server, Vnsiserver and Wirbelscan Plugin on Cubieboard2 @ Debian Stretch

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!