[ANNOUNCE] Avards-Plugin 0.2.0

  • Hallo,

    ich habe einige Änderungen an der Methode gemacht, wie Avards die Bilder einliest.

    Das Avards-Plugin dient zur automatischen Erkennung und Unterdrückung der schwarzen Ränder bei der Ausstrahlung von Breitbild-Material im 4:3-Modus (Letterbox-Format), indem dem Fernseher über das WSS-Signal ein Zoomfaktor mitgeteilt wird.

    Die Änderungen zwischen Avards 0.1.5 und 0.2.0:
    -------------------------------------------------------------
    - Das Einlesen der Bilder wurde auf V4L2 umgestellt (Danke an kls für den Codeteil in VDR 1.7.3)
    - optionale Unterstützung hinzugefügt für das Einlesen der Bilder über die GrabImage-Funktion des VDR anstatt von /dev/video (neuer Parameter -g) (basierend auf dem Patch von e9hack)
    - Filedescriptor-Werte und Überprüfungen korrigiert (Danke an e9hack für den Patch)

    Durch die Umstellung auf V4L2 ist jetzt teilweise auch der gleichzeitige Zugriff mehrerer Anwendungen auf /dev/video möglich.


    Hier geht es zur Homepage
    und hier direkt zum Download

    Happy compiling
    FireFly

  • Hallo FireFly,


    leider bringt das neue Plugin bei mir keine Besserung.



    Mit der Option -g geht es auch kurz, jedoch führt es schon nach kurzer Zeit zu einer Kernel Panic.


    Vielleicht doch ein Problem mit dem Treiber?



    Viele Grüße


    heifisch

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

    Einmal editiert, zuletzt von heifisch ()

  • Hab gerade mal femon 1.6.6 kompiliert und vdr damit gestartet.
    Es läuft absolut stabil bei mir.

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • Zitat

    Original von FireFly
    - optionale Unterstützung hinzugefügt für das Einlesen der Bilder über die GrabImage-Funktion des VDR anstatt von /dev/video (neuer Parameter -g) (basierend auf dem Patch von e9hack)


    Was ist der Vor- bzw. Nachteil von /dev/video bzw der GrabImage-Funktion? Könnte man die GrabImage-Funktion auch für das Atmo-Plugin nutzen?

    Zitat

    Original von FireFly
    Durch die Umstellung auf V4L2 ist jetzt teilweise auch der gleichzeitige Zugriff mehrerer Anwendungen auf /dev/video möglich.


    Was bedeutet "teilweise"?

  • Zitat

    Original von LiamHD
    Was ist der Vor- bzw. Nachteil von /dev/video bzw der GrabImage-Funktion?


    Vorteil von GrabImage ist, dass der VDR nur noch einmal /dev/video liest und das Bild dann mehreren Anwendungen wie vdradmin, Atmo-Plugin oder Avards zur Verfügung stellt. Dazu sollte die GrabImage-Funktion im VDR gepatched sein, damit es auch mehrere gleichzeitig bedienen kann. Wenn man das alles nicht benutzt, dann kann man genauso gut weiterhin /dev/video benutzen.


    Zitat

    Original von LiamHD


    Was bedeutet "teilweise"?


    Bei mir gings bisher immer gleichzeitig, d.h. mehrere Anwendungen konnten /dev/video öffnen, ich habe es aber nicht ausführlich getestet. Aufgefallen ist mir, dass in xawtv dann immer kurz ein Bild fehlt wenn Avards eins zur Auswertung bekommt. Immerhin muss der Device nicht ständig auf- und zugemacht werden, was deutlich Overhead spart. Ich sehe das aber eher als netten Nebeneffekt; wichtiger ist, dass V4L1 demnächst irgendwann mal wegfällt und deshalb sowieso auf V4L2 umgerüstet werden musste.

  • Moin,


    der Vorteil der /dev/video-Variante ist, daß man dort mit einer Art
    Double-Buffering arbeiten kann. Man bekommt das aktuelle Bild und
    der Treiber meldet sich wieder, wenn er das nächste zur Verfügung
    stellen kann usw.
    Ist für Anwendungen, die zeitkritisch auf dem Framebuffer-Inhalt arbeiten,
    notwendig und ist z.B. im Atmolight so umgesetzt.


    Samael

    Für Heilige gibts 'nen Heiligenschein - für Fernseher das Solarstorm.

  • Zitat

    Original von FireFly


    Bei mir gings bisher immer gleichzeitig, d.h. mehrere Anwendungen konnten /dev/video öffnen, ich habe es aber nicht ausführlich getestet. Aufgefallen ist mir, dass in xawtv dann immer kurz ein Bild fehlt wenn Avards eins zur Auswertung bekommt.


    So wie ich das verstehe, können zwar mehrere Anwendungen /dev/video öffnen. Es kann aber nur einer die Buffer-Queue belegen. Wenn das dann kontinuierlich gemacht wird, kommt nur noch die Anwendung zum Zug, die zuerst Zugriff auf die Queue hat. Daher habe ich ja für Avards/Atmo/Aurora/Live/VdrAdmin den GrabImage-Patch geschrieben. Wenn GrabImage() aufgerufen wird, startet ein Thread, der kontinuierlich grabbt. GrabImage() liefert dan das nächste verfügbare Image zurück. Wenn man GrabImage() kontinuierlich aufruft, bekommt man dann auch alle Einzelbilder. Man muß die nur schnell genug verarbeiten. Wenn gegrabbte Bilder nicht mehr per GrabImage() abgerufen werden, gibt der Thread /dev/video wieder frei und legt sich schlafen. Die Methode hat allerdings auch einen Nachteil: Das Grabben erfolgt immer mit voller Auflösung. Wenn GrabImage() mit niedrigerer Auflösung aufgerufen wird, muß das Bild erst noch runterskaliert werden.


    Gruß
    e9hack

  • Hi,


    es ist noch ein kleiner Bug in Avards. Die Variable ImageHeight wird nur gesetzt bzw. initialisiert, wenn ein Image gegrabbt wird. Startet der Vdr mit einer 16:9 Sendung, bleibt die Variable auf 0. Da wird dann die OSD-Größe falsch berechnet. Benutzt man das Skinsoppalusikka-Plugin, stürtzt der Vdr beim betätigen der Menu-Taste mit einem Segfault ab. Betätigt man die OK-Taste, wird die Senderinfo auf halber Bildhöhe, anstatt an der gewünschten Position angezeigt. Startet der Vdr mit einer 4:3-Sendung und schaltet später auf 16:9 um, ist alles perfekt. Der folgende Patch fixt das Problem:


    Gruß
    e9hack

  • Hallo e9hack,


    bei mir kommt es leider nach kurzer Funktion auch mit diesem Patch zum Absturz:



    Allerdings bleibt der VDR bedienbar. Nur das Bild bleibt in diesem Fall auf 4:3 auch wenn eine 16:9 Sendung vorliegt und auch wenn ich die Erkennung ausgeschalten habe.


    Mit welchen Treibern funktioniert es dann bei euch?


    Mit dem im Kernel 2.6.29 enthaltenen und fest eincompilierten hab ich große Probleme.


    Oder kann noch ein Fehler in der Kernelkonfiguration sein?


    Viele Grüße


    heifisch

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

    Einmal editiert, zuletzt von heifisch ()

  • Du suchst an der falschen Stelle. Falls Du noch andere Plugins o.ä. laufen hast, die die GrabImage-Funktion nutzen (z.B. Atmolight), musste Du die entsprechenden Patches von e9hack einspielen. Ich habe sie hier nochmals angehängt.
    Avards muss in der neuen Version nicht mehr gepatcht werden.

  • Hallo udobroemme,


    Original von udobroemme

    Zitat


    Du suchst an der falschen Stelle. Falls Du noch andere Plugins o.ä. laufen hast, die die GrabImage-Funktion nutzen (z.B. Atmolight), musste Du die entsprechenden Patches von e9hack einspielen. Ich habe sie hier nochmals angehängt.
    Avards muss in der neuen Version nicht mehr gepatcht werden.


    Meintest Du mich?


    Ich benutze, um andere Ursachen auszuschließen, zum Testen nur:
    - Vanilla-Kernel 2.6.29,
    - Vanilla-VDR 1.6.0.2,
    - nur das Avards-Plugin,


    Wenn es denn da bei mir stabil läuft, packe ich es mit in mein Produktiv-System.
    Bis dahin teste ich mit ungepatchtem VDR und ausschließlich dem Problem verursachenden Plugin.
    Wobei der Fehler nicht im Plugin liegen muss...


    heifisch

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • Zitat

    Original von FireFly
    ..wichtiger ist, dass V4L1 demnächst irgendwann mal wegfällt und deshalb sowieso auf V4L2 umgerüstet werden musste.


    Was ist denn nun wieder V4L1 und V4L2?

  • Zitat

    Original von heifisch
    bei mir kommt es leider nach kurzer Funktion auch mit diesem Patch zum Absturz


    Der Absturz bei den beschriebenen speziellen Bedingung hat nichts mit Deinem Absturz zu tun. Die von Avards gelieferte OSD-Höhe ist negativ und das Skinsoppalusikka-Plugin berechnet vermutlich irgenwelche Offsets mit falschem Vorzeichen und greift im User-Mode auf nicht belegte Adressbereiche zu.


    Zitat


    Mit welchen Treibern funktioniert es dann bei euch? Mit dem im Kernel 2.6.29 enthaltenen und fest eincompilierten hab ich große Probleme.


    Ich verwende normalerweise das aktuelle Repository von LinuxTV. Ich kann das Problem mit fest einkomplierten Modulen bei Kernel 2.6.29 nicht nachstellen. Bei mir ist es aber 64bittig.


    Zitat


    Oder kann noch ein Fehler in der Kernelkonfiguration sein?


    Ich tippe auf einen verkonfigurierten Kernel, zu wenig Speicher und/oder nicht genügen vmalloc-Adressraum bei 32-Bit.


    Gruß
    e9hack

  • Zitat

    Original von e9hack
    Der Absturz bei den beschriebenen speziellen Bedingung hat nichts mit Deinem Absturz zu tun. Die von Avards gelieferte OSD-Höhe ist negativ und das Skinsoppalusikka-Plugin berechnet vermutlich irgenwelche Offsets mit falschem Vorzeichen und greift im User-Mode auf nicht belegte Adressbereiche zu.


    Ich tippe auf einen verkonfigurierten Kernel, zu wenig Speicher und/oder nicht genügen vmalloc-Adressraum bei 32-Bit.


    Hmm... den VIDEOBUF_VMALLOC gibt es nur wenn man VIDEO_VIVI aktiviert. Und dann belegt es wohl /dev/video0...



    Den Absturz hab ich dann trotzdem.
    Und die Abhängigkeiten bei der Kernel-Konfiguration werden ja eigentlich mit "make menuconfig" ganz gut gehandhabt. Sonst ist der Kernel auch absolut stabil.


    Grüße
    heifisch

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • Hi,
    teste doch mal nen Standardkernel mit laktuellem liblianin.
    Btw: Hat der 29 nich noch Riesenbugs? Hatte da was gelesen.... Evtl. mal 2.6.28.9 testen?


    mfG

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

    Einmal editiert, zuletzt von SurfaceCleanerZ ()

  • Und wo sollen die Infos sein? Überall bekomme ich die Meldung "The action you have requested is limited to users in the group user. ".


    Ich würde mich freuen wenn ich verstehen könnte was nun an der Version2 anderst ist als bei der ersten.

    Gruß
    Frodo

  • Zitat

    Original von Frodo
    Überall bekomme ich die Meldung "The action you have requested is limited to users in the group user. ".

    So ein Schwachsinn, das sind doch keine geheimen Infos - die kann man doch öffentlich zugänglich machen! :wand


    V4L1 ist seit einem Jahr deprecated and scheduled for removal, allein das ist ein Grund auf V4L2 umzustellen, dessen erste Draft bereits im Dezember 2002 erschienen ist. Insbesondere das Streaming soll damit besser gehen (dropouts vermeiden), aber für Avards ist es eher ein Rückschritt, weil ja keine kompletter Stream abgegriffen wird sondern nur ab und zu ein einzelnes Bild. Mehr zum V4L2 API gibts z.B. bei LWN oder bei Dr. Google.


    FireFly

Jetzt mitmachen!

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