Wie auf EPG-Änderungen reagieren?

  • Hi,


    ein Bug des DLNA-Plugins ist noch, dass das ständige Scannen nach Änderungen dazu führt, dass die CPU-Last sehr hoch ist. Ich versuche das abzudämpfen, in dem ich nur eine Änderung an den Scanner mitteile, wenn die EPG-Events von "jetzt" geändert haben. Aber irgendwie ist das noch nicht das Gelbe vom Ei:



    Das geht doch sicher noch besser oder?


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • BTW: Das hatten wir neulich in nem anderen Thread... Wie herausfinden das die channels.conf bearbeitet wurde


    Channels.BeingEdited() & Channels.Modified() zu nutzen ist sinnlos.


    Channels.BeingEdited() sagt dir ob die Kanalliste gerade jetzt geändert wird. Und Channels.Modified() ist IMMER False (wird im VDR Main Loop zurückgesetzt).



    BTW2: Events können sich auch "mittendrin" ändern. Also es kommen nicht nur immer neue hintendran, mittendrin gibts auch Änderungen.



    Evtl. wirds Zeit für ne Anfrage im VDR Core Forum? Channels und Schedules können ja evtl. als Eigenschaft ne Versionnummer bekommen an der man erkennen kann obs Änderungen gab?


    cu

  • Wozu wird das benötigt / reicht es nicht den Event auf dem aktuell geschauten Kanal zu prüfen oder willst du eine komplette Liste ambieten?


    Wenn es um den aktuell geschauten ginge, könntest du in cStatusBlock bzw im mainthread des Block-plugins nachschauen. Da ist der vdr-interne Code abgeschaut. Ich habe aber länger nicht mehr geschaut (~1.7.21), ob kls da was geändert hat. Mir schwebt dunkel was von verbesserter API für EPG-Abfragen im Kopf rum.


    Ferner könnte man die time() Abfrage außerhalb der Schleife setzen und für die Addition des sleep-timouts eine weitere Variable außerhalb der Schleife setzen. Ich meine die time() Abfragen waren ziemlich teuer und letzteres spart zumindest eine Addtition pro Iteration.


    kls


    +1

    plugin-block: Download, Thread im Portal, Wiki
    plugin-sleeptimer: Download, Thread im Portal, Wiki
    VDR-Chat: Web-Chat, IRC
    [size=8]ASUS M2N-E, Athlon X2 4450B, 2GB DDR2, Technisat Skystar HD (TT-3200), Technisat Skystar HD2, Hauppauge WinTV Nova-T USB, GigaByte GT-630 - 4TB RAID5 + 6GB externes Journal @50 GB Crucial Adrenaline SSD DP-CT050M4SSC2 - BeQuiet SystemPower7 300W - wheezy/vdr2.0.1 - xbmc 13


  • Ist bereits vorgesehen für eine der kommenden Developer-Versionen.


    Wo das gerade Thema ist, schlage ich gleich etwas vor, das ich in einem privaten Patch für Channels bereits nutze: Ein Zeitstempel, wann die Information zuletzt empfangen wurde.


    Theoretisch könnte man alles zusammen auf die Spitze treiben, in dem man Zeitstempel für first-seen, last-seen und last-modified aufbewahrt, dann hat man alle Informationen verfügbar.


    In meiner Anwendung nutze ich diese Zusatzinfos, um das Auftauchen und Verschwinden von Channel-Announcements zu erfassen, und tote Kanäle löschen zu können.


    Gruß,


    Udo

Jetzt mitmachen!

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