Verbesserung des pvr350-Plugins

  • welcher Nutzer des pvr350-Plugins kennt das nicht? man schaltet um, und am oberen Bildrand pixeln Artefakte, weil der buffer nicht vollständig geleert wurde.


    Ich habe null Ahnung von Programmieren, aber manchmal findet ja auch ein blindes Huhn ein Korn...


    Ich habe einfach mal in der ivtv-ext-api.h alle defines, für die nur hexadezimale Werte angegeben waren, auf die Definitionen analog ivtv.h aus dem 0.4-er Treiber geändert.


    Also z.B.


    #define IVTV_IOC_S_STOP_DECODE _IOW ('@', 43, struct ivtv_cfg_stop_decode)
    statt
    #define IVTV_IOC_S_STOP_DECODE 0xFFEE7787


    Das Ergebnis: Beim Umschalten wird es jetzt kurz schwarz, und das neue Bild kommt unverpixelt.


    Des weiteren habe ich mir folgende Zeilen angesehen und experimentiert:
    in writer.c :

    Welche Bedeutung hat die 4000, und was ist, wenn man kleinere Werte nimmt?


    ferner in device.c:

    Code
    /* Create a new ringbuffer for queuing data up into, and create
           the writing thread
        */
        state = UNSYNCED;
        m_RingBuffer = new cRingBuffLinear(3000 * 1024, 0, true);
        writer = new cPvr350Writer(m_RingBuffer,fd_out);


    wie kriegt man den buffer kleiner? wie wirken die beiden Zahlenwerte zusammen?


    aktuell habe ich jetzt die 4000 in writer.c erstmal so gelassen und oben aus 3000 * 1024 einfach 3000 * 512 gemacht.


    Zusätzlich habe ich die bufferreserve in zwei Dateien von vdr deaktiviert, das bringt auch eine deutliche Geschwindigkeitsverbesserung beim Umschalten:
    http://www.linuxtv.org/piperma…2005-November/006387.html


    Ich bin jetzt sehr zufrieden mit dem Umschaltverhalten -auch die DVB-T-Sender der Avermedia schalten schnell und sauber um. Bei den analogen Kanälen muss man mal mit dem Wert WaitAfterTuning in den Plugin-Einstellungen von pvrinput experimentieren. Ganz auf Null setzen ist vielleicht auch nicht gut, da der Tuner beim Frequenzwechsel ja erst noch sauber einrasten soll.


    Dominic Morris informiere ich auch noch.


    Ein Paket der von mir geänderten pvr350-plugin-sourcen liegt unter http://drseltsam.device.name/v…0-0.0.4pre1-drseltsam.tgz


    Für die LinVDR-Gemeinde bzw. die PVR350-only-Nutzer darin habe ich vdr 1.3.37 (passend zu Cody) mit deaktivierter bufferreserve sowie das geänderte pvr350-Plugin durch den Compiler gejagt und als Paket unter http://drseltsam.device.name/vdr/cody-vdr-1.3.37-pvr350.tgz abgelegt. (Installation mit

    Code
    tar xvfz cody-vdr-1.3.37-pvr350.tgz -C /

    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

    2 Mal editiert, zuletzt von Dr. Seltsam ()

  • etwas OT da ich keine pvr350 habe, aber trozdem: Ich habe die vdr-1.3.17 [edit]ich meine vdr-1.3.37[/edit]mit deaktivierter Bufferreserve mal bei mir getestet. Das ganze funktioniert ordentlich. Keine Verschlechterung und keine Verbesserung beim Umschalten. Aber Live-TV DD-Ton funktioniert dann nicht mehr.


    Gruß
    Wicky

  • hast Du es mit einer FF oder einer dxr3 getestet?


    Das Umschalten auf AC3-Sender sollte deutlich fixer gehen, da die bufferreserve wegfällt. Und auch Live-AC3 sollte weiter funzen. So ist das zumindest bei meiner eigenen vdr-Version (ich nutze nicht den bigpatch und auch nicht das Cody-Paket).


    Wenn Du das Original vdr-1.3.37-binary von Cody nimmst: Gibt es dann wirklich Live-AC3? Funktioniert femon mit aktivierter streamanalyse auf AC3-Sendern?


    Oder hast Du gar eine gepatchte Firmware wegen sc ? Da gibt es glaube ich noch Probleme...

    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 Wicky
    vdr-1.3.17


    hast Du die selbst kompiliert? gibt es für die alte Version überhaupt einen Live-AC3-Patch? Einen Tick schneller sollte das Umschalten auf einen AC3-Kanal aber trotzdem gehen.

    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

  • also ein Schreibfehler, Du meintest nicht 1.3.17 ;)


    o.k., in genanntem Paket ist natürlich der dxr3-AC3-Patch nicht drin.


    Kann sein, dass die bufferreserve bei der dxr3 gar nicht zum Tragen kommt, dann merkst Du natürlich auch keinen Unterschied.


    So, und wo bleiben jetzt die die Heerscharen begeisterter PVR350-Nutzer ? :)

    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

  • .. die folgen vermutlich wenn der Autor des Plugins die Änderungen auch übernimmt ; )
    aber aufregende Entdeckung hast du da gemacht! : )
    Mich stören die Pixelfehler jetzt nicht sosehr als das ich die Header Dateien umschreiben würde ...

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • Dominic hat parallel weitergehende Änderungen an seiner beta 0.0.5 gemacht, aber das Umschalten dauert nun ca. 4 sekunden. Dafür geht "spulen" nun ratzfatz. Er sucht noch ...


    Da wird sich also noch was tun ...

    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

  • Hi,
    Nur um diesen Thread nach oben zu bringen :)
    Gibt es da etwas neues?
    Ich verwende Momentan die DXR3 als Ausgabegerät, aber wenn ich eine Karte einsparen kann bin ich auch nicht böse ;)


    Mich interessiert vor allem wie es denn mit dvd und mp3 plugins beim pvr350 weitergehen könnte?!


    lg

    M2NPV-VM mit Athlon 3500+ 1GB RAM, 1x160GByte Platte +1x 200GByte Platte Airstar, PVR350, Mahlzeit ISO 3.2 + Dr. Seltsam kernel + Toxic Tonic Patch

  • nix neues :(

    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

  • ich habe in der datei device.c diese leere funktion hier gefunden:


    Code
    void cPvr350Device::SetVolumeDevice(int Volume)
    {
    }


    ist das der Grund warum die lautstärke regulierung nicht funktioniert? bzw. funktioniert sie bei jemandem mit pvr only?


    mfg

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • Hi uzer,


    bei mir geht die Lautstärkeregulierung auch nicht. Ebenso die Mute Funktion.


    Zitat

    So, und wo bleiben jetzt die die Heerscharen begeisterter PVR350-Nutzer ?


    HIER!!!


    Über eine beschleunigung des Umschaltverhaltens sowie des Spulens bei der Wiedergabe würde ich mich sehr freuen. Ist doch ganz schön lästig.


    Was brauch ich denn als Linvdr User wenn ich den Patch mal testen möchte?



    Gruß
    Heiner

    yavdr am Samsung UE 40 B 6000
    ASUS M3N78-VM GForce8200, AMD X2 4450e, Satelco EasyWatch DVB-C (auch HD), Samsung HD154UI 1,5TB, Scythe Big Shuriken, 2GB RAM, DVD NEC 3540A, Xilence Power 480Watt, SilverStone GD04B; ca. 67 Watt


  • schau mal in den 1. Thread. Für 1.3.37 gibt es ein fertig kompiliertes Plugin von mir, für neuere vdr-Versionen von Cody habe ich noch keine Zeit gehabt.

    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
    Dominic hat parallel weitergehende Änderungen an seiner beta 0.0.5 gemacht, aber das Umschalten dauert nun ca. 4 sekunden. Dafür geht "spulen" nun ratzfatz. Er sucht noch ...


    Da wird sich also noch was tun ...


    Schade das der Fehler wohl noch nicht gefunden ist. Hat jemand die Version 0.0.5 beta wo das spulen "ratzfatz" geht :) würde mir gerne dann mal das diff anschauen


    mfg

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • ich habe mal die Sourcen angehängt, die ich im Moment verwende - das ist die Version mit lahmem (aber sauberem!) Umschalten + schnellem Spulen. Zusätzlich habe ich etwas ergänzt, so dass anarmorphe Sendungen (16:9) bei entsprechender Einstellung im vdr jetzt auch so ausgegeben werden (vorher gab es immer ein Letterbox-Bild). Die Anpassung für vdr 1.4.0 ist auch schon drin.


    Der Knackpunkt ist in device.c der Bereich SetPlayMode in Verbindung mit Clear(void) (Ringbuffer clearen).


    Sobald in SetPlayMode die Firmwarecalls zum Stoppen des Decoders verwandt werden, wird das Umschalten schnell und das Spulen lahm. Damit das Spulen schnell geht, muss zusätzlich beim Leeren des Ringbuffers der Decoder mit ivtv_cfg_stop_decode gestoppt werden. Ich habe zwar Null Ahnung vom Programmieren, aber für mich sieht das fast so aus, als wenn jetzt im Ergebnis 2 x gestoppt wird.


    Über den fwcall wird wohl der Decoder direkt angesprochen, während ansonsten die Kommandos durch die 4s-Zeitverzögerung der Karte laufen. Aber beim Spulen klappt es ja schließlich auch mit sofortiger Reaktion.


    Es gibt natürlich noch mehr Unterschiede zur 0.0.4pre1, aber bei mir reichte eine Anpassung an den 2 genannten Stellen, um bei Bedarf wieder das alte Umschalt/Spulverhalten zurückzubekommen.


    Ansonsten habe ich beim Schneiden noch den hier für eine dxr3 beschriebenen Effekt:
    (vdr-1.4.0-1) Patch für DXR3-User
    und wollte den vdr-Patch nochmal testen.

    Dateien

    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

  • ok Danke. werde die Version später mal testen. Ich hoffe es tritt nicht der Effekt auf der mit der pvr350.drseltsam version auftritt (mit den sporadischen kurzen schwarzen rändern, erinnerst dich vielleicht an meinem thread dazu)


    Ansonsten, verwende momentan die 0.0.4pre1 nur mit patch damit es auf >1.3.44 läuft, mein fazit:
    - die artefakte beim umschalten stören mich nicht
    - gute halbe sekunde braucht er fürs umschalten - stört mich kaum
    - nur das spulen bei wiedergabe (ca 5 sek verzögerung) stört mich


    Zitat

    Sobald in SetPlayMode die Firmwarecalls zum Stoppen des Decoders verwandt werden, wird das Umschalten schnell und das Spulen lahm. Damit das Spulen schnell geht, muss zusätzlich beim Leeren des Ringbuffers der Decoder mit ivtv_cfg_stop_decode gestoppt werden.


    wenn das so ist, müsste doch nur im wiedergabe modus der entsprechende befehl mit ivtv_cfg_stop übergeben werden, und im live TV modus nicht :) ich versuch auch mal ein paar tests zu machen


    mfg

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

Jetzt mitmachen!

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