Neues Feature: Signal Monitoring

  • Es war hier im Forum schon öfters zu lesen, das es manchmal schwierig sein kann, den VDR so einzurichten, dass z.B. ein gemischter Betrieb von mehreren DVB-T/C Adaptern oder eine nur teilweise Belegung der Antennenanschlüsse von Multi-Tunerkarten möglich ist.


    Ich habe mir dazu einen Signal-Monitoring Patch überlegt, der diese Sonderfälle automatisch erkennen und auch richtig behandeln sollte.

    Das ganze funktioniert ähnlich wie schon in diesem und den darauffolgenden Posts angedacht: feature-request-beschränken-von-c-t-tunern-auf-eine-empfangsart:

    Ein Device kann 2 Signalzustände haben: Signal und NoSignal. Bei der Deviceauswahl für Live oder Aufnahme kommen nur solche mit Signal in Betracht (beim Start von VDR haben alle Devices ein "Signal"). Wird nach einem gewissen Timeout kein Signal erkannt, wird ein der Status auf NosIgnal gesetzt, ein Retune ausgelöst und das nächste verfügbare Device gewählt. Wenn keine Devices mit Signal mehr verfügbar sind, werden die NoSignal Devices der Reihe nach wieder verwendet.

    Zusätzlich wird nach jedem Programmwechsel im Hintergrund mit dem gleichen Transponder auch auf alle NoSignal Adapter getuned - so kann deren Status relativ schnell auf Signal angehoben werden, falls sich am Empfang etwas verändert hat.

    Man kann damit z.B. auch im laufenden Betrieb ein Antennenkabel von einem Device auf ein anderes umstecken, mit dem Patch sollte es nach ein- oder mehreren automatischen Retunes wieder ein Bild geben.

    Und wurde auf einem T/C Adapter ein z.B. DVB-T Signal gefunden, wird das DVB-C Frontend bei allen folgenden Anfragen blockiert - und natürlich auch umgekehrt mit C/T.


    Bei meinen Tests war das Ganze ziemlich brauchbar, das echte C/T Verhalten konnte ich aber in der Praxis nicht testen.

    Der Patch ist für vdr-2.4.7 geschrieben, lässt sich aber auch auf vdr-2.5.3 anwenden.


    Helmut

  • Hier die Version 2 mit ein paar Korrekturen und Fehlerbereinigungen:

    - In eitscan.c war der Signalstatus noch nicht berücksichtigt, dadurch wurden auch Devices ohne Signal für den EPG-Scan ausgewählt

    - bei den Codestellen rund um ProvidesTransponder() und ProvidesChannel() wird nun (wo erforderlich) ebenfalls der Signalstatus berücksichtigt

    - in cDvbTuner::Action() wurde der Code für das richtige Setzten von DataTimeouts überarbeitet und ist nun (zumindest für mich) auch besser lesbar.


    Helmut

  • Danke für den Patch. Verständnisfrage: Es ist aber immer noch irgendein DVB/SATIP Tuner Pflicht?


    Ohne Tuner startet vdr nicht.


    Könnte man das nicht gleich ganz mit aufheben? Wie starte ich auf dem Mond einen vdr zum Aufnahmen anschauen?


    Gruß

  • HelmutB

    Ich schätze das mag die Signalanzeige im SkinNopacitiy nicht so wirklich. Schade. :-)


    Code
    1. May 23 12:16:37 roadrunner kernel: [ 9668.704064] vdr[14727] segfault at 7efc43ffff5c ip 00007efde82af0f5 sp 00007fff7fad02b0 error 6 in libvdr-skinnopacity.so.2.4.7[7efde826b000+67000]
    2. May 23 12:16:37 roadrunner kernel: [ 9668.704100] Code: 00 00 00 00 00 8b 7c 24 3c 49 83 c5 0c 01 7c 24 20 4c 39 6c 24 30 0f 85 b9 fd ff ff 48 63 44 24 44 48 8b 7c 24 48 48 8d 04 40 <c7> 04 87 ff ff ff ff 48 83 c4 68 5b 5d 41 5c 41 5d 41 5e 41 5f c3


    Hmm, nochmal alles neu compiliert, jetzt ist der Fehler da - eingenartig:

    Code
    1. May 23 12:47:40 roadrunner kernel: [11531.039345] vdr[13337] segfault at 7f73f800087c ip 00007f7316611cc3 sp 00007ffedeff4290 error 6 in libvdr-tvguide.so.2.4.7[7f73165e8000+7a000]
    2. May 23 12:47:40 roadrunner kernel: [11531.039370] Code: 24 50 00 00 00 00 8b 6c 24 40 66 0f ef c9 f3 0f 11 6c 24 5c f3 0f 11 54 24 58 f3 0f 11 44 24 54 f3 0f 58 c1 31 d2 41 8d 47 03 <41> 89 45 00 f3 0f 58 c2 f3 0f 10 15 c1 1c 05 00 f3 0f 58 c5 f3 0f


    Grüße,

    Stefan

  • Bau bitte mal alle Plugins neu, device.h hat sich geändert

  • Ohne Tuner startet vdr nicht.
    Könnte man das nicht gleich ganz mit aufheben? Wie starte ich auf dem Mond einen vdr zum Aufnahmen anschauen?

    Ich habe probeweise mit "-D-" alle Devices deaktiviert. Mit xineliboutput und vdr-sxfe startet mein vdr und ich kann auch auf die Aufnahmen zugreifen. Ohne Ausgabe startet der VDR auch mit dem dummydevice Plugin.

    LG Helmut

  • Ok, danke für die Aufklärung. Dann wäre das eher ein feature request für softhd* Ausgabeplugins.

  • Wird softhddevice nicht zu deinem primary device ? Ohne geht es natürlich nicht:

    Code
    1. * VDR errors from /var/log/messages:
    2. * ERROR: invalid primary device number: 4
    3. * ERROR: no primary device found - using first device!
    4. * ERROR: invalid primary device number: 1
    5. /usr/bin/vdr: no process found
    6. * ERROR: vdr failed to start

    Es gibt doch auch diesen Parameter: softhddevice.MakePrimary = 1 #0 = unverändert, 1 softhddevice wird Primärgerät beim Start

    LG Helmut