TrickSpeed - brauche Hilfe

  • so habe ich das im PVR350-Plugin jetzt gebastelt:



    vdr ist auf Multispeed-Modus konfiguriert. Wenn ich jetzt aus Play heraus den Bildsuchlauf vorwärts betätige (=Pfeiltaste rechts drücke) , ist sofort eine schnelle Vorlaufgeschwindigkeit da. Das funzte auch schon, als dieser Abschnitt nur so aussah:


    Code
    void cPvr350Device::TrickSpeed(int Speed)
    {
    	printf("Set speed %d\n",Speed);
            m_RingBuffer->Clear();
    	SetPlayMode(m_PlayMode);
    }


    Wenn ich beim neuen Code jetzt die Geschwindigkeitsstufe erhöhe (also nochmal Pfeil rechts für Stufe 2 drücke, wirds langsamer. Einen zurück auf Stufe 1 wirds noch langsamer. Und Stufe 3 ist dann etwa so schnell wie Stufe 1, wenn sie beim ersten Drücken auf die rechte Pfeiltaste aufgerufen wird. Klingt kompliziert, ich weiss :)


    Ich begreife die Zusammenhämnge zwischen dem vdr-Code und dem plugin-Code als Programmier-Laie nicht so recht.


    Hat jemand eine Idee, wie ich erreichen kann, dass bereits beim ersten Tastendruck die Stufe 1, wie sie durch ivtv dargestellt wird, zum Einsatz kommt?

    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

  • Du weißt das VDR im "Trick-Modus" nur I-Frames spielt?


    d.h. ohne weitere Maßnahmen wird die Wiedergabe dann 12x so schnell sein.
    Für die langsameren Stufen mußt du die Wiedergabe verlangsamen, also die einzelnen I-Frames mehrfach ausgeben.


    Auf DVB Karten ist das so gelöst, das bei Stufe 1 & 2 die I-Frames in Zeitlupe wiedergegeben werden: z.B. I-Frames = 12x, Zeitlupe 1/3x, ergbit 4x. Bei Stufe 3 werden die I-Frames ohne Verzögerung ausgegeben.


    Klar?

  • ist klar, genauso macht das der ivtv-Treiber auch. Alle drei Geschwindigkeiten funktionieren ja auch. Aber warum kriege ich die erste Geschwindigkeitsstufe nicht beim ersten Aufruf, sondern erst, nachdem ich die Geschwindigkeitsstufe erhöhe und dann wieder zurücknehme ?

    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,
    mir fällt nur auf, das du in deinem Switch keinen default-wert drin hast. auch wird 'speed' nicht initialisiert.
    da in beiden fällen (vor allem auch im 2ten, einfachen) alles gleich bleibt hat es wohl etwas damit zu tun, das der wert garnicht dort ankommt, wo du ihn hinhaben willst.
    das "SetPlayMode(m_PlayMode)" scheint da so eine art 'toggle' charakter zu haben.

  • hört sich an, als wenn Du etwas davon verstehst :)


    hast Du vielleicht einen Tip für mich, wie ich das einbauen könnte? Ich muss gestehen, dass ich nicht wirklcih Ahnung vom Programmieren habe, sondern mir die Codeschnipsel zusammengeklaut habe...

    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

Jetzt mitmachen!

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