Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17
  1. #1
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     

    Timer-Aufnahmen fehlen wegen belegter Tuner

    Im Normalfall klappt es ja einwandfrei, bei vollständig belegten Tunern einen weiteren freizugeben, um eine Aufnahme zu starten. Ich verwende die Einstellung "always_zap", so dass in RecordTimer.py die Umschaltung des Live-Programms erfolgt:

    Code:
    In order to record a timer, the TV was switched to the recording service!
    Allerdings sind Situationen denkbar, in denen das allein nicht ausreichend ist, denn

    • PIP
    • EPGrefresh (in den Varianten PIP oder Pseudo-Aufnahme)
    • Streaming


    können ebenfalls Tuner blockieren. Da ich fehlende Aufnahmen für ein "no go" halte, denke ich, dass man da etwas tun sollte.

    Außerdem stört mich, dass bei den EPG-Pseudo-Aufnahmen und bei Streaming das "record"-Symbol an ist (ich will sehen können, ob wirklich eine echte Aufnahme läuft) und dass bei Start und Ende jeder kurzen Pseudo-Aufnahme die blaue LED kurz blinkt (das nervt).

    Ich würde also gerne in RecordState.py oder so etwas einbauen, um die Situationen zu unterscheiden, und in RecordTimer.py bei startenden Aufnahmen ggf. PIP, EPGrefresh etc. deaktivieren, um weitere Tuner frei zu bekommen.

    Mir fehlen jedoch derzeit noch Ansatzpunkte, zu erkennen, wer welche Tuner belegt. Ob PIP aktiv ist, finde ich heraus mit

    Code:
    InfoBarPiP.pipShown(InfoBar.instance)
    aber bei EPGrefresh per Pseudo-Aufnahme und bei Streaming habe ich noch nichts gefunden. Mit

    Code:
    session.nav.getRecordings()
    bekomme ich eine Liste der Aufnahmen (bunt gemischt, Timer und Pseudo-Aufnahmen), die Anzahl bekomme ich mit

    Code:
    len(session.nav.getRecordings())
    aber jeder Eintrag ist ein "iRecordableServicePtr" (enigma2: enigma.iRecordableServicePtr Class Reference), und ich weiß nicht, was er enthält und wie ich da ran komme. Hat jemand eine Idee?
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

    •   Alt Advertising

       

  2. #2
    Avatar von Papi2000
    Registriert seit
    20.04.2013
    Beiträge
    24.824
    Thanks (gegeben)
    4679
    Thanks (bekommen)
    9077
    Total Downloaded
    596,61 MB
    Total Downloaded
    596,61 MB
    ReceiverDanke
    Box 1:
    GB Q4K-SC / UE4K-SC / UE4K-C
     
     
    Box 2:
    GigaBlue Q-SSC / Q+-SSC
     
     
    Box 3:
    DM900uhd-SS / Vu+Duo
     
     
    Box 4:
    ZGemma H7/H9 SF8008
     
     
    Box 5:
    diverse andere . . .
     
     
    Dann muß aber zwingend eine alternative Anzeige/Signalisierung für das laufende epg-Refresh und/oder Streaming her...
    Grüßle
    Ralf
    ---------------------------------------------
    Gigablue Quad4K-mixed, UE4K, Trio4K, Quad_Plus-SSC, UE_Plus-SC, X2/X3-SC, UltraUE-SC, ...
    Astra 19.2E UniCable & KabelBW, oATV/teamBlue
    (u.a.: DM900uhd,Vu+Duo,ZGemma H9Twin & H7S), PC-DVB-S/C/T, Xtreamer, BDP5200, Philips 24PFS4022/12, 65OLED855/12,UE32C5700, RPi3+
    ---- Einen Receiver kann sich jeder kaufen - Eine stabile E²-Box muß man sich verdienen! ----



  3. Thanks Fischreiher bedankten sich
  4. #3
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Ich hatte zunächt geplant, einstellbar entweder wie bisher "recording" anzuzeigen oder gar nichts. Einen anderen Text oder ein anderes Symbol anzuzeigen, müsste ja in jeder Skin implementiert werden, oder fällt Dir ein Weg ein, dass es automatisch mit jeder Skin läuft?
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  5. #4
    Avatar von Papi2000
    Registriert seit
    20.04.2013
    Beiträge
    24.824
    Thanks (gegeben)
    4679
    Thanks (bekommen)
    9077
    Total Downloaded
    596,61 MB
    Total Downloaded
    596,61 MB
    ReceiverDanke
    Box 1:
    GB Q4K-SC / UE4K-SC / UE4K-C
     
     
    Box 2:
    GigaBlue Q-SSC / Q+-SSC
     
     
    Box 3:
    DM900uhd-SS / Vu+Duo
     
     
    Box 4:
    ZGemma H7/H9 SF8008
     
     
    Box 5:
    diverse andere . . .
     
     
    Nein. Aber abschaltbar wäre eine gute Lösung dafür.
    Grüßle
    Ralf
    ---------------------------------------------
    Gigablue Quad4K-mixed, UE4K, Trio4K, Quad_Plus-SSC, UE_Plus-SC, X2/X3-SC, UltraUE-SC, ...
    Astra 19.2E UniCable & KabelBW, oATV/teamBlue
    (u.a.: DM900uhd,Vu+Duo,ZGemma H9Twin & H7S), PC-DVB-S/C/T, Xtreamer, BDP5200, Philips 24PFS4022/12, 65OLED855/12,UE32C5700, RPi3+
    ---- Einen Receiver kann sich jeder kaufen - Eine stabile E²-Box muß man sich verdienen! ----



  6. #5
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Ich habe nachgedacht. Die Lösung erfordert, dass zusätzliche Informationen zu jeder (Pseudo)Aufnahme gespeichert werden. Ich dachte an einen enum, z.B.:

    Code:
        enum { 
          isRealRecording        =     1, 
          isStreaming            =     2, 
          isPseudoRecording      =     4, 
          isUnknownRecording     =     8, 
          isFromTimer            =  0x10, 
          isFromInstantRecording =  0x20, 
          isFromEPGrefresh       =  0x40 
          isAnyRecording         =  0x7F 
        };
    Jede Instanz, die eine Aufnahme startet, z.B.



    sollte die Funktion "recordService" mit (mindestens) einem der oben definierten Flags aufrufen, z.B. in EPGrefresh:
    Code:
         self.__service =  self.navcore.recordService(service,False,isPseudoRecording|isFromEPGrefresh)
    Die Funktion recordService ist definiert in

    und ruft ihrerseits die 'recordService' aus

    und diese die 'recordService' aus

    Dort wird eine Struktur verwaltet (EDIT: 'm_recordings', zu ergänzen um 'm_recordings_types'), in der zu jeder Aufnahme zusätzlich die neuen Flags gespeichert werden könnten.

    Des weiteren bräuchte man aus Python Zugriff auf diese Flags. Derzeit holt sich z.B. die 'eListboxServiceContent::checkServiceIsRecorded' aus

    die Information, ob auf einem Service eine Aufnahme läuft und gibt bereits einige Flags zurück wie 'isRecorded', und danach wird die Farbe eines Senders in der Senderliste auf rot gesetzt:
    Code:
    listboxservice.cpp: m_color_set[serviceRecorded]
    
    Components/ServiceList.py:  self.l.setColor(eListboxServiceContent.serviceRecorded, parseColor(value))
    Bei den Symbolen in der Skin findet man in der Skin z.B.
    Code:
    widget source="session.RecordState"
    was definiert ist über


    und dort wird benutzt
    Code:
    recs = self.session.nav.getRecordings()
    was wieder (siehe oben) aus

    • Navigation.py
    • pNavigation
    • eNavigation

    kommt. Hier bräuchte man eine Version von
    Code:
         self.session.nav.getRecordings(flags)
    die nur dann True zurückgibt, wenn die Aufnahme mit den angegebenen Flags gestartet wurde.

    Mit den neuen Flags könnte man nun z.B. Pseudo-Aufnahmen eine andere Farbe geben, andere Symbole zuweisen und natürlich Pseudo-Aufnahmen oder Streaming nach einer vom Benutzer festzulegenden Priorität terminieren, wenn eine Timer-Aufnahme gestartet werden soll.

    Ich traue mir dabei zu, einiges im Python-Teil zu implementieren. Hilfe benötige ich jedoch im C-Teil. Ich möchte nochmal die wesentliche Teilaufgabe zusammenfassen:

    • recordService wird mit Flags aufgerufen und speichert diese
    • getRecordings wird mit Flags aufgerufen und benutzt diese als Maske, liefert also nur Aufnahmen zurück, bei denen 'gespeicherteFlags & übergebeneFlags != 0' ist

    Beide Änderungen beschränken sich auf

    • Navigation.py
    • pNavigation (pcore.cpp)
    • eNavigation (core.cpp)

    dabei muss die Datenstruktur (EDIT)
    Code:
     m_recordings_types
    hinzugefügt werden, die die Flags speichert. Es sollte natürlich kompatibel zu den aktuellen Python-Sourcen sein. Per default sollte "isUnknownRecording" eingetragen werden und bei der Auswertung sollte der Joker "isAnyRecording" als Maske verwendet werden.

    Könnte das jemand übernehmen?
    Geändert von Fischreiher (29.03.2015 um 12:34 Uhr)
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  7. #6
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Ich habe einen interessanten commit gefunden, der zeigt, welche Dateien alle beteiligt sind, um zwischen Python und C++ zu interfacen, genau an dieser Stelle (Nav und getRecordings): https://github.com/openatv/enigma2/c...7041ed8a367e99
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  8. #7
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Um die Flags (Beitrag #5 oben) zu speichern, die den Typ der Aufnahme beschreiben, könnte man vermutlich eine dritte Liste anlegen neben denen, die die connections und die services einer Aufnahme speichern:

    core.h (https://github.com/openatv/enigma2/b.../nav/pcore.h):
    Code:
        std::map<ePtr<iRecordableService>, ePtr<eConnection>, std::less<iRecordableService*> > m_recordings;
        std::map<ePtr<iRecordableService>, eServiceReference, std::less<iRecordableService*> > m_recordings_services;
        std::map<ePtr<iRecordableService>, unsigned int,      std::less<iRecordableService*> > m_recordings_types;
    core.cpp (https://github.com/openatv/enigma2/b...av/pcore.cpp):
    Code:
    RESULT eNavigation::recordService(const eServiceReference &ref, ePtr<iRecordableService> &service, bool simulate, unsigned int recordingTypeFlags = isUnknownRecording)
    [...]
                m_recordings[service]=conn;
                m_recordings_services[service]=ref;
                m_recordings_types[service]=recordingTypeFlags;
    Das Löschen der Flags müsste in core.cpp erfolgen
    Code:
    RESULT eNavigation::stopRecordService(ePtr<iRecordableService> &service)
    [...]
                m_recordings_types.erase(..?..);
    Dann könnte man nur solche Aufnahmen holen, die einer bestimmten Maske der Flags entsprechen (z.B. nur "echte" Aufnahmen, kein Streaming). In core.cpp:
    Code:
    void eNavigation::getRecordings(std::vector<ePtr<iRecordableService> > &recordings, bool simulate, unsigned int recordingTypeFlags = isAnyRecording)
    [...]
                if (m_recordings_types(..?..) & recordingTypeFlags)
                    recordings.push_back(it->first);
    Entsprechend kann man auch die Sender holen, auf denen Aufnahmen eines bestimmten Typs laufen. In core.h:
    Code:
                std::map<ePtr<iRecordableService>, eServiceReference,  std::less<iRecordableService*> > getRecordingsServices(unsigned int recordingTypeFlags = isAnyRecording) {iterate through m_recordings_services and return those where (m_recordings_types(..?..) & recordingTypeFlags)}
    Was ich absolut nicht hinkriege, sind die Iteratoren oben ...

    EDIT: Betacentauri hat freundlicherweise eine erste compilierbare Version des C-Teils implementiert, ich habe sie erweitert, und ich kann bereits in der Senderliste die Sender, auf denen Pseudo-Aufnahmen laufen, andersfarbig anzeigen.
    Geändert von Fischreiher (29.03.2015 um 12:49 Uhr)
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  9. #8
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Nach harter Arbeit (vielen Dank auch an Betacentauri für die Hilfe im C++ Teil) kann ich eine recht gut getestete Beta-Version präsentieren:

    Zu jeder Aufnahme wird der Typ der Aufnahme gespeichert:
    • Aufnahmen
    • Pseudo-Aufnahmen (z.B. EPG refresh)
    • Streaming / Transcoding


    Wenn eine Timer-Aufnahme starten soll, aber kein Tuner frei ist, wird nach und nach alles beendet, was Tuner belegt, bis ein Tuner frei ist, und zwar in der Reihenfolge
    1. PIP beenden
    2. Pseudo-Aufnahmen beenden
    3. Streaming / Transcoding beenden
    4. Live-TV auf den aufzunehmenden Sender schalten.


    Zusätzlich wird die Information wie folgt verwendet:
    • Die Sichtbarkeit des 'recording'-Symbols in GUI und Display kann auf bestimmte Aufnahmetypen beschränkt werden (konfigurierbar, z.B. nur sichtbar bei echten Aufnahmen)
    • Die Warnung beim Neustart, dass Aufnahmen laufen, kann auf bestimmte Aufnahmetypen beschränkt werden (konfigurierbar, z.B. Warnung nur bei echten Aufnahmen und Streaming)
    • In der Senderliste können Sender je nach Aufnahmetyp in unterschiedlichen Farben dargestellt werden (skinbar)


    Einschränkungen beim "frei machen" eines Tuners für Timeraufnahmen:
    • PIP, pseudo-Aufnahmen und Streaming / Transcoding werden inkrementell beendet, ohne zuvor zu prüfen, ob dies wirklich einen Tuner frei machen wird. Liegt z.B. der PIP-Sender auf dem gleichen Transponder wie ein aufgenommener Sender, ist es nicht wirklich hilfreich, PIP zu beenden.
    • Streaming (port 8001) benutzt 'm_record->connectEvent', nicht ' recordService', daher erscheinen die Sender nicht in 'm_recordings_services', können daher nicht farblich in der Senderliste gekennzeichnet werden und nicht beendet werden. Streaming von 'connectEvent' auf 'recordService' umzustellen, könnte helfen.
    • Transcoding (port 8002) benutzt 'recordService', der Sender wird farblich markiert, aber Transcoding über 'stopRecordService' zu beenden, funktioniert nicht. Der 'service' wird aus der Liste 'm_recordings_services' gelöscht aber Transcoding nicht gestoppt.


    Die Beta-Version gibt es hier zum Testen:


    Skinnen lassen sich die Farben für jeden Aufnahmetyp wie folgt in der skin.xml:
    Code:
      <screen name="ChannelSelection" [...]>
          <screen name="SimpleChannelSelection" [...]>
            <widget name="list" [...] colorServiceRecorded="#00b40431" colorServicePseudoRecorded="blue" colorServiceStreamed="#00f56712" [...] />
    Die neuen Konfigurationseinträge findet man in den 'erweiterten Einstellungen' unter "Aufnahme':

    Timer-Aufnahmen fehlen wegen belegter Tuner-rectypes_4_16.9_box.pngTimer-Aufnahmen fehlen wegen belegter Tuner-rectypes_3_16.9_box.png

    Und wenn alles funktioniert, kann das so aussehen:

    Timer-Aufnahmen fehlen wegen belegter Tuner-rectypes_5_16.9.pngTimer-Aufnahmen fehlen wegen belegter Tuner-rectypes_1_16.9.pngTimer-Aufnahmen fehlen wegen belegter Tuner-rectypes_2_16.9.png

    Bevor ich die Änderungen committe, benötige ich noch dringend die Mithilfe einiger Beta-Tester. In meiner Konfiguration auf Gigablue Quad scheint zwar alles zu laufen, die Änderungen sind aber doch recht komplex, so dass ich gerne ein Fehlverhalten auf anderen Boxen, mit anderen Plugins / Skins und anderem Benutzerverhalten ausschließen möchte. Wer meldet sich freiwillig?
    Geändert von Fischreiher (10.04.2015 um 19:49 Uhr)
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  10. Thanks betacentauri, Thomas4711 bedankten sich
  11. #9
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Ich habe die Erweiterung auf Gigablue Quad seit 1 Woche im Dauereinsatz ohne Abstürze und ohne fehlende Aufnahmen. Ich weiß aber nicht, wie es mit anderen Plugins, Skins und Boxen aussieht.

    Ich bitte daher weiterhin um Beta-Testing (Swenna und apovis2105 haben sich schon freundlicherweise gemeldet).

    Anleitung:

    1. Full Backup erstellen (zur Sicherheit)
    2. Tarfile https://www.dropbox.com/s/ont3xv0a1t...ch.25.tgz?dl=0 auf die Box kopieren nach /tmp
    3. Auf der Box eingeben:

    Code:
    cd /
    init 4
    tar -xzvf /tmp/recTypes.Fisch.25.tgz
    init 3
    Schon die Aussage, dass der Normalbetrieb mit diesen Änderungen ungestört möglich ist, ist für mich hilfreich. Wer will, kann natürlich auch noch testen, wie PIP und Pseudo-Aufnahmen beendet werden, wenn eine Timer-Aufnahme startet und keine Tuner frei sind. Danke schön!
    Geändert von Fischreiher (11.04.2015 um 16:39 Uhr)
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)

  12. #10
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Noch ein Hinweis: Da ich das Enigma-Binary auf Quad gebaut habe, kann es sein, das auf anderen Boxen das Display dunkel bleibt, wenn der fertige Tarfile eingespielt wird.
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)


Seite 1 von 2 12 LetzteLetzte

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr.
Powered by vBulletin® Version 4.2.5 (Deutsch)
Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.
Resources saved on this page: MySQL 5,26%
Parts of this site powered by vBulletin Mods & Addons from DragonByte Technologies Ltd. (Details)
vBulletin Skin By: PurevB.com