[ANNOUNCE] Überarbeiteter JumpPlay-Patch

  • Hi

    Aktuelle Version: vdr-jumpplay-0.3-1.2.6.diff.gz:
    http://www.vdrportal.de/board/attachment.php?attachmentid=1821&sid=

    Vor allem in Zusammenhang mit den automatisch von noad gesetzten Schnittmarken, die in vielen Fällen sehr gut sind (Great job, theNoad!), ist es einfach komfortabel, dass der Film beim Sprung zur nächsten Marke nach der Werbung gleich weiter läuft (Jump&Play). Noch komfortabler ist die zweite Funktion des Patches, beim Abspielen die Werbung einfach zu überspringen, ohne dass man irgendeine Taste drücken muss (Play&Jump).

    Leider hat der bisherige JumpPlay-Patch von http://vdr.sjur.de/ eine Reihe von Problemen, die teilweise auch schon hier im Forum angesprochen wurden:

    • Das Löschen einer Schnittmarke wird nicht abgespeichert.
    • Beim Sprung zur nächsten Schnittmarke wird die Geschwindigkeit beibehalten (selbst beim schnellen Rücklauf).
    • Überspringen des Films statt der Werbung.
    • Überspringen der Werbung klappt nicht immer.
    • Nach manuellem Sprung zur Schnittmarke springt man manchmal gleich eine Schnittmarke weiter.
    • Überspringen ist nur aktiv, wenn die Fortschrittsanzeige sichtbar ist.


    Der überarbeitete Patch behebt diese Probleme. Er beruht auf einem ungepatchten vdr-1.2.6. Die Anwendung nach Elchi oder AutoPID bedarf manueller Nacharbeit (aber alles überschaubar).

    Dass das Überspringen der Werbung nur bei sichtbarer Fortschrittsanzeige funktionierte, war evtl. genau so vorgesehen. Denn um die Schnittmarken vor dem Schneiden zu kontrollieren, wird man die Fortschrittsanzeige sowieso an haben. Aber wenn man sich eine Sendung nur einmal ansehen will, ohne sie erst zu schneiden, dann ist es unschön, die Fortschrittsanzeige immer im Bild haben zu müssen, damit die Werbepausen übersprungen werden.

    Um den alten Modus zu erhalten habe ich die Einstellmöglichkeiten für Play&Jump erweitert: nein / ja / nur bei Anzeige. Vielleicht sagt ihr mal eure Meinung dazu, ob der Modus "nur bei Anzeige" nicht ganz wegfallen kann.

    Ich hoffe, dass der Patch in seiner neuen Form mehr Leute von seiner Nützlichkeit überzeugt.
    Tom

    Nochmal überarbeiteter Patch: vdr-jumpplay-0.3-1.2.6.diff.gz (siehe unten):
    http://www.vdrportal.de/board/attachment.php?attachmentid=1821&sid=

  • Hi TomG

    Also ich bin begeisterter Nutzer von JumpPlay, verwende ihn aber nur zum schauen nicht zum schneiden.
    Finde es halt sehr angenehm, da Noad meine Filme automatisch nach Webung durchsucht und JumpPlay beim anschauen automatisch Werbung Überspringt.
    Leider habe ich auch die von Dir beschriebenen Probleme, ist wie eine Münze werfen, mal geht’s mal nicht.
    Finde die Idee für das Addon super und wenn dann alles noch funkt :bounce5

    Danke

    Pit

    Intel 1800Mhz c´t 6.1 VDR 1.6.0 Multipatch (Tobi) Plugin Timelinie Nordlicht-EPG Epgsearch Noad

  • Hi Pit!

    Auch wenn wir beide die einzigen zu sein scheinen, die JumpPlay gut finden ;(, habe ich nochmal ein paar Kleinigkeiten verbessert:
    [list=1]
    [*]Im Play&Jump-Modus habe ich das Beenden des Abspielens an der letzten Marke in Ordnung gebracht:
    menu.c cReplayControl::ProcessKey

    [*]Die Anzeige der Position erfolgt normalerweise mit Minute und Sekunde ohne Frames. Nur beim Positionieren und Anspringen von Marken wird die genaue Position inklusive Frames angezeigt. Das klappt in einigen Fällen nicht richtig (auch schon im ungepatchten vdr-1.2.6).
    Zum Beispiel wenn man vor der ersten Marke mit "7" zurückspringen will, dann wird die Aufnahme weiter abgespielt, aber mit eingeblendeten Frames. Und beim Setzen von Marken im Pause-Modus werden die Frames nicht angezeigt.
    menu.c cReplayControl::MarkToggle

    und cReplayControl::MarkJump

    [/list=1]
    In Zusammenhang mit der Frames-Anzeige ist mir noch ein Bug aufgefallen, der aber nur mit Elchi und ImprovedOSD auftritt. Springt man eine Marke an und drückt dann z.B. auf Play, dann wird unten links kurz ein Rechteck eingeblendet.
    Folgende Änderung in cReplayControl::ProcessKey von menu.c behebt diesen Bug:

    Code
    }
       if (DoShowMode)
          ShowMode();
    -  if (DisplayedFrames && !displayFrames)
    -     Interface->Fill(0, 2, 11, 1, clrBackground);
       return osContinue;
     }

    Diese Änderung ist nicht mit in der diff-Datei, da der Bug nur mit Elchi und ImprovedOSD auftritt.

    Tom

  • Hi !

    ich betreibe einen 1.2.6 mit KomplettPatch-E une einigen wenigen ! kleinen Änderungen und bin grundsätzlich sehr zufrieden. Nachdem ich heute mal wieder ein paar Stunden Forschung betrieben habe und mich dem noad Modul gewidmet habe (DOLLE Sache, wie macht es das so schnell ??) habe ich nur einen Änderungswunsch: Schnittmarken sollen eben auch bei NICHT sichtbarem Fortschritt übersprungen werden. Könnte mir jemand die Stelle (Methode reciht) nennen, wo ich eingreifen muss ?
    Es ist doch sicher im vdr.c irgendwo....

    Danke und viele Grüße, Stephan

    VDR: 2x 1.4.6; Debian 2.6.18-4-686, Celeron/P4; 1x FF 2.2 1x 2.3, 1x an ROTEL RSX972 via Kabelpeitsche. Alles via GBit an zentralem NFS Server.

  • Hi Stephan!

    Quote

    Schnittmarken sollen eben auch bei NICHT sichtbarem Fortschritt übersprungen werden.


    Genau das macht der überarbeitete JumpPlay-Patch.

    Quote

    Könnte mir jemand die Stelle (Methode reciht) nennen, wo ich eingreifen muss ?
    Es ist doch sicher im vdr.c irgendwo....


    Nicht in vdr.c, sondern in menu.c: cReplayControl::ProcessKey
    Aber die Sache ist nicht ganz so einfach, da man verhindern muss, dass nach Setzen oder Anspringen einer Marke gleich zur nächsten gesprungen wird.

    Tom

  • Danke dir, der bisherige Patch war mehr oder weniger unsauber, gebe ich zu, aber er funktionierte soweit ganz gut :)
    Da es aber sogut wie keine Rückmeldungen gab habe ich den nicht weiter entwickelt gehabt. Mir fehlte auch einfach die Zeit.

    Hast du den irgendwo auf einer HP liegen? Wenn nicht würde ich den bei mir einfach austauschen bzw. einen Link auf diesen Thread als aktuelle Version draufpacken.

  • Hi Tom,

    habe zwar nicht den JumpPlay Patch eingesetzt (wg Komplettpatch-E), mich aber trotzdem mal mit der Materie auseinandergesetzt.
    Ich habe bei ProcessKey eine neue Logik eingebaut, die :
    1.) Schnittmarken nach Anfang und Ende beurteilt (ganz simpel)
    2.) den aktuellen Index mit einem "FuzzyJump" Faktor belegt, um
    die aktuelle Schnittmarke besser zu erkennen, da das zeitweilige
    Nichterkennen von Schnittmarken einfach daran lag, dass
    ProcessKey nicht genau genug mit dem Wiedergabemodus
    synchronisiert ist und deshalb die harte Prüfung
    ((GetIndex==SchnittMarke) oftmals fehlschlägt.
    Jetzt schaue ich bei jedem ProcessKey, ob in der NÄHE [INDEX -
    FuzzyJump] eine Anfangsschnittmarke war und springe dann
    zur nächsten Endeschnittmarke (i.e. nach den Werbeblock).
    3.) Den Code an ShowProgress habe ich abgeschaltet, da ich nur die
    noad-Werbeblöckemarken überspringen will - immer.

    Zur Übung habe ich den Parameter FuzzyJump auch noch
    als einstellbaren Parameter (bei "Wiedergabe") gemacht.
    Sinnvolle Werte sind 50-100 IndexPunkte in meiner
    Konfiguration.....Mit FuzzyJump=0 verhält sich das wie vorher.

    Da ich keine Erfahrung mit den diff's habe, habe ich mal das komplette menu.c angehängt; Du kannst es Dir ja mal ansehen und mir sagen, was Du davon hälst.....Den Rest (config.c/h, i18n.c) schicke ich Dir gerne per pm, da grösser als 50kB :(
    Alles mit "//SDEXT03" markierte ist relevant; wie gesagt; beruht auf 1.2.6,Komplettpatch_E

    Viele Grüße, Stephan

  • Hi Torsten!

    Quote

    Original von Torsten/WarEagle
    Hast du den irgendwo auf einer HP liegen? Wenn nicht würde ich den bei mir einfach austauschen bzw. einen Link auf diesen Thread als aktuelle Version draufpacken.


    Eine extra Web-Seite für den kleinen Patch wollte ich nicht einrichten. Ich denke, in deiner Patch-Sammlung ist er gut aufgehoben, wenn du ihn übernehmen willst.

    Tom

  • Hi Stephan!

    Dein Ansatz ist so ziemlich der gleiche wie bei mir. Folgende Unterschiede sehe ich:

    • Bei dir wird schon vor Erreichen der Marke gesprungen.
    • Es wird nicht verhindert, dass nach Setzen oder Anspringen einer Marke gleich zur nächsten gesprungen wird.
    • Dein Parameter FuzzyJump ist bei mir nicht über das Setup einstellbar. Ich sehe auch keinen Sinn darin.
      Die Größe des Parameters habe ich so bestimmt: In der Dokumentation steht, dass ProcessKey zumindest ungefähr einmal pro Sekunde aufgerufen wird. Zur Sicherheit habe ich den Wert noch verdreifacht.
      Den Parameter zu klein zu wählen, macht keinen Sinn, denn dann springt er wieder nur zufällig. Und wenn man das Problem mit dem Weiterspringen beim Setzen oder Anspringen einer Marke gelöst hat (siehe oben), dann ist es auch kein Problem, den Wert etwas großzügiger zu bemessen.
    • Der Test, ob Anfangsmarke oder Endmarke, kann einfacher über die Indexnummer erfolgen (wie bei EditTest - Taste "8").


    Ich will dich aber jetzt nicht entmutigen. Als Einstieg in die VDR-Quellen finde ich das Programmieren so eines kleinen Patches sehr sinnvoll.

    Quote

    habe zwar nicht den JumpPlay Patch eingesetzt (wg Komplettpatch-E)


    In den Komplett-Patch wird er wohl demnächst eingebaut.

    Viele Grüße, Tom

  • Hi Tom!


    Quote

    Dein Ansatz ist so ziemlich der gleiche wie bei mir.


    :)

    Quote

    Bei dir wird schon vor Erreichen der Marke gesprungen.


    nein, sondern erst nachdem die Marke mindestens erreicht ist....

    Quote

    Es wird nicht verhindert, dass nach Setzen oder Anspringen einer Marke gleich zur nächsten gesprungen wird.


    Stimmt, aber das genau fand ich für mich ganz angenehm..

    Quote

    Dein Parameter FuzzyJump ist bei mir nicht über das Setup einstellbar. Ich sehe auch keinen Sinn darin.In der Dokumentation steht, dass ProcessKey zumindest ungefähr einmal pro Sekunde


    ... das hatte ich nur vermutet/gemessen; dann macht Deine feste "Schätzung" *3 natürlich Sinn und es muss dann auch nicht einstellbar sein....

    Aber: in welcher DOKU steht denn das ?
    Gibts noch separate Doku zu den Quelltexten ?

    Quote

    Der Test, ob Anfangsmarke oder Endmarke, kann einfacher über die Indexnummer erfolgen (wie bei EditTest - Taste "8").


    ..aha ! das muss ich mir gleich ansehen....

    Quote

    Ich will dich aber jetzt nicht entmutigen. Als Einstieg in die VDR-Quellen finde ich das Programmieren so eines kleinen Patches sehr sinnvoll.


    ...ebend

    Quote

    In den Komplett-Patch wird er wohl demnächst eingebaut.

    supi !


    Viele Grüße, Stephan

    VDR: 2x 1.4.6; Debian 2.6.18-4-686, Celeron/P4; 1x FF 2.2 1x 2.3, 1x an ROTEL RSX972 via Kabelpeitsche. Alles via GBit an zentralem NFS Server.

  • Hi

    Quote

    Original von stephanhd
    Da ich keine Erfahrung mit den diff's habe, habe ich mal das komplette menu.c angehängt;

    diff -Nur "Orginal" "geändert" > file.diff

    Dirk

    Meine Signatur

    :]Heute ist nicht alle Tage, ich schreib wieder, keine Frage :]
    VDR1: Silverstone LC14M, AMD X2-BE2350,2GB/1,5TB,DVB-s/s2/c,Gentoo,Kernel 3.8.5,VDR-2.0.0
    VDR2: Silverstone GD05B, Intel G2020, Asrock B75-Pro3M, Asus GT610/2G, 8GB/1TB, YAVDR 0.5
    VDR3: Silverstone ML03, Intel G2020, Asrock B75-R2, 8GB/1TB

  • Hi Stephan!

    Quote


    nein, sondern erst nachdem die Marke mindestens erreicht ist....


    Okay, hab ich falsch gelesen.

    Code
    SDEFuzzy = SDECurrent - Setup.FuzzyJump;
       if ( SDEFuzzy < 0 ) SDEFuzzy = 0;
    
    
       if ( SDECurrent >= SDEm->position &&
            SDEFuzzy  <= SDEm->position){


    Ist aber auch ein bisschen kompliziert. Wäre es so nicht verständlicher:

    Code
    if ( SDECurrent >= SDEm->position &&
            SDECurrent <= SDEm->position + Setup.FuzzyJump){
    Quote


    Stimmt, aber das genau fand ich für mich ganz angenehm..


    Das ist sicher Geschmacksfrage. Aber manchmal will man ja unbedingt die Werbung sehen :D Oder halt kontrollieren, ob die Marke genau gesetzt ist. Und vor allem beim Setzen von Marken irritiert es doch sehr, wenn man plötzlich wegspringt.
    Ich hab mich daran orientiert, wie es sich bedienen lässt. Wichtig ist das automatische Überspringen der Werbung doch nur, wenn man im normalen Abspielmodus ist.

    Quote


    Aber: in welcher DOKU steht denn das ?
    Gibts noch separate Doku zu den Quelltexten ?


    In der README für neue Plugins habe ich das gelesen. Und was für ProcessKey von Plugins gilt, sollte doch auch hier gelten.

    Gruß, Tom

  • Hallo,

    ich habe den gefixten Patch eingespielt und ich bin begeisert. Zusammen mit NOAD habe ich nun werbefreies Fernsehen ohne schneiden zu müssen (ich lösche fast alle Sendungen nach dem Ansehen).

    Ganz Super Arbeit !

    Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Hallo Tom,

    Quote

    Auch wenn wir beide die einzigen zu sein scheinen, die JumpPlay gut finden ;(

    nein, hier ist noch einer, wenn er jetzt funktioniert ...

    Ist doch eine sehr gute Funktionserweiterung, in Verbindung mit noad 0.4 braucht man kaum noch sehr selten die Fernbedienung (die heißt übrigens Fernbedienung, weil sie immer in der Ferne liegt ...)

    Hardy

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

  • Hi

    Markus

    Quote

    Ganz Super Arbeit !


    Danke. :)

    hardy

    Quote

    nein, hier ist noch einer, wenn er jetzt funktioniert ...


    Siehe Markus Posting :]

    Wenn hier doch so langsam der eine oder andere Interessent auftaucht, kann ich ja mal ein paar Fragen zur Weiterentwicklung aufwerfen:

    Ist der Extra-Modus "Nur bei Anzeige" wirklich notwendig? Ich habe ihn nur aus Kompatibilitätsgründen aufgenommen, um die Funktionalität des ursprünglichen Patches nachzubilden, und würde ihn gerne wieder rauswerfen, wenn ihn keiner vermisst.

    Was haltet ihr eigentlich davon, dass an der letzten Marke die Wiedergabe ganz beendet wird? Wenn man sich wirklich nur die Aufnahme werbefrei ansehen will, ohne sie vorher zu schneiden, müsste das doch okay sein. Nach dem Schneiden würde sich die Wiedergabe ja auch hier beenden.

    Ich überlege sogar, ob die Wiedergabe nicht auch gleich an der ersten Marke beginnen sollte. Natürlich nur, wenn der Merk-Index am Anfang steht. Ich weiß nur noch nicht konkret, wie ich das einbaue.

    Bitte, sagt eure Meinung dazu,
    Tom

  • hi
    hier ist noch einer der Jump&Play SUUUUUPER findet - nur das man den Fortschittsbalken aktiviert lassen musste war sch...ade.

    Gibt es jetzt einen patch der das funktionierend einbaut - ich habe VDR, ElchiAIO und ImprovedOSD.
    Wobei ImprovedOSD ja in dem neuen ElchiAIO integriert ist...

    Oder wird es auch einen Komplettpatch für die neue VDR-Release geben (sobald diese fertig ist)?
    Wobei ich nicht so ein fan von "all-inclusive-patches" bin - ich brauche viele funkionen einfach nicht... also eine seperate Patchsammlung zum selber mixen ist schöner - wenn es gepflegt werden kann.

    gruß
    dbox.network

  • Hi dbox.network

    Quote

    Wobei ich nicht so ein fan von "all-inclusive-patches" bin - ich brauche viele funkionen einfach nicht... also eine seperate Patchsammlung zum selber mixen ist schöner - wenn es gepflegt werden kann.

    Das sehe ich genauso. Deshalb habe ich den Patch auch für vdr 1.2.6 vanilla bereitgestellt.

    Wenn man aber keine fertige Patch-Sammlung benutzt, muss man selbst die auftretenden Rejects auflösen, was gerade in Zusammenhang mit Elchi/ImprovedOSD etwas knifflig ist.

    Einen guten Ansatz haben psct und Tobi für die ct-Debianpakete gewählt. Dort sind verschiedene Patch-Zusammenstellungen schon vorbereitet. Einige schon fertig als Binärpakete, weitere Kombinationen möglich durch Selbstübersetzen. Eventuell findest du dort auch einen für dich passenden JumpPlay-Patch. Sie müssten sich auch unabhängig von ctvdr und Debian als ganz normale Diff-Patchdateien verwenden lassen.

    Quote

    Oder wird es auch einen Komplettpatch für die neue VDR-Release geben (sobald diese fertig ist)?


    Im nächsten Komplettpatch soll JumpPlay drin sein. Ob es demnächst einen Komplettpatch für die neue VDR-Release (Meinst du 1.3.4 oder 1.4?) geben wird, weiß ich allerdings nicht. Und ob der JumpPlay-Patch in den neueren Versionen funktioniert, habe ich noch nicht getestet.

    Tom

  • Quote

    Original von TomG
    Das sehe ich genauso. Deshalb habe ich den Patch auch für vdr 1.2.6 vanilla bereitgestellt.

    Auch auf die Gefahr hin, dass ich ein RTFM ernte ;-). Wo finde ich den den Patch fuer vanilla?

  • hi,
    also ist der patch aus dem ersten post noch aktuell?
    ich habe das nicht so ganz herauslesen können - da hier ja über verschiedene verbesserungen gepostet wurde...
    ein klarer link zur aktuellen version währe schön :D
    (wie ja auch RaK schreibt).

    wo wir gerade dabei sind: wo gibt es die "psct und Tobi"-Pakete für debian/ct-vdr?

    wenn ich das ganze mit meinem 1.2.6+ElichAIO+ImprovedOSD ans laufen kriege bleibe ich wohl noch ne weile bei 1.2.6 :D
    ansonsten meine ich 1.4 - die entwicklerversionen 1.3.x will ich mir im augenblick nicht antun (zeitmangel weil gerade papa geworden...)

    falls also jemand ein diff für oben genannte konstellation hat ... immer her damit.

    gruß
    dbox.network

  • Hi RaK

    Quote

    Auch auf die Gefahr hin, dass ich ein RTFM ernte ;-). Wo finde ich den den Patch fuer vanilla?

    Ja, das ist inzwischen leider ein wenig unübersichtlich geworden. Deshalb habe ich jetzt in meinem Posting am Anfang des Threads einen Link auf die aktuelle Version gesetzt.

    Torsten hatte in diesem Thread auch davon gesprochen, die neue Version in seine Patch-Sammlung unter http://vdr.sjur.de/ aufzunehmen, was leider bisher nicht geschehen ist. :(

    Tom

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!