[SOLVED] Zoomfunktion in Softhddevice

  • So erstmal total primitiv, aber es funktioniert bereits bestens (Die Funktion unten beschreibt NUR den Zoom von 21:9-HD-Filmen und muß entsprechend auf andere Bildgrößen erweitert werden!)


    Habe 2 Scripte erstellt in /etc/vdr/scripte (zoom219 und zoom0):


    Code
    zoom219
    
    #!/bin/bash
    svdrpsend plug softhddevice susp
        vdr-dbus-send /Setup setup.Set string:"softhddevice.1080i.CutTopBottom" variant:string:"136"
        vdr-dbus-send /Setup setup.Set string:"softhddevice.1080i.CutLeftRight" variant:string:"240"
    svdrpsend plug softhddevice resu
    svdrpsend plug skindesigner dlic    
    exit 0
    Code
    zoom0
    
    #!/bin/bash
    svdrpsend plug softhddevice susp
        vdr-dbus-send /Setup setup.Set string:"softhddevice.1080i.CutTopBottom" variant:string:"0"
        vdr-dbus-send /Setup setup.Set string:"softhddevice.1080i.CutLeftRight" variant:string:"0"
    svdrpsend plug softhddevice resu
    svdrpsend plug skindesigner dlic    
    exit 0


    Template 86_10_yavdr:


    Code
    <command name=<?cs call:quote(_("21:9 Zoom")) ?> execute="/etc/vdr/scripte/zoom219 &amp;> /dev/null" />
    <command name=<?cs call:quote(_("Zoom aus")) ?> execute="/etc/vdr/scripte/zoom0 &amp;> /dev/null" />


    Das SUSP und anschliessende RESU sorgt dafür das die Änderung sofort da ist. Ausserdem passen die LEDs des Sedu-/Boblights sich an (freu)

    Edited 5 times, last by Taipan ().

  • Eine Frage in die Runde:


    Wenn ich oben und unten das Bild 135 Pixel abschneide. Wieviel Pixel sind es an den Seiten damit das Verhältnis bei 16:9 stimmt?


    240 oder?

  • hähä ich habe nach x aufgelöst 16:9 = 135:x macht: 135*16:9

    Aber es passt ja - läuft wie gewünscht!


    In meine Scripte habe ich aber noch ein 'svdrpsend plug skindesigner dlic' eingefügt, da manchmal das OSD transparent blieb!

  • Taipan,

    klingt ja ganz interessant, was Du da machst. :)

    Werde ich vielleicht heute Nachmittag oder vermutlich komme ich erst am Montag dazu, auch mal testen.


    Eine Sache ist mir aber jetzt schon aufgefallen: Du hast jetzt nur eine Variante für die 1080i-Sender erstellt!

    Da aber alle ÖR-Sender in 720p senden, müsste man entweder dafür jeweils ein extra Zoom-Script erstellen, oder die vorhandenen 2 Scripte um die zusätzliche Auflösung 720p erweitern.


    Noch eine andere Idee:

    Könnte man evtl. das zoom0-Script automatisch beim Senderwechsel laufen lassen, falls vorher das zoom219-Script ausgeführt wurde? So wäre nach einem Senderwechsel automatisch wieder die richtige Auflösung aktiv und man müsste das nicht extra manuell machen. ;D

    Richtiger Komfort wäre dann, wenn man das dann noch über eine Variable je nach Userverhalten, aktivierbar macht, also "Zoom-Script bei Senderwechsel ausführen = JA/NEIN".


    Paul

  • Das habe ich mittlerweile in den Scripten zusammengefasst. Das Zoomscript für 21:9 sieht hier jetzt so aus (ich setze einfach alle hoch. Damit gibt es auch später kein durcheinander):


    zoom219


    zoom0

    Falls die abgeschnittenen Pixel nicht passen, kann man das ja anpassen... Nichts desto trotz ist es dann immer der 21:9 Zoom. Ich weiß nichtmal, ob 576 und 1080_fake überhaupt das Format aussenden; ich habe einfach alle Cut-Parameter aus softhddevice hochgesetzt. Gestern habe ich nur mit HD Material von Sky in 1080 getestet.

    Edited 2 times, last by Taipan ().

  • Für eine automatische Erkennung ist derzeit nix drin. Habe ich bei mir auch nicht vor, weil ich es 'on demand' nutze und nicht automatisch möchte.

    Wenns gemütlich werden soll und das Licht per FHEM gedimmt wird, schalte ich es dazu und lasse es mit Seduatmo schön 'randlos' blitzen und blinken - gefällt! ;)

  • Für eine automatische Erkennung ist derzeit nix drin. Habe ich bei mir auch nicht vor, weil ich es 'on demand' nutze und nicht automatisch möchte.

    Ich meinte ja auch mehr: Automatisch abschalten/deaktivieren bei einem Senderwechsel, aber nicht automatisch aktivieren!


    Noch was zu Deinem zoom219-Script:

    Wenn Du alle Auflösungen gleich behandelst, dann wird das m. M. n. nicht passen, denn 136 Pixel bei 1080i sind doch was anderes als 136 Pixel bei z. B. 720p!

    Bei 720p wären dass dann ca, 90 Pixel! Oder habe ich hier einen Denkfehler?


    Das ist eben der Nachteil, wenn man das absolut in Pixel macht und nicht relativ in Prozent!

    Bei prozentualer Vergrößerung, so wie das in KODI gemacht wird, sind es, wenn ich mich recht entsinne, immer ca. 125% egal welche Auflösung (720p oder 1080p/i)


    Paul

  • Das meinte ich mit Anpassen. Es bleibt vorerst ein Zoom-Script, nur die Pixel zum abschneiden müssen entsprechend den anderen Auflösungen noch angepasst werden. Wenn das mit 90 Pixeln passt und entsprechend dem Seitenverhältnis an den Seiten (in diesm Fall entspr. 160), trägst Du es in dem Bereich für 720p ein und es passt dann schonmal für 1080i und 720p. Die Cut-Bereiche brauchen ja nur einmalig festgelegt zu werden...


    lediglich für andere Kinoformate muss es entsprechende Scripte geben - da kenne ich mich aber nicht aus. Wenn jetzt mal ein alter Western läuft, was der dann für ein Format hat weiß ich nicht so recht. Wird sich zeigen...

  • Die svdrpsend-Befehle könnte man auch noch durch vdr-dbus-send ersetzen, dann läuft alles über eine Schnittstelle und blockiert dann auch nicht svdrp.

    Einfach mal einen Blick ins Readme von dbus2vdr werfen.


    Lars

  • So, ich habe mal etwas rumprobiert und es funktioniert prinzipiell schon ganz gut. Das Feintuning muss noch gemacht werden. :)

    Ich habe nicht auf den maximalen Wert von 125% gezoomt, sondern nur, wie ich es auch in KODI gemacht habe, auf 120%. Also jeweils 10% an jeder Seite, damit lassen sich die Werte für das softhddevice-Plugin sehr leicht berechnen: z. B. bei 1280x720p --> 128x72 Pixel usw. ...

    Hier mal mein Script "zoom_on":

    Quote


    Allerdings habe ich es nicht hinbekommen, das Script über das OSD auszuführen, denn der Code für das Template zur

    /var/lib/vdr/plugins/menuorg.xml funktioniert bei mir nicht:

    Template 86_10_yavdr:


    Code

    1. <command name=<?cs call:quote(_("21:9 Zoom")) ?> execute="/etc/vdr/scripte/zoom219 &amp;> /dev/null" />
    2. <command name=<?cs call:quote(_("Zoom aus")) ?> execute="/etc/vdr/scripte/zoom0 @@@WCF_LITERAL_AMP@@@> /dev/null" />

    Das funktioniert bei mir leider nicht so richtig.

    Wenn ich über die Fernbedienung den Befehl absetze, dann bleibt das OSD ca. 20...30 Sekunden stehen, ohne das etwas passiert.

    Im syslog gibt es dann dieses zu lesen:



    Wenn ich dagegen mein Script über die Konsole direkt ausführe, dann wird es sofort ausgeführt und funktioniert auch, d.h es wird gezoomt bzw. wieder zurückgezoomt. Hier dazu der Auszug aus dem syslog:


    Meine Frage ist: Welche Werte für Dateiattribute muss ich verwenden bzw. woran könnte es liegen, dass das Script über die Konsole (da bin ich ja "root") ausführen kann, aber über das OSD (da bin ich "vdr") nicht will?



    Das OSD vom skindesigner-Plugin bleibt dabei voll bedienbar, da dieses nicht gezoomt wird! Super!! :)

    Wenn ich noch das Problem mit der Ausführung des Scriptes über das OSD gelöst bekomme, dann wäre ich super zufrieden! ;)

    Theoretisch könnte man auch mehrere Zoom-Scripte erstellen, um z. B. in 5%-Schritten zu zoomen, falls man dafür Bedarf hat! :)


    Paul

  • Nach Mini73´s Anmerkung habe ich die Scripte geändert und nur dbus2vdr eingefügt. Das sieht aus wie folgt (vielleicht geht das besser weil definitiv über den User vdr):


    Enormer Vorteil: Bild bleibt da!!! (Fast schon geil ;))


    Musst halt Deine Werte noch ergänzen...

    Edited 2 times, last by Taipan ().

  • Wenn ich das nun auf eine Usertaste lege habe ich den Zoom tatsächlich auf Tastendruck! Und ganz ohne Programmiererei...

  • Taipan,

    es wird immer besser! :)

    Aber bei mir gibt es noch ein kleines Problemchen, denn ich muss immer einmal den Sender umschalten, ehe der Zoom aktiviert ist.

    Es sieht aus, als wenn das "DETA" und "ATTA" vom softhddevice-Plugin und das "DLIC" nicht greift.


    Hier mal mein Zoom-Script, entspricht praktisch dem von Dir geposteten mit meinen Anpassungen zu den Pixeln:

    Die Ausgabe im syslog bringt nicht viel, da es leider keine Fehlermeldungen enthält.

    Aber wenn ich das o. g. Script auf der Konsole ausführe, dann bekomme ich auch Fehlermeldungen, die ich allerdings nicht auflösen kann:

    Da scheint ja nur eine Kleinigkeit zu sein, aber ich weiß nicht so richtig, was ich ändern soll! :(

    Vielleicht kannst Du helfen?


    Paul

  • An die svdrpcommand-Befehle muss noch ein string:'' hinten dran, weil zwei Parameter erwartet werden, in diesem Fall der zweite aber leer ist.


    Lars

  • Da bin ich überfragt! Ich habe die Meldung auch... Aber es funktioniert! Ich werde Mini73 fragen...


    [ZU SPÄT] :D

  • Meine schöne Begleiterscheinung das das Bild da blieb ist leider weg!

  • Irgendwie raff ich es nicht, was ich wo ranhängen muss?

    Wenn ich z. B. an das:

    vdr-dbus-send /Plugins/softhddevice plugin.SVDRPCommand string:'DETA'


    jetzt noch zwei Hochkomma ranhänge:

    vdr-dbus-send /Plugins/softhddevice plugin.SVDRPCommand string:'DETA'''


    bleibt die Fehlermeldung immer noch!

    Error org.freedesktop.DBus.Error.InvalidArgs: Type of message, '(s)', does not match expected type '(ss)'


    Wie muss den jetzt unser Script richtig ausschaun?


    Paul

  • vdr-dbus-send /Plugins/softhddevice plugin.SVDRPCommand string:'DETA' string:''

  • Das Bild blieb vorher da, weil das DETA nicht ausgeführt wurde. Falls es nicht nötig ist, kann man es ja auch weglassen.


    Lars

Participate now!

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