7 days - der Diskussions und Entwicklungsthread

  • Ich hab den Fehler gefunden, warum beim Stoppen aller Aufnahmen immer noch gesplittete neue Aufnahmen gestartet werden ;)


    Im def remove7daysRecording(session, service): wurde zwar der Service mitgegeben, es wurden dann aber trotzdem alle 7days-Timer beendet =O

    Code
    1. for timer in session.nav.RecordTimer.timer_list:
    2. if timer.Filename.find("7days") is not -1:
    3. print "[7DAYS] removing", timer.name
    4. session.nav.RecordTimer.removeEntry(timer)

    Hab da jetzt noch die service-Prüfung eingebaut:

    Code
    1. for timer in session.nav.RecordTimer.timer_list:
    2. if timer.Filename.find("7days") is not -1 and timer.service_ref.ref.toString() == serviceref.rstrip("%0d"):
    3. print "[7DAYS] removing", timer.name
    4. session.nav.RecordTimer.removeEntry(timer)

    Heißt im Umkehrschluss, dass beim Entfernen eines Kanals aus dem 7days bisher auch alle anderen 7days-Timer kurz entfernt wurden, dann aber sofort wieder neu gestartet wurden ;)


    Irgendwie kommt da im service-String so ein "%0d" mit :/

    Deshalb musste ich das bei der Prüfung noch entfernen.


    Hab dann auch noch an 2 Stellen eine File/Path-Prüfung eingebaut, die bei mir früher zu einigen GS geführt hatten ;)

  • Super :thumbup:


    Hab jetzt gerade 9 HD-Sender parallel laufen, ohne dass Die Box zickt ;)

    (hab jetzt dazu mal das PTS auf USB deaktiviert)


    Dann gibt es noch ein Problem in der 0.24:

    Wenn man alle Aufnahmen über gelb stoppt und im Setup die Aufnahmen löschen lässt, werden auch die Ordner der 7days-Sender gelöscht.

    Wenn man dann neue Aufnahmen starten will mit gelb (oder beim autostart) fehlt der jeweilige Ordner und die Aufnahmen landen im Movie-Home.


    Da müsste irgendwo noch ne Prüfung rein, dass da der Pfad nochmal erzeugt wird, oder beim Removen evtl. den Pfad stehen lassen, wenn nur die Aufnahmen gestoppt werden, nicht aber der Sender komplett aus 7days entfernt wird.


    Weiß grad nicht, welche Variante besser ist und wo es am besten reinmüsste :/

    Vielleicht hast du ja eine schnelle Idee 8o

  • Na ja das Löschen der Sender directories stammt noch aus der Zeit als damit erkannt wurde ob es ein 7 days sender ist. Jetzt so das ja über das 7 days Bouquet läuft kannst du sie auch relativ problemlos bestehen lassen.


    Gerade wenn man löschen der Aufnahmen auf nein hat macht das sowieso keinen echten Sinn mehr.

  • Wenn man das Löschen der Aufnahmen auf "nein" hatte, gab es ja auch kein Problem. ;)

    Den Ordner immer stehen lassen macht allerdings auch keinen Sinn.

    Insbesondere dann nicht, wenn man den Sender aus 7days entfernt.

    Dann sollte auch der Ordner verschwinden.


    Hab jetzt bei remove7daysRecording(…) einfach einen Parameter "onlyStopRecord" reingenommen, wo dann das einfache Stoppen der Aufnahmen vom Löschen der Aufnahmen bei Entfernen des Senders unterschieden wird. ;)


    Komisch ist nur, das dass Stoppen der laufenden Aufnahmen (9 Sender) über gelb bei mir ca. 10 Sekunden mit Spinner dauert.

    Was ist denn am Removen von Timern so systemlastig ?

  • er muss dir dann die ganzen Threads einfangen und mit sync schreiben was die produziert haben plus die ganzen meta und sonstigen kleinen Files anschliessend löschen, das dauert trotz background Erase halt ...


    Ich mach dir einen neuen kit draus damit auch die anderen testen können.


    EDIT: eine neue Version aus deinem Code ist jetzt auf der ersten Seite - nur müssen wir das langsam auf Dreamy & gutemine ändern wenn ich mich weiter zurück lehne, aber im Moment freut es mich einfach nicht, was aber nichts mit Euch zu tun hat.

  • er muss dir dann die ganzen Threads einfangen und mit sync schreiben was die produziert haben plus die ganzen meta und sonstigen kleinen Files anschliessend löschen, das dauert trotz background Erase halt ...

    ich mach das Stoppen der Timer ja jetzt über gelb ohne löschen der Aufnahmen oder was meinst du mit "anschließend löschen" ?

    Er stoppt ja eigentlich nur 9 laufende Timer.

    Braucht der dafür echt 10-15 sek mit Spinner ??

  • laufende Timer sind halt async Threads die auf dieHardidk schaufeln und denen muss man erst sagen das Ihre Zeit gekommen ist, dann müssen sie sich auf den Tod vorbereiten und dann müssen sie auch noch ordentlich synchron beerdigt werden, bei einem oder 2 ist das nichts besonderes, aber so viel synchroner IO gleichzeitg und wenn es dann 9 sind verursacht dir halt die Sanduhr.

  • Ok, das ist schon etwas "unnormal" wenn man permanent 9 und mehr HD-Sender parallel aufnimmt ;)

    Da würde ich DP auch gar keinen Vorwurf machen wollen.

    Das ist dann schon nicht mehr der normale Nutzungsfall ;)


    Aber ich bin erstaunt, wie gut die Box die 9 Aufnahmen jetzt bei mir verkraftet.

    Da hat das PTS auf USB wohl deutlich mehr Einfluss als ein paar mehr Aufnahmen.

  • Hallo


    Die "verbogene" Funktion "fillTimerListHide7days" sorgt bei aktuellem DreamOS dafür, dass die Timerliste beim Aufräumen nicht korrekt refreshed wird ;)


    Hiermit geht es (die letzten beiden Zeilen sind neu):

  • ich habe jetzt die box mal neu aufgesetzt und momentan laufen 8 hd aufnahmen parallel und die box lässt sich flüssig bedienen. ich beobachte das jetzt mal weiter.

    two beer or not two beer, that's the question!


    rotespony.jpg


    Mein kleines rotes Pony :love:

  • Ah :thumbup:

    Da ich das SerienFilm-Plugin nicht drauf habe, gibt's hier wohl auch keine Probleme ;)


    Hatte mich von der Fehlermeldung mit der InfoBarMoviePlayer leiten lassen und dachte, es hängt mit dem reinen MoviePlayer zusammen ;)

  • Hab die 0.28 mal getestet.

    Da knallt es bei mir jetzt beim AMS und beim MoviePlayer.


    Code
    1. Screen <class 'Screens.InfoBar.MoviePlayer'>((<enigma.eServiceReference; proxy of <Swig Object of type 'eServiceReference *' at 0x9e3f5b48> >,), {}): <type 'exceptions.TypeError'>
    2. Traceback (most recent call last):
    3. File "/usr/lib/enigma2/python/mytest.py", line 363, in create
    4. return screen(self, *arguments, **kwargs)
    5. File "/usr/lib/enigma2/python/Plugins/Extensions/pipzap/plugin.py", line 182, in MoviePlayer__init__
    6. baseMethods.MoviePlayer__init__(self, *args, **kwargs)
    7. File "/usr/lib/enigma2/python/Plugins/Extensions/7days/plugin.py", line 331, in InfoBarMoviePlayer7days__init__
    8. InfoBarMoviePlayer__init__ori(self, session, service, slist, lastservice)
    9. TypeError: __init__() takes exactly 3 arguments (5 given)


    Hab den Code mal angepasst (Abfrage, ob slist = None ist), so geht es bei mir wieder ;)

    Ist nur die Frage, ob es dann bei dem anderen User auch noch klappt :/