ivtv 07 und kernel 2.6.17 klappt nicht

  • Na ja, es müsste schon jemand sein, der auch ne Menge Zeit investieren kann. Der ivtv Treiber verändert sich z.Z. täglich.

  • Zitat

    Original von Dr. Seltsam
    Der Abschnitt bool MpegRecorder::SetIVTVDeviceOptions(int chanfd) ist für den alten Treiber, während in bool MpegRecorder::SetV4L2DeviceOptions(int chanfd) das ganze auf das neue v4l2 angepasst wurde.
    Man braucht m.E. gar nicht alle der heutigen pvrinput-Einstellungsmöglichkeiten (es läuft mit den default-Werten des Treibers erstaunlich gut!), aber eine Anpassung der Videobitrate und des Rauschfilters sollte schon möglich sein. Nicht alles ist in mythtv möglich, aber die videodev2.h gibt einen Eindruck, was sich einstellen lässt:


    Falls Du also eine Beschäftigung suchst ;)


    Ich habs mir mal angeschaut; alle neuen ioctls lassen sich sehr gut integrieren, der Funktionsumfang ist dann wie bisher nur die Filter werden ein wenig umfangreicher, der median Filter (was auch immer der tut..) kommt dazu.


    Die ioctls werden so integriert, wie du es vom Prinzip her oben schon richtig angefangen hast. Sinnvoll ist dann aber auch ne Bereichsüberprüfung mit nem VIDIOC_QUERYCTRL, um Fehler beim Zuweisen zu vermeiden.


    Das Problem ist nur, dass nicht viel vom originalen Quelltext von pvrinput übrigbleibt, wenn man auf die neuen ioctls umstellt. Zumindest ist das nicht mehr ein simpler Dreizeiler als Patch:
    - ivtv.h muss raus aus dem Quellcode
    - bool cPvrDevice::SetCodec(void) muss ersetzt werden
    - SetPicture und SetVolume dito


    Die alten ioctls zu unterstützen macht dann aber IMHO auch keinen echten Sinn mehr.
    Ich könnte bei Bedarf nen ersten Patch als Diskussionsgrundlage anbieten, aber es müsste jemand mit mehr Programmiererfahrung drüber schaun, so ist das noch zu 'wild'.

  • Hallo Wirbel,


    prima, dass Du Dir die Zeit genommen hast! :]


    Solange sich niemand mit "mehr Programmiererfahrung" -oder gar ein neuer Maintainer- findet, wirst Du hier wohl die maßgebliche Authorität sein müssen ;)


    Ich denke, es macht aufgrund der vielen Änderungen im Treiber keinen Sinn, eine abwärtskompatible Version zu bauen. Das Hauptproblem ist derzeit, einen funktionierenden ivtv-Treiber zu bauen, der die erforderlichen Änderungen enthält. Ich habe inzwischen einen 2.6.18-rc7 gebaut, und weder v4l-dvb +ivtv-trunk noch Kerneltreiber + ivtv-0.8-CVS laden ohne unresolved symbols. Aber das wird schon noch ...
    Lass doch Deine überarbeiteten sourcen mal sehen - kannst sie mir ja mal zumailen.


    Hast Du eigentlich mal diesen Thread verfolgt:
    ivtv + Flackern (PVR250/350)


    Die von samc beschriebenen Änderungen haben mein Flackerproblem nachhaltig gelöst!


    Gruß
    Dr. Seltsam

    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

  • Abgesehen von ivtv trunk, das man bis auf weitere Nachricht von Hans Verkuil, nicht benutzen sollte, bauhen hier bei mir eigentlich alle möglichen Kombinationen.


    Ich benutze im Moment 2.6.17.x + v4l-dvb hg + ivtv branches/0.8, habe aber auch ivtv branches/0.8 gegen 2.6.18-rc6 gebaut und benutzt. V4l-dvb hg hat eine angenehme Funktion v4l und ivtv virtuell zu mergen. Es funktioniert leider im Moment nur mit zwei kleinen Änderungen.
    1. muss in v4l/Makefile im Ziel ivtv-up /trunk durch /branches/0.8 ersetzt werden
    2. in v4l/Makefile.IVTV muss vtv-reset.o entfernt werden


    make ivtv-up check dann ivtv aus dem subverion repository aus und merge ivtv dann in v4l



    Die einfachste Art der Portierung, einfach die IVTV ioctls durch entsprechende extended controls zu ersetzen, ist schnell gemacht. Rückwärtskompatibilität ist auch einfach zu erreichen. Man schreibt neue Funktionen und ruft beide auf. So habe ich es auch in MythTV gelöst. Wobei Rückwärtskompatibilität bei einem Plugin siccherlich nicht so wichtig ist, wie in MythTV.
    Bei der Portirung muss man etwas aufpassen, da die Werte in entsprechenden enums nicht immer gleich sind.


    Eine vernünftige Portierung sollte natürlich die query controls benutzen.


    Janne

  • Ich habe z.Z. kein Flackerproblem, dsewegen hab ichs nicht verfolgt.
    Ich glaube aber, dass samc's Lösung bestenfalls ein workaround ist, der mit den nächsten Versionen wieder hinfällig werden wird.


    Ich schick dir mal ne pn mit nem Link wo du dirs runterladen kannst.
    Aber betrachte das bitte nur als ne Diskussionsgrundlage, ich hab nicht die Absicht, da powarman ins Handwerk zu pfuschen.



    jannex:
    Abwärtskompatibilität halte ich für verzichtbar, da (hoffentlich) ivtv irgendwann fest im Kernel ist. Dann werden viele auf die im Kernel integrierten Treiber zurückgreifen.
    Die Abfrage mit queries halte ich für unverzichtbar, schon deswegen weil mehr und mehr unterschiedliche Karten zum Einsatz kommen.

  • Die Abwärtskompatibilität ist für das plugin bei weitem nicht so wichtig wie für MythTV. Beim Plugin ist es zumutbar eine ältere Version einzusetzen, bei MythTV nicht.


    IVTV wird hoffentlich in Kernel 2.6.19 enthalten sein, dass war zumindest der ursprüngliche Plan. Hans schraub zur Zeit ziemlich stark an ivtv trunk wegen der DMA-Probleme herum, aber ich denke er könnte es durchaus bis 2.6.19 schaffen. Wenn nicht, dann halt 2.6.20.


    Mit den query controls sehe ich es auf lange Sicht genauso. Zur Zeit sind sie aber noch nicht so wichtig, da alle Karten, die mpeg encoding api unterstützen, auf dem cx2341x beruhen.

  • Zitat

    Original von wirbel
    Ich schick dir mal ne pn mit nem Link wo du dirs runterladen kannst.
    Aber betrachte das bitte nur als ne Diskussionsgrundlage, ich hab nicht die Absicht, da powarman ins Handwerk zu pfuschen.


    hab Dir gerade eine PM gechrieben - funzt prima! Um powarman würde ich mir keine Gedanken machen, der hat mit dem pvrinput-Plugin offenbar vollständig abgeschlossen.



    jannex.
    Du bist mein retter - habe nun endlich einen mit v4l-dvb funktionierenden ivtv-Treiber bauen können.
    War aber etwas anders, als von Dir beschrieben. So habe ich v4l/Makefile geändert:


    und natürlich in v4l/Makefile.ivtv

    Code
    ivtv-objs	:=	ivtv-driver.o ivtv-fileops.o ivtv-i2c.o \
    			ivtv-streams.o ivtv-firmware.o \

    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

  • Moin!


    Ich kann zwar programmieren (zumindest verdiene ich mein Geld damit), hab allerdings noch nie in ein vdr-Plugin bzw. in Linux-Kernel-Module reingeschaut. Und da ich selbst eine PVR150 habe, hab ich Interesse daran, dass es mit dem Ding weitergeht, weil ich zu den Leuten gehöre, die das Flackerproblem haben.


    Wenn mir jemand verrät, wo ich aktuelle Sourcen zum pvrinput bekomme, werde ich mal versuchen, mich in die Materie einzuarbeiten.


    Was sollte ich noch lesen, um ein vdr-plugin zu verstehen? Was für eine Distribution sollte ich als Entwicklungsumgebung benutzen? Ich hab kein Problem mit vi und Kommandozeile...


    mini.


  • Was du brauchst ist ein System mit sehr aktuellem Kernel (2.6.18-rcXX) + v4l-hg + ivtv>=0.8. Vorher brauchst du gar nicht anzufangen, da sich gerade sämtliche ioctls von ivtv ändern und nur noch ivtv-0.8 mit aktuellen Kerneln läuft. Die allerersten Schritte wären also Compiler installieren, aktuellen Kernel, aktuellen v4l-hg DVB Treiber und dazu den passenden ivtv zum Laufen bringen.


    Erst danach macht es Sinn weiterzumachen: im sourcecode des vdr selbst PLUGINS.html lesen und erst dann in die Sourcen von pvrinput einsteigen. Die letzten mit bekannten offiziellen Sourcen sind pvrinput-0.1.1-pre1 auf powarmans Seite.


    Wie du liest haben Dr Seltsam und ich schon mal etwas Vorarbeit zu den nötigen Änderungen getan, aber es fehlt ein 'offizieller' maintainer/Ansprechpartner von pvrinput, nachdem powarman die Sache wohl nicht mehr weiter verfolgt.

  • Zitat

    Original von wirbel
    Die letzten mit bekannten offiziellen Sourcen sind pvrinput-0.1.1-pre1 auf powarmans Seite.


    ups, es gab per 30.04.06 eine offizielle 0.1.1:
    http://home.arcor.de/andreas.r…ut/vdr-pvrinput-0.1.1.tgz

    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

  • Der es geht auch mit einem älteren Kernel. 2.6.17 + v4l-dvb hg + ivtv branch 0.8 funktioniert sehr gut. v4l-dvb hg sollte mit bis zu 2.6.12 funktionieren, wie es mit ivtv aussieht, weiß ich nicht.


    Mit 2.6.18* kannst du dir das v4l-dvb hg sparen. ivtv branches/0.8 funktioniert auch mit dem vanilla rc kerneln.

  • Zitat

    Original von Dr. Seltsam


    ups, es gab per 30.04.06 eine offizielle 0.1.1:
    http://home.arcor.de/andreas.r…ut/vdr-pvrinput-0.1.1.tgz


    aber da hat sich außer der Anpassung an vdr 1.4 nichts geändert:

    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

  • Sehr schön, dann sind alle diese Änderungen außer die Versionsnr. eh enthalten.

  • Zitat

    Original von jannex
    v4l-dvb hg sollte mit bis zu 2.6.12 funktionieren, wie es mit ivtv aussieht, weiß ich nicht.


    ivtv-0.8 geht wohl ab 2.6.16

Jetzt mitmachen!

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