PVR250 + xineliboutput + autocrop

  • Hallo!


    Ich habe eine Hauppauge PVR 250 (über pvrinput_-1.0.0_20070523 angesteuert) und xineliboutput-1.0.0rc2 als Ausgabegerät. Das ganze ist dann über DVI an dem fernseher angeschlossen.


    ich habe einen neuen 16:9 fernseher gekauft, und wollte dann beim VDR alles darauf einstellen. Also wie folgt:
    - DVB Einstellungen->format: 16:9
    - bei pvrinput -> format: 4:3


    Wenn ich nun bei xineliboutput den autocrop post plugin benutze (automatische einstellung, 14:9/16:9), springt das bild dauern zwischen 4:3 und 16:9 format, wenn die sendung im 16:9 ist. Der empfang ist sonst sehr gut.


    Deshalb frage ich mich, woran es liegen könnte, das autocrop das bild format nicht zuverlässig erkennen kann. Bei meinem Schwiegervater funktionniert alles prächtig (er hat auch DVB-S...).


    Hat jemand also mal eine idee, woran das liegen könnte?


    Es wäre sonst vieleicht auch interressant, die WSS infos aus der PVR karte direkt an dem autocrop plugin zu übermitteln. Aber nachdem ich im code nachgeschaut habe, fällt mir nicht wirklich ein, wie es machbar wäre. :schiel


    Gruß,
    Raphael.

  • bei analog gibt es keine 16:9-Sendungen. Was Du vermutlich meinst sind Breitbildfilme mit schwarzem Balken. autocrop kenne ich nicht - soll das dazu dienen, die Balken abzuschneiden und den Bildinhalt aufzuzoomen?


    Die Frage wäre, ob das bei DVB nicht auch auftritt, wenn dort mal was mit Balken (statt 16:9 anarmorph) gesendet wird.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • erstmal danke für die antwort.


    Also autocrop ist ein post plugin für xineliboutput, welches die schwarzen balken bei letterbox formate rausschneiden soll. Nun scheint es aber nicht sehr stabil bei mir zu laufen. Es liegt vieleicht an artefakte im bild, wodurch das plugin die balken als nicht komplett schwarz erkennt.


    Deshalb dachte ich, man könnte das WSS signal dazu benutzen. Nun muss es aber alles in software geschehen, da ich keine FF karte habe. Das WSS signal übermittelt ja auch das richtiige habe ich überprüft).


    Gruß,
    Raphael.

  • wss-Bits gibt es m.E. nur im Videoausgangssignal. Die werden ähnlich wie VPS oder Videotext als vbi-Signal in die Austastlücke gesetzt. Darum geht es hier aber m.E. nicht.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    Einmal editiert, zuletzt von Dr. Seltsam ()

  • mir ist schon klar,dass ich kein WSS am dvi-ausgang setzen kann. Ich wollte nur ein wenig programmieren, und anhand des WSS, welches sich im eingangssignal befindet (in pvrinput, in den sliced vbi), dann das richtige cropping in xineliboutput setzen. Mein bisheriges problem war aber, dass ich nicht weiss ob es möglich ist, letterbox formate als solche im TS stream zu kennzeichen. oder vieleicht sogar das WSS signal direkt in xineliboutput abzugreifen. Gibt es vieleicht auch echtes DVB letterbox formate, die auch als solches gekennzeichnet sind?


    Fragen über Fragen...


    Gruß,
    Raphael.

  • pvrinput setzt die Formatkennung über V4L2_CID_MPEG_VIDEO_ASPECT


    V4L2_CID_MPEG_VIDEO_ASPECT enum
    Video aspect. Possible values are:

    V4L2_MPEG_VIDEO_ASPECT_1x1
    V4L2_MPEG_VIDEO_ASPECT_4x3
    V4L2_MPEG_VIDEO_ASPECT_16x9
    V4L2_MPEG_VIDEO_ASPECT_221x100


    Das Plugin verwendet nur 4:3 und 16:9


    Letterbox ist 4:3. Ob Balken im Bild sind oder nicht, macht keinen Unterschied

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Zitat

    Original von Dr. Seltsam
    Letterbox ist 4:3. Ob Balken im Bild sind oder nicht, macht keinen Unterschied


    Eben! Und deshalb möchte ich aus den vbi infos den WSS rauslesen (beispiel ist im ivtv code).
    Da steht ob das 4:3 bild in wahrheit ein letterbox format ist. Und wenn das so ist, möchte ich aus dem 4:3 bild die balken rausschneiden.


    Wie ich dann das bild schneide ist die weitere frage. Da gibt es zwei möglichkeiten:
    1. direkt in pvrinput: kann ivtv nur einen ausschnitt aus dem bild enkodieren? ich glaube ich habe sowas im treiber-code gesehen.
    2. die information an xineliboutput weitergeben, damit das bild von dem autocrop plugin geschnitten wird.


    Eine weitere möglichkeit wäre, das WSS signal direkt in xineliboutput (dann im xine input plugin) zu dekodieren, um dann autocrop zu steuern.


    Habe ich eine chance, dass meine hirnspinnerei funktionniert?


    Gruß
    Raphael.

  • Zitat

    Original von pafleraf
    Eben! Und deshalb möchte ich aus den vbi infos den WSS rauslesen (beispiel ist im ivtv code).
    Da steht ob das 4:3 bild in wahrheit ein letterbox format ist.


    nein, das steht da mit Sicherheit nicht. Die mit V4L2_CID_MPEG_VIDEO_ASPECT gesetzte aspect ratio hat auch nichts mit vbi zu tun.
    pvrinput aktiviert außer Videotext auch keine vbi-Daten.


    Zitat

    Wie ich dann das bild schneide ist die weitere frage. Da gibt es zwei möglichkeiten:
    1. direkt in pvrinput: kann ivtv nur einen ausschnitt aus dem bild enkodieren? ich glaube ich habe sowas im treiber-code gesehen.


    das wäre mir komplett neu. Es funktioniert ja nichtmal Clipping (z.B. für Abschneiden von Störzonen am unteren Bildrand bei VHS-Kassetten)

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Zitat

    Original von Dr. Seltsam


    nein, das steht da mit Sicherheit nicht. Die mit V4L2_CID_MPEG_VIDEO_ASPECT gesetzte aspect ratio hat auch nichts mit vbi zu tun.
    pvrinput aktiviert außer Videotext auch keine vbi-Daten.


    Wie auch immer, ich kann diese daten mit den test programmen von ivtv lesen (http://ivtvdriver.org/viewcvs/ivtv/tags/1.0.3/test/vbi.c?rev=4064&view=markup). Also müsste es prinzipiel schon möglich sein. Und das hat in der tat nichts mit dem V4L2_CID_MPEG_VIDEO_ASPECT zu tun. Der sollte nämlich brav auf 4:3 bleiben, damit das bild auf meinem fernseher nicht in die breite gezogen wird.


    Zitat

    Original von Dr. Seltsam


    das wäre mir komplett neu. Es funktioniert ja nichtmal Clipping (z.B. für Abschneiden von Störzonen am unteren Bildrand bei VHS-Kassetten)


    In der Tat, das habe ich jetzt nochmal nachgeschaut. Die karte skaliert dann nur auf eine andere auflösung. Also bleibt nur die 2. lösung. Oder vieleicht doch die dritte: DVB-C karte kaufen und fertig! Da hätte ich 16:9 anamorph, oder?


    Naja, ich werde also mal schauen. Ich schätze, du benutzt xineliboutput oder softdevice gar nicht, da du eine PVR350 hast. Ist das richtig?


    Gruß
    Raphael.

  • Zitat

    Original von pafleraf
    Naja, ich werde also mal schauen. Ich schätze, du benutzt xineliboutput oder softdevice gar nicht, da du eine PVR350 hast. Ist das richtig?


    korrekt. Ich bin der amtierende Verwalter des pvr350-Plugins :)
    Eines Tages wird vielleicht mal ein richtiger Programmierer aus mir (eher unwahrscheinlich)

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Hallo!


    also ich habe in den standards (EN 301 775) nachgeschaut. Es ist problemlos möglich, zusätzlich zum Teletext, auch noch den WSS in den transport stream zu kodieren.


    Ich muss also "nur" in pvrinput/device.c/cPvrReadThread::PesToTs die ivtv sliced VBI korrekt lesen und in dem transport stream schreiben. Es ist im grunde schon alles da.


    Dann wird es knifliger: ich muss dann in xineliboutput diese infos aus dem transport stream rauslesen und verarbeiten (wie weiss ich noch nicht).


    Am besten wäre es wahrscheinlich, den entwickler von dem plugin (xineliboutput) zu kontaktieren.


    Dann habe ich mir gedacht, dass es sogar noch am besten wäre, wenn der pvr350 plugin dieses WSS signal auch korrekt an dem ausgang setzten könnte. Ich habe aber keine pvr350 zu m testen. Vieleicht machst du ja mit?


    Gruß
    Raphael.

  • Zitat

    Original von pafleraf


    Dann habe ich mir gedacht, dass es sogar noch am besten wäre, wenn der pvr350 plugin dieses WSS signal auch korrekt an dem ausgang setzten könnte. Ich habe aber keine pvr350 zu m testen. Vieleicht machst du ja mit?


    das pvr350-Plugin setzt bereits wss-bits via vbi16.


    Die Erkennung des bildformats erfolgt im pvr350-Plugin, und die wss-bits setze
    ich dann mit folgendem Code:



    Das format bzw. der Wert von wss_data wird hierbei wie gesagt im plugin-Code
    (Funktion SetVidInfoV4L2 in pvr350device.c) ermittelt.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Das hatte ich schon gesehen. Nun ist es aber wahrscheinlich so, dass bei analog kanäle immer nur 4:3 gesetzt wird, weil der format fest in pvrinput gesetzt ist (bzw. durch die PVR karte selbst). Es wäre besser, wenn man auch bei analog kanäle erkennen könnte, ob es sich um richtiges 4:3 oder um 16:9 letterbox handelt. Allgemein, man könnte alle VBI info einfach an dem ausgang der PVR350 durch schleifen. Dadurch könnte man theoritisch sogar teletext aus DVB quellen direkt am fernseher schauen. Ich weiss, der fall mit teletext ist sinnlos, aber es geht ums prinzip. Wie auch immer, ich werde es mal für mich implementieren, und dann sehen wir weiter.


    Gruß
    Raphael.

  • Zitat

    Original von pafleraf
    Nun ist es aber wahrscheinlich so, dass bei analog kanäle immer nur 4:3 gesetzt wird, weil der format fest in pvrinput gesetzt ist (bzw. durch die PVR karte selbst).


    Die Formatkennung wird durch V4L2_CID_MPEG_VIDEO_ASPECT gesetzt. Der Treiber würde per default glaube ich immer 4:3 setzen. Dass man es überhaupt einstellen kann, ist nur für Sonderfälle gedacht (z.B. Digitalisieren von anarmorphen VHS-Aufnahmen.)


    Zitat

    Es wäre besser, wenn man auch bei analog kanäle erkennen könnte, ob es sich um richtiges 4:3 oder um 16:9 letterbox handelt.


    nochmal: analoges TV, so wie es vom Sender ausgestrahlt wird, ist IMMER 4:3. Es gibt im analogen Bereich keine anarmorphen Ausstrahlungen. Was Du als "16:9 letterbox" bezeichnest sind 4:3 Sendungen mit schwarzen Balken. Das ist kein 16:9.
    Es gibt auch keinerlei senderseitige Kennungen in der Analogausstrahlung, die darauf hindeuten würden, dass es sich um einen Film mit Balken handelt.*) Selbst wenn, dürfte man dies auf keinen Fall zum Anlass nehmen, bei einer Encodierung eine 16:9-Kennung zu setzen. Das Ergebnis wäre -solange die Balken nicht entfernt wurden- eine falsche Darstellung am TV.


    *) manche Sendungen haben tatsächlich eine Kennung (vermutlich in den vbi-Daten), die dazu führt, dass mein Loewe TV auf "Pal Plus" schaltet und einen Zoom durchführt, so dass die Balken weg sind. Dieser Zoom-Modus hat aber nichts mit 16:9 anarmorph zu tun. Diese "Pal Plus"-Kennung kann man erzeugen, indem man für data[0] nicht die 7 (16:9) oder 8 (4:3) sendet, sondern den Wert 11.


    das wss-Signal ist in diesem Fall ein Zoom-Kommando. Da es nichts mit einem Format zu tun hat (das ist weiterhin 4:3), kann man es nach den v4l2-Spezifikationen leider nicht über V4L2_CID_MPEG_VIDEO_ASPECT erzwingen.


    Was Du bräuchtest wäre ein Code, der immer dann, wenn das autocrop-Plugin die schwarzen Balken aus einer Quelle entfernt hat, die Formatkennung von 4:3 nach 16:9 ändert. Ob man da nun einfach V4L2_CID_MPEG_VIDEO_ASPECT neu setzen kann, weiss ich nicht. Es kann aber wirklich erst dort erfolgen, denn das, was pvrinput liefert, muss immer 4:3 sein. Erst autocrop trifft die Entscheidung, ob das Material durch Entfernen der schwarzen Balken anarmorph werden soll.


    Oder autocrop "informiert" das xinelibout-Plugin darüber, dass es eine Formatänderung durchgeführt hat, und veranlasst das xinelibout-Plugin, trotz vorhandener 4:3 Formatkennung ein 16:9 wss-bit auszugeben. Ist xinelibout in der Lage, wss bits zu generieren bzw. zu ändern?

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    Einmal editiert, zuletzt von Dr. Seltsam ()

  • Hallo nochmal!


    also ich glaube, wir reden aneinander vorbei die ganze zeit. Wenn ich von letterbox format rede, meine ich definitiv 4:3 mit schwarzen balken oben und unten (für mich sogar auch links und rechts, da mein fernseher 16:9 ist).


    Zitat

    Original von Dr. Seltsam


    nochmal: analoges TV, so wie es vom Sender ausgestrahlt wird, ist IMMER 4:3. Es gibt im analogen Bereich keine anarmorphen Ausstrahlungen. Was Du als "16:9 letterbox" bezeichnest sind 4:3 Sendungen mit schwarzen Balken. Das ist kein 16:9.
    Es gibt auch keinerlei senderseitige Kennungen in der Analogausstrahlung, die darauf hindeuten würden, dass es sich um einen Film mit Balken handelt.*) Selbst wenn, dürfte man dies auf keinen Fall zum Anlass nehmen, bei einer Encodierung eine 16:9-Kennung zu setzen. Das Ergebnis wäre -solange die Balken nicht entfernt wurden- eine falsche Darstellung am TV.


    *) manche Sendungen haben tatsächlich eine Kennung (vermutlich in den vbi-Daten), die dazu führt, dass mein Loewe TV auf "Pal Plus" schaltet und einen Zoom durchführt, so dass die Balken weg sind. Dieser Zoom-Modus hat aber nichts mit 16:9 anarmorph zu tun. Diese "Pal Plus"-Kennung kann man erzeugen, indem man für data[0] nicht die 7 (16:9) oder 8 (4:3) sendet, sondern den Wert 11.


    Mein neuer Fernseher ändert automatisch den zoom modus bei alle sendung mit schwarzen balken. Dazu benutzt er den WSS signal. Du kannst es problemlos überprüfen, indem du das kleine vbi.c program aus dem ivtv 1.0.3 quellcode (test/vbi.c) kompilierst und ausführst, während du eine sendung schaust, die solche balken enthält. Der einzige Sender, der das nicht macht, ist bei mir Kabel1. Alle anderen senden dieses signal.


    Da steht folgendes:
    - bei 4:3 ohne balken: 4:3
    - bei 4:3 mit balken: 16:9 letterbox


    Zitat

    Original von Dr. Seltsam
    das wss-Signal ist in diesem Fall ein Zoom-Kommando. Da es nichts mit einem Format zu tun hat (das ist weiterhin 4:3), kann man es nach den v4l2-Spezifikationen leider nicht über V4L2_CID_MPEG_VIDEO_ASPECT erzwingen.


    Genau, das geht immer nur um den zoom modus. Ich weiss, dass es dann immer 4:3 ist. Nun will ich, dass der zoom modus von xineliboutput (oder pvr350 für dich) verstanden wird, genau wie der fernseher das macht. Schau dir wirklich mal das progamm an, was ich oben beschrieben habe.


    Zitat

    Original von Dr. Seltsam
    Was Du bräuchtest wäre ein Code, der immer dann, wenn das autocrop-Plugin die schwarzen Balken aus einer Quelle entfernt hat, die Formatkennung von 4:3 nach 16:9 ändert. Ob man da nun einfach V4L2_CID_MPEG_VIDEO_ASPECT neu setzen kann, weiss ich nicht. Es kann aber wirklich erst dort erfolgen, denn das, was pvrinput liefert, muss immer 4:3 sein. Erst autocrop trifft die Entscheidung, ob das Material durch Entfernen der schwarzen Balken anarmorph werden soll.


    Da bei mir autocrop die balken kaum erkennt, will ich ihm sagen, wann er die balken rausschneiden soll.


    Würde ich eine pvr350 über s-video oder SCART an meinem fernseher anschliessen, könnte ich ihm exakt das gleiche WSS signal wiederspielen, welches am eingang zu sehen ist, würde er automatisch den zoom modus ändern. Da müsste man nur den OSD kleiner machen, und alles ist perfekt.


    Naja, also ich empfehle dir nochmal, das vbi.c programm mit WSS auszuführen. Du wirst ja schon sehen was da übermittelt wird. Sonst lohnt sich einen blick in dem standards für WSS: ETS 300 294 (frei zum herunterladen bei www.etsi.org). Da ist seite 16 besonders interressant.


    Gruß
    Raphael.

  • Ich weiß nicht ob sich das Thema schon erledigt hat, aber die Erkennung der balken funktioniert beim Softdeviceplugin sehr viel besser und stabiler. Vielleicht wäre es das einfachste dessen Filter ins Xineliboutputplugin zu transplantieren. Leider habe zZt. nicht Zeit das selber zu machen.

Jetzt mitmachen!

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