Jump to content

TimeshiftPlus Plugin, erweiterte Timeshift Funktionalität (Ringpuffer)


erwin

Recommended Posts

Hallo,

 

Deine aktuelle ini sagt mir jetzt dass Du den "Default"-Modus also den originalen DVBV-Modus für Timeshift benutzt, nicht den RingBuffer-Modus (MODE=0). Also überprüfe bitte nochmal ob TimeshiftPlus/RingBuffer-Modus auch unter x64 wirklich funktioniert.

 

Ich hatte es beim letzten mal nur ausgeschaltet.

Der Hinweis von Tabbycat war auch richtig. In der Ini ist der 14xx Wert zu hoch eingestellt.

Dadurch hab ich das Fenster nicht gesehen :-)

Wenn man den Wert kleiner einstellt, geht auch die Ini die im Archiv ist.

 

Die Initialisierung von großen Buffern, >1GB, dauert beim ersten Starten etwas lange.

Wenn ich eine Buffer > 3,5GB Eintrage wird maximal 3,5GB reserviert.

Wahrscheinlich wegen der 32Bit Grenze.

 

Wenn man die Funktion einmal genutzt hat, wird beim Beenden vom DVBV ein "Problem" festgestellt.

Egal welche Buffergröße man eingestellt hat.

Gruß

Link to comment
Lag bei mir an den Window-Settings (die 14xx für X sind bei mir weit außerhalb des sichtbaren Bereichs gewesen). War eigentlich klar das irgendwann jemand drüber stolpert.

 

@erwin: Vielleicht mal unverfänglichere Werte in die default-ini schreiben.

 

mfg tc

Upps! Danke Dir tabbycat. Ich arbeite mit zwei Monitoren und hab nicht dran gedacht. Da dürften sich dann doch einige gefragt haben warum (scheinbar) nichts passiert.

 

Also noch mal für alle: Wenn der Menüpunkt "TimeshiftPlus" keinen Dialog aufblendet, so liegt dieser Dialog wahrscheinlich außerhalb des sichtbaren Bereiches. Dann bitte manuell in der ini Datei den Wert der Windowposition: X (oder auch Y) auf sinnvolle Werte korrigieren.

 

 

mfg erwin

Link to comment
Wenn ich eine Buffer > 3,5GB Eintrage wird maximal 3,5GB reserviert.

Wahrscheinlich wegen der 32Bit Grenze.

Genau. 3,5GB ist so ziemlich das Maximum was man erhält. 4GB - 32-Bit-Grenze abzüglich diverser Treiber/Hardwarebereiche.

 

Diese Version ist für die 32-Bit-Plattform gebaut. Wenn Du es mal ausreizen möchtest, könnte ich speziell für Dich (und geneigte Tester) bei der nächsten Version auch mal einen build für die 64-Bit-Platfform anschieben. Da dies aber für mich dann einen totalen Blindflug darstellt (weil ich dies nicht testen kannn) und absolut nicht weiß was dann für Fehler auftreten werden (erfahrungsgemäß bestimmt eine Menge) möchte ich diese Spezialversion dann doch noch nicht für die Allgemeinheit bereitstellen. D.h. ihr müsstet mir sagen (evt. per PM) wohin ich das laden soll (evt per email oder wie auch immer)

 

mfg erwin

Link to comment

Hallo,

 

Wenn Du es mal ausreizen möchtest, könnte ich speziell für Dich (und geneigte Tester) bei der nächsten Version auch mal einen build für die 64-Bit-Platfform anschieben.

 

Gerne.

Ich schick dir eine PM.

 

Hast du den Grund gefunden warum der DVBV am Ende abstürzt wenn man das Plugin benutzt hat ?

 

Gruß

Link to comment
Da dürften sich dann doch einige gefragt haben warum (scheinbar) nichts passiert.

Na schön wärs, es würde "nichts" passieren. Du hast ja Cinchs Vorschlag (die Modalität des Dialogs aufzuheben) als überflüssig erachtet. Das macht dann natürlich den DVBV erst mal unbedienbar. Deswegen meine Bitte (möglichst umgehend) die .ini per Standard zu entschärfen. Der Unbedarfte wird hier nämlich ganz böse ausgebremst.

 

mfg tc

Link to comment
Du hast ja Cinchs Vorschlag (die Modalität des Dialogs aufzuheben) als überflüssig erachtet.

Nein. Ist in der Version 1.2 schon drin.

 

Das macht dann natürlich den DVBV erst mal unbedienbar.

Und lässt nach Fehlern suchen. :) Wenns nicht so gewesen wäre, wäre die falsche Fensterposition wahrscheinlich noch später aufgefallen. Trotzdem Sorry.

 

mfg erwin

Link to comment

Hier gib's die TimeshiftPlus 1.2 BETA

 

http://www.DVBViewer.info/forum/index.php?...st&id=20564

 

 

Changelog:

 

Bugfix:

- GUI

- Crash on Stop-Botton

 

Geändert:

- Optionsdialog ist nun Nicht-modal

 

Neu:

 

1. Unterstützung Fernbedienung über Action-ID's

 

Das Fernbedienungskonzept entspricht vollständig dem des DVBViewers. Aktionen werden ausgelöst in dem

an den DVBViewer Action-ID's gesendet werden. Hier gehen alle Methoden die der DVBViewer auch unterstützt:

 

A. Vereinbarung von Action-ID's in Options/Input der DVBViewers und direktes Absenden durch einen angelernten Inputbefehl. Welche Action-ID's zur Verfügung stehen wird in der Timeshift.ini konfiguriert. Z.B.

 

[ACTION ID]

OPTIONS_SHOW	  = 33050
OPTIONS_OK		= 33051
OPTIONS_APPLY	 = 33052
OPTIONS_CANCEL	= 33053
OPTIONS_MODE	  = 33054
OPTIONS_RAM	   = 33055
OPTIONS_VIRTUAL   = 33056

SLOWMOTION_PLAY   = 33060
SLOWMOTION_PAUSE  = 33061
SLOWMOTION_STOP   = 33062
SLOWMOTION_JUMP   = 33063
SLOWMOTION_RATE+  = 33064
SLOWMOTION_RATE-  = 33065
SLOWMOTION_RATE++ = 33066
SLOWMOTION_RATE-- = 33067

BOOKMARK_NEXT	 = 33070
BOOKMARK_PREV	 = 33071
BOOKMARK_ADD	  = 33072
BOOKMARK_ADD_0	= 33000
BOOKMARK_ADD_1	= 33001
BOOKMARK_ADD_2	= 33002
BOOKMARK_ADD_3	= 33003
BOOKMARK_ADD_4	= 33004
BOOKMARK_ADD_5	= 33005
BOOKMARK_ADD_6	= 33006
BOOKMARK_ADD_7	= 33007
BOOKMARK_ADD_8	= 33008
BOOKMARK_ADD_9	= 33009
BOOKMARK_0		= 33010
BOOKMARK_1		= 33011
BOOKMARK_2		= 33012
BOOKMARK_3		= 33013
BOOKMARK_4		= 33014
BOOKMARK_5		= 33015
BOOKMARK_6		= 33016
BOOKMARK_7		= 33017
BOOKMARK_8		= 33018
BOOKMARK_9		= 33019

BOOKMARK_REMOVE   = 33020
BOOKMARK_CUT_OUT  = 33030
BOOKMARK_CUT_IN   = 33031
BOOKMARK_SET_EOR  = 33041

 

bei Bedarf (z.B. weil die hier verwendeten schon genutzt werden) kann hier beliebig im Rahmen der DVBViewer Vorgaben geändert werden. Ich denke die Bezeichnungen sind selbstsprechend.

 

B. indirektes Auslösen über COM/Script (z.B. Command.vbs) mit SendCommand

C. Nutzung von SendMessage() z.B. aus Plugins oder über Girder

 

 

2. Bookmarks.

Es können verschieden Arten von Bookmarks genutzt werden:

 

A. Bookmarks #0 - Bookmarks #9

Werden gesetzt (über BOOKMARK_ADD_0 - BOOKMARK_ADD_9) und können direkt angesprungen werden (BOOKMARK_0 - BOOKMARK_9)

 

B. anonyme Bookmarks

Werden gesetzt (über BOOKMARK_ADD) und werden über Vorwärts/Rückwärts Befehle angesprungen (BOOKMARK_NEXT/BOOKMARK_PREV).

Achtung BOOKMARK_NEXT/BOOKMARK_PREV wirk auf ALLE Bookmarks.

 

C. Cut-Out's/Cut-In's. Cut-Out schaltet die Wiedergabe/Instant Recording bis zum nächsten Cut-In ab. Ab dem ersten gefundenen Cut-In gehts weiter.

 

D. End-Of-Recording Marker (EOR). Bei erreichen dieser Marke wird Instant Recording abgebrochen und der Timer gelöscht.

 

Gelöscht werden Bookmarks indem sie angesprungen werden und dann der Löschbefehl abgesetzt wird.

 

3. Zur Verwendung über COM/Scripte werden folgende Datamanagereinträge gesetzt:

 

#TimeshiftPlus.memory.usage
#TimeshiftPlus.memory.ram
#TimeshiftPlus.memory.virtual
#TimeshiftPlus.memory.buffer.1
#TimeshiftPlus.memory.buffer.1.size
#TimeshiftPlus.memory.buffer.2
#TimeshiftPlus.memory.buffer.2.size
#TimeshiftPlus.memory.buffer.1
#TimeshiftPlus.memory.allocated

#TimeshiftPlus.bookmarks.sequence - Liste aller Bookmarks
#TimeshiftPlus.bookmarks.last - Letzter Bookmarkbefehl

#TimeshiftPlus.bookmarks.bookmark0 - #TimeshiftPlus.bookmarks.bookmark9
#TimeshiftPlus.bookmarks.0, #TimeshiftPlus.bookmarks.1, ... - die anonymen Bookmarks
#TimeshiftPlus.bookmarks.cut_out.0, #TimeshiftPlus.bookmarks.cut_out.1, ... 
#TimeshiftPlus.bookmarks.cut_in.0,  #TimeshiftPlus.bookmarks.cut_in.1, ... 

#TimeshiftPlus.bookmarks.EOR.0, #TimeshiftPlus.bookmarks.EOR.1, ...

 

Es wird eine beispielhafte tsp.remote-Datei zum Import mitgeliefert. Importieren und Anlernen!

Übrigens sollte diese mal TimeshiftPlus.remote heißen. Ließ sich aber mit diesem Namen nicht importieren. Bug??

 

Der Befehl "Show all Bookmarks" ist kein eingebautes TimeshiftPlus-Kommando sondern zeigt mit Hilfe der mitgelieferten Command.vbs die Liste aller gesetzten Bookmarks (über "#TimeshiftPlus.bookmarks.sequence") an.

 

Fehler-Feedback oder Vorschläge sind ausdrücklich erbeten.

 

mfg erwin

Edited by erwin
Link to comment

Puuuh, werd ich mir alles anschauen...

 

Hast du folgenden Bug zur Kenntnis genommen bzw. konntest ihn nachvollziehen?

 

-> Beim Wrap-Around des Read-Pointers kam es bei mir zu einem kurzen Aussetzer (1 Discontinuity im DVBSource) (die Visualisierung hat sich schon rentiert)
Link to comment
konntest ihn nachvollziehen?

Hab ich auch aber, selten und unbestimmt. Weiss momentan nicht wo ich suchen soll.

 

Übrigens ist der Dialog jetzt wie von Dir vorgeschlagen NICHT-modal. Werd ich oben gleich editieren.

 

mfg erwin

Link to comment

Fragen über Fragen...

 

Wie sieht es mit der Dummy-Zone in der 1. Timeshift-Ringbuffer Runde aus?

 

Wird ein Bookmark, wenn ihn der Write-Pointer überholt, automatisch gelöscht?

 

Kann man ungefähr für ein bestimmtes System sagen, wie lange es dauert, bis ein Timeshift-Buffer von einer bestimmten Größe bei Instant Recording weggelesen ist? Muss ich mir wohl mal mit der Visualisierung anschauen, aber evtl. hast du da schon Erfahrungswerte gesammelt?

 

Kannst du mal den/die Use-Case/es für das "Cutting" beschreiben? Z.B.:

 

- Slider auf gewünschten Aufnahmebeginn setzen

- Cut-In setzen

- Slider auf gewünschtes Aufnahmeende setzen

- Cut-Out setzen

- Set-Eor setzen

 

??? Muss man dann noch die Instant-Aufnahme anstoßen, oder wird die Aufnahme als Timer dann direkt ausgeführt? Muss man das Cut-Out hier setzen oder reicht das Set-Eor?

Edited by CiNcH
Link to comment
Wie sieht es mit der Dummy-Zone in der 1. Timeshift-Ringbuffer Runde aus?

Ist inaktiv.

 

Wird ein Bookmark, wenn ihn der Write-Pointer überholt, automatisch gelöscht?

In dieser Version ist es wenn es überholt wurde nicht mehr wirksam. Bleibt aber in #TimeshhiftPlus.bookmarks.sequence erhalten bis ein neues Bookmark-Kommando abgesetzt wird. Dann wird hier die "Garbage Collection" aktiv und es wird gelöscht. Allerdings habe ich gestern Abend noch einen Bug entdeckt, so das das hier beschriebene erst mit der nächsten 1.2.1b Version kommt. Ich sammele erstmal die Fehlermeldungen.

 

Kann man ungefähr für ein bestimmtes System sagen, wie lange es dauert, bis ein Timeshift-Buffer von einer bestimmten Größe bei Instant Recording weggelesen ist? Muss ich mir wohl mal mit der Visualisierung anschauen, aber evtl. hast du da schon Erfahrungswerte gesammelt?

So mal über den Daumen: für mein 2 x 1,5 GHz-System entsprachen 10 Sek. Aufzeichnung ohne TimeshiftPlus so ca 4 Min Wiedergabe - mit TimeshiftPlus/release Buffer 2-3 Minuten. Visualisierung anschauen ist wohl eine gute Möglichkeit

 

 

Kannst du mal den/die Use-Case/es für das "Cutting" beschreiben? Z.B.:

 

- Slider auf gewünschten Aufnahmebeginn setzen

- Cut-In setzen

- Slider auf gewünschtes Aufnahmeende setzen

- Cut-Out setzen

- Set-Eor setzen

 

??? Muss man dann noch die Instant-Aufnahme anstoßen, oder wird die Aufnahme als Timer dann direkt ausgeführt? Muss man das Cut-Out hier setzen oder reicht das Set-Eor?

 

Cut-Out ....Cut-In schneidet diesen Bereich sowohl bei der normalen Timeshift-Wiedergabe als auch bei Instant-Recording heraus. Also Umgekehrt wie Du angenommen hast. Hab ich hier die angestammte Verwendung dieser Begriffe vertauscht? Muss wohl nochmal ProjectX konsultieren. Bei Cuttermaran werden diese Begrifffe scheinbar gar nicht mehr verwendet (wohl weil Cut-Out/Cut-In lt. Wikipedia nun ganz was anderes bedeuten). Apropos Cuttermaran, Schnittfunktionalität für die Endversion war hier nicht angestrebt. Also bitte keine Fragen zu den Schnittgrenzen I/P-Frame usw. Hier wird "brute force" geschnitten, ohne Rücksicht auf irgendwelche markanten Zeitpunkte im Stream. Es kann (und wird) also je nach Abspieler Probleme geben können (je nachdem ob er Unsynchronitäten wieder kompensieren kann). Also evt. mit Cuttermarn nachbearbeiten.

 

Use Cases:

 

1. Normales Instant Recording. Am beabsichtigten Aufnahmeende ein EOR setzen. An den beabsichtigten Aufnahmebeginn positionieren. IR anstoßen. Die Aufnahme wird automatisch an EOR beendet und der Timer gelöscht.

 

2.

Werbung beginnt -> setze Cut-Out

Werbung endet -> setzte Cut-In

Ergebnis: Bei der Timeshift-Wiedergabe als auch bei einem evt. Instant-Recording fehlt die Werbung.

 

3.

evt wie 2. plus Setzten EOR. Positionieren an den Anfang der beabsichtigen Aufnahme. Manuell IR anstoßen. Beendet wird automatisch durch das EOR.

 

Spezialfälle:

1. In 3. habe ich mich beim Positionieren zwischen Cut-Out und Cut-In gesetzt. Ergebnis: Es wird alles aufgezeichnet, da Cut-Out nicht wirksam wird.

 

2. Es fehlt EOR: Die Aufname muss manuell beendet werden.

 

3. Man hat versucht Cut-Out als Ende der Aufnahme zu benutzen, d.h. "ab hier kommt nichts mehr". Ergebnis: Nach dem Cut-Out wird nichts mehr aufgezeichnet. Der DVBV versucht aber ständig noch Daten aus der Timeshift-Datei zu lesen, bekommt aber keine. Was dann nach längeren Fehlversuchen der DVBV macht, wissen nur deren Entwickler.

 

4. Sequenz: Cut-Out .... EOR .... Cut-In

Die Instantaufname wir automatisch ordnungsgemäß an EOR beendet.

 

mfg erwin

Edited by erwin
Link to comment

Vielen Dank für die Use-Cases. Das sollte auf jeden Fall auf die erste Seite...

 

Ich habe immer noch denselben Darstellungsfehler im UI wie im Screenshot, den ich im Version 1.1 Bugreport gepostet habe.

Edited by CiNcH
Link to comment

Die Positionierung funktioniert nun sehr zuverlässig, das scheint mir nun produktiv einsetzbar zu sein. Ich habe effektiv einen 100MiB Ringpuffer eingestellt, um zu testen, wie das nach mehreren Ringbuffer-Runden noch aussieht. Ich konnte keine gravierenden Fehler entdecken. Allerdings kommt es in dieser Konstellation (Timeshift.ini hängt an) verlässlich bei jedem Read-Pointer Wrap-Around zu einer Lücke im Stream (DVBSource registriert dann 1 oder 2 Discontinuities) (getestet auf 'kabel eins'). Evtl. hängt das aber auch von der System-Performance ab? Aber so ein Wrap-Around ist doch eigentlich nicht wirklich aufwändig...

 

Was hältst du von einer 'Jump-to-Live'-Aktion?

 

Was steht noch auf deiner Agenda?

 

Timeshift.ini

Edited by CiNcH
Link to comment

So, nun mein erster Gehversuch mit den Bookmarks. Ich wollte exakt ein Lied auf GoTV aus dem Timeshift-Puffer aufnehmen. Also habe ich Live nach einem Lied den EOR-Bookmark gesetzt, bin dann an den Liedanfang gesprungen und habe Instant gedrückt. Hat eine sehr hohe Praxisrelevanz und funktioniert auch.

 

Schön ist, dass der Speicher bei Medienwiedergabe nun freigegeben ist.

Edited by CiNcH
Link to comment
Ich habe immer noch denselben Darstellungsfehler im UI wie im Screenshot, den ich im Version 1.1 Bugreport gepostet habe.

??? Hast Du evt. systemweit die Schriftgröße verändert?

 

Die Wrap-Discontinuities kann ich nun reproduzieren.

 

Was hältst du von einer 'Jump-to-Live'-Aktion?

Ich weiss jetzt zwar nicht welche, aber dafür gibts doch im DVBV eine Action-ID? Oder meinst Du was anderes? Etwa EOR setzen, dann gleich 'Jump-to-Live' setzen. Wenn man dann IR startet springt es automatisch in der Wiedergabe zu Live. Überlegenswert.

 

Was steht noch auf deiner Agenda?

Erst mal eine stabile 1.2 RTM. Ansonsten, bin für Vorschläge offen.

 

mfg erwin

Link to comment
??? Hast Du evt. systemweit die Schriftgröße verändert?

Nein, wüsste nicht einmal wo ;) .

 

Die Wrap-Discontinuities kann ich nun reproduzieren.

Schön. Würde mich freuen, wenn du mehr dazu berichten könntest, sobald du was herausfindest.

 

Ich weiss jetzt zwar nicht welche, aber dafür gibts doch im DVBV eine Action-ID?

Ui, muss ich mal checken.

 

Oder meinst Du was anderes?

Ich stelle mir das so vor, dass ich plötzlich was entdecke, was ich aufnehmen will, dann springe ich zum gewünschten Beginn, drücke Aufnahme und springe dann direkt nach Live zurück, wo ich dann irgendwann die Aufnahme manuell beenden kann (ganz ohne Bookmarks).

Man kann natürlich auch den umgekehrten Ansatz wählen. Bis zum Ende warten, EOR setzen, zum Anfang springen und Aufnahme beginnen (hoffentlich ist dann der Anfang halt noch im Puffer ;) ). Aber nach Live zurück will man anschließend evtl. trotzdem (ohne mühsam über Jump++).

 

Ansonsten, bin für Vorschläge offen.

Ich bin für File ;) . Ich fände es halt schön, auch bei HD möglichst viel gepuffert zu bekommen. Die virtuelle Methode scheidet für mich in jeder Hinsicht aus, weder kann man da die Platte ausschalten, noch kann man wirklich große Puffer damit realisieren (besonders auf einem 32-Bit System nicht). Ganz zu schweigen davon, dass man vom System lieber nicht zu viel Arbeitsspeicher abzweigt, die laufenden Prozesse würden es einem danken ;) .

 

 

 

Folgende Aussage von ter9999 sollte man evtl. noch prüfen:

After long time watching, the jump actions won't work correctly neither. When clicking 1 time <<, it will play the recorded video very long time ago instead of just several seconds ago.

Evtl. nur ein Problem mit eingeschalteter History? Ich habe wie gesagt mit kleinem Ringpuffer (100MiB) getestet und nach mehreren Runden war ein Jump von -10 Sekunden noch in Ordnung, sprich, das entsprachen wirklich ca. 10 Sekunden (History verwende ich nicht). Evtl. sollte man das wirklich nochmal nach einer etwas längeren Zeit testen (so wie tabbycat das bereits vorexerziert hat).

Edited by CiNcH
Link to comment
Ich stelle mir das so vor, dass ich plötzlich was entdecke, was ich aufnehmen will, dann springe ich zum gewünschten Beginn, drücke Aufnahme und springe dann direkt nach Live zurück, wo ich dann irgendwann die Aufnahme manuell beenden kann (ganz ohne Bookmarks).

Man kann natürlich auch den umgekehrten Ansatz wählen. Bis zum Ende warten, EOR setzen, zum Anfang springen und Aufnahme beginnen (hoffentlich ist dann der Anfang halt noch im Puffer ;) ). Aber nach Live zurück will man anschließend evtl. trotzdem (ohne mühsam über Jump++).

Es wäre zu überprüfen, ob davon nicht schon jetzt vieles geht. Immerhin läßt der DVBV-Action-Editor auch mehrere Befehle pro (Userdefined) Action-ID zu. Mann müßte sich dann ensprechende Befehlsequenzen zusammenstellen:

33500 -> Start IR, 'Jump to Live' ( heißt beim DVBV irgenwie anders)

33600 -> Set EOR, Jump - x, Start IR, 'Jump to Live' für die Aufnahme der letzen x Sekunden. etc.

 

Ich bin für File ;) . Ich fände es halt schön, auch bei HD möglichst viel gepuffert zu bekommen. Die virtuelle Methode scheidet für mich in jeder Hinsicht aus, weder kann man da die Platte ausschalten, noch kann man wirklich große Puffer damit realisieren (besonders auf einem 32-Bit System nicht).

Hab ich sogar schon mal angefangen und auf Eis gelegt. Ist momentan auskommentiert. Na mal sehen.

 

 

Folgende Aussage von ter9999 sollte man evtl. noch prüfen:

 

Evtl. nur ein Problem mit eingeschalteter History? Ich habe wie gesagt mit kleinem Ringpuffer (100MiB) getestet und nach mehreren Runden war ein Jump von -10 Sekunden noch in Ordnung, sprich, das entsprachen wirklich ca. 10 Sekunden (History verwende ich nicht). Evtl. sollte man das wirklich nochmal nach einer etwas längeren Zeit testen (so wie tabbycat das bereits vorexerziert hat).

Die von tabbycat angezeigte Relativierung der Jumpsprungweiten sollten mit der 1.1 eigentlich behoben sein.

 

Ich muss hier allerdings nochmal unterstreichen: Nach Anspringen von Bookmarks ist der Timeslider inclus. des Anzeigefeldes für die abgelaufene Zeit auf den Anfang gesetzt. Jumps - 10 können dann durchaus auf die falsche Position führen. Hängt mit der Negativ-Antwort auf meine Frage zusammen ob man den Timeslider von extern positionieren kann. (BTW ganz unmöglich ist dies nicht. Man müste dieses x aus Jumps-X den Tweaks entsprechend on-the-fly modifizieren, im DVBV wirksam machen, und dann wieder zurücksetzen. Bischen viel Arbeit. Vielleicht überfällt mich doch mal die Langeweile)

 

Hab noch mal ne Frage, auch an die DVBV-Entwickler. Kann der User die actions.ini ergänzen, d.h. eigene Befehlsnamen mit userdefined Action-ID's hinzufügen so das diese dann im Actions-Editor zur Verfügung stehen? Oder besser Hände weg? Wenn ja könnte mann dann den Inhalt der [ACTION ID]-Sektion aus der Timeshift.ini an diese anhängen.

 

mfg erwin

Link to comment
Erst mal eine stabile 1.2 RTM. Ansonsten, bin für Vorschläge offen.

Ich hätte noch eine Idee zum Datamanager, bzw. eine weitere Datenkomponente...

 

Im Durchschnitt bewegen sich logischer Anfange, logisches Ende (Live) und der Read-Pointer ja ca. mit derselben Geschwindigkeit. Mich würde halt interessieren, wo der Read-Pointer prozentuell gesehen zwischen logischem Anfang und Ende liegt (also das, was der Time-Slider nicht korrekt wiedergeben kann, weil seine Zeit ja stetig größer wird, bzw. er annimmt, dass der Puffer immer größer wird). Sowas wie:

#TimeshiftPlus.memory.logical_buffer_pos

Sowas würde ich mir gerne im MiniEPG anzeigen lassen.

Edited by CiNcH
Link to comment

Das hätte wirklich einen gewaltigen Mehrwert.

Wenn man allerdings bedenkt, was für Verenkungen notwendig sind um die FAV-Nr. statt der CH-Nr. ins OSD einzubinden ... es müsste halt generell mal über die Flexibilisierung der im OSD verfügbaren #"Labels" nachgedacht werden. Dann könnten mit geringem Aufwand alleine mit dem OSD-Editor wahre Wunderwerke der Usability entworfen werden. Schön wäre es dann auch das entsprechend zu kommunizieren/dokumentieren.

 

mfg tc

Link to comment

Ich verstehe diesen Einwand jetzt nicht ganz. Für die Favoritennummer gibt es halt keinen Eintrag im Datamanager. Diese Einträge kann man aber programmatisch erzeugen und im OSD dann auch nutzen (was man mit der Favoritennummer ja über VBScript gemacht hat). TimeshiftPlus kann ja schon diverse Einträge erzeugen:

#TimeshiftPlus.memory.usage
#TimeshiftPlus.memory.ram
#TimeshiftPlus.memory.virtual
#TimeshiftPlus.memory.buffer.1
#TimeshiftPlus.memory.buffer.1.size
#TimeshiftPlus.memory.buffer.2
#TimeshiftPlus.memory.buffer.2.size
#TimeshiftPlus.memory.buffer.1
#TimeshiftPlus.memory.allocated

#TimeshiftPlus.bookmarks.sequence - Liste aller Bookmarks
#TimeshiftPlus.bookmarks.last - Letzter Bookmarkbefehl

#TimeshiftPlus.bookmarks.bookmark0 - #TimeshiftPlus.bookmarks.bookmark9
#TimeshiftPlus.bookmarks.0, #TimeshiftPlus.bookmarks.1, ... - die anonymen Bookmarks
#TimeshiftPlus.bookmarks.cut_out.0, #TimeshiftPlus.bookmarks.cut_out.1, ... 
#TimeshiftPlus.bookmarks.cut_in.0,  #TimeshiftPlus.bookmarks.cut_in.1, ... 

#TimeshiftPlus.bookmarks.EOR.0, #TimeshiftPlus.bookmarks.EOR.1, ...

 

Diese sollte man im MiniEPG auch visualisieren können.

 

dvbspy.jpg

Link to comment
Im Durchschnitt bewegen sich logischer Anfange, logisches Ende (Live) und der Read-Pointer ja ca. mit derselben Geschwindigkeit. Mich würde halt interessieren, wo der Read-Pointer prozentuell gesehen zwischen logischem Anfang und Ende liegt (also das, was der Time-Slider nicht korrekt wiedergeben kann, weil seine Zeit ja stetig größer wird, bzw. er annimmt, dass der Puffer immer größer wird).

Ist dieses Feature für dich sinnvoll? Für mich nämlich schon, aber evtl. habe ich irgendwo einen Denkfehler?

 

Es wäre zu überprüfen, ob davon nicht schon jetzt vieles geht. Immerhin läßt der DVBV-Action-Editor auch mehrere Befehle pro (Userdefined) Action-ID zu. Mann müßte sich dann ensprechende Befehlsequenzen zusammenstellen:

33500 -> Start IR, 'Jump to Live' ( heißt beim DVBV irgenwie anders)

Hört sich nach einer guten Idee an. Wusste gar nicht, dass man da Aktionen aneinanderketten kann. Bezüglich DVBViewer lernt man eben nie aus... Jetzt bräuchte man halt noch die Aktion für 'Jump to Live'. Ich habe sie in der actions.ini nicht gefunden. Hast du noch eine Idee, welche Aktion das sein könnte?

Was ich noch prüfen will ist, was die Tasten |<< und >>| beim Time-Slider machen bzw. ob die den Aktionen 'Previous' (112) und 'Next' (113) entsprechen. Laut Wiki machen die einen Jump von -/+ 1 Minute? Mich haben sie letztes mal an den logischen Anfang bzw. das logisches Ende (Live) befördert. Allerdings weiß ich nicht mehr, ob da evtl. halt noch keine Minute gepuffert war...

 

Ich muss hier allerdings nochmal unterstreichen: Nach Anspringen von Bookmarks ist der Timeslider inclus. des Anzeigefeldes für die abgelaufene Zeit auf den Anfang gesetzt. Jumps - 10 können dann durchaus auf die falsche Position führen. Hängt mit der Negativ-Antwort auf meine Frage zusammen ob man den Timeslider von extern positionieren kann.

Ich glaube nicht, dass ter9999 Bookmarks verwendet hat. Dieses Feature bzw. der Umgang mit Actions müsste man erst sorgfältig dokumentieren, so trivial ist das Einrichten meiner Meinung nach nicht..

Kann das Plugin Jumps bei extrem variablen Bitraten (SD -> HD in History) zeitlich gut auflösen? Mal abgesehen davon, dass man bei einem Jump SD (MPEG-2) -> HD (H.264) kein Video mehr hätte.

Ich werde bei Gelegenheit mal bei einer Timeshift-Zeit von 2-3h testen, ob die Jumps da noch passen. Evtl. kann mich ja tabbycat unterstützen, der diesen Test schon einmal durchgeführt hat. Ich konnte bei kleinem Puffer (100MiB) und ca. 5-10 Pufferumdrehungen keine Probleme feststellen. Auch da ist ja die Relation Pufferinhalt in Sekunden zu absoluter Timeshift-Zeit im DVBViewer schon sehr groß...

Edited by CiNcH
Link to comment
Ist dieses Feature für dich sinnvoll? Für mich nämlich schon, aber evtl. habe ich irgendwo einen Denkfehler?

Sinnvoll bestimmt. Ich muß nur drauf achten dass ich nicht die Performance in den Keller schicke. Der Readpointer ändert sich häufig und dann jedesmal (oder in gewissen Abständen) einen lahmen COM-Aufruf? Muss ich ausprobieren.

 

Jetzt bräuchte man halt noch die Aktion für 'Jump to Live'. Ich habe sie in der actions.ini nicht gefunden. Hast du noch eine Idee, welche Aktion das sein könnte?

Next = 113

 

Kann das Plugin Jumps bei extrem variablen Bitraten (SD -> HD in History) zeitlich gut auflösen?

Die zeitliche Auflösung geschieht im DVBV. Ich operiere lediglich mit vom DVBV angeforderten SetFilePointer-Adressen. Es kann durchaus sein das im History-Modus da was schief geht. Schließlich geht der DVBV von ganz anderen Voraussetzungen aus, als da wirklich vorliegen. Hinzu kommen eventuelle Programmierfehler meinerseits.

 

 

Nochmal zu meiner obigen Frage: Hälst Du als DVBV-Spezi das Anhängen der [ACTION ID]-Sektion aus der Timeshift.ini an die actions.ini für kritisch (d.h. evt Tweak) oder kann man es als allgemeinen Tip empfehlen.

 

mfg erwin

Link to comment
Sinnvoll bestimmt. Ich muß nur drauf achten dass ich nicht die Performance in den Keller schicke. Der Readpointer ändert sich häufig und dann jedesmal (oder in gewissen Abständen) einen lahmen COM-Aufruf? Muss ich ausprobieren.

Ja, Änderungen sind häufig aber nicht groß, sobald der Puffer einmal voll ist. Ein 1-Sekunden-Loop in einem separaten Thread sollte nicht viel anrichten..

 

Next = 113

Muss ich nochmal checken. War auch meine Theorie... Wenn dem so ist, hatte ich die 'Jump to Live' Aktion schon immer auf der FB.

 

Nochmal zu meiner obigen Frage: Hälst Du als DVBV-Spezi das Anhängen der [ACTION ID]-Sektion aus der Timeshift.ini an die actions.ini für kritisch (d.h. evt Tweak) oder kann man es als allgemeinen Tip empfehlen.

Ich hab das ohne weiter darüber nachzudenken so gemacht. Wüsste nicht, was da schief laufen sollte. Hab das auch schon in der Vergangenheit für meine eigenen benutzerspezifischen Aktionen so gemacht, die ich dann in einem VBScript abgefangen und entsprechend behandelt habe...

Edited by CiNcH
Link to comment

Das einzige "Problem" was ich bei der actions.ini sehe ist das die Bei der DVBViewer Installation überschrieben wird (da es ja hin und wieder neue IDs direkt im DVBViewer gib denke ich auch sinnvoll).

Das heiß danach muss man immer die angepasste actions.ini von neuem in den DVBViewer Ordner kopieren.

Link to comment

'Previous' und 'Next' gehen in der Tat an Anfang bzw. Ende (Live) im Fall von Timeshift. Das sollte man im Wiki evtl. ergänzen, da steht was von -/+ 1 Minute.

Link to comment
Das einzige "Problem" was ich bei der actions.ini sehe ist das die Bei der DVBViewer Installation überschrieben wird (da es ja hin und wieder neue IDs direkt im DVBViewer gib denke ich auch sinnvoll).

Das heiß danach muss man immer die angepasste actions.ini von neuem in den DVBViewer Ordner kopieren.

Problem gelöst. Ein Verändern (anfügen von Daten) der actions.ini wird ab der nächsten Version nicht mehr erforderlich sein.

 

mfg erwin

Link to comment

Hmmm, diese Positionierung verursacht bei mir Knoten im Hirn...

 

Wenn man Live ist, ist der Slider ja immer ganz rechts. Diese Position stimmt im Plugin und im DVBViewer überein. Ein Sprung kann vom Plugin wohl noch korrekt umkonvertiert werden. Wenn man sich mit der Wiedergabe nun aber irgendwo zwischen logischem Anfang und Ende befindet, etwas Zeit verstreichen lässt, wandert der Time-Slider im DVBViewer ja immer weiter nach rechts, weil im DVBViewer-Timshift-Fall der Puffer ja ständig größer wird. Dann stimmen die Positionen von Plugin und DVBViewer gar nicht mehr überein. Ist der Ringpuffer voll befindet man sich darin prozentuell ca. immer gleich zwischen logischem Anfang und Ende, der Time-Slider expandiert aber immer weiter, so auch wo man sich prozentuell zwischen Anfang und Ende befindet. Anschließend kann ein Sprung vom Plugin doch auch nicht mehr korrekt konvertiert werden, oder?

Link to comment
Hmmm, diese Positionierung verursacht bei mir Knoten im Hirn...

Nicht nur Dir ;-)

 

Ich beschreib einfach mal was TimeshiftPlus macht.

 

1. Der User hat eine Neupositionierung ausgelöst

2. TimeshiftPlus fängt einen SetfilePointer-Aufruf ab, sagen wir für die Postion x im virtuellen File Timeshift.ts. Wenn die Neupositionierung durch den Slider erfolgt ist, dann hat DVBV x ermittelt, indem es die Sliderproportionen auf die Größe des virtuellen Files Timeshift.ts durch einfachen Dreisatz überträgt. Diese Proportionen übertrage ich nun auf die Ringpuffergeometrie wieder durch einfachen Dreisatz:

 

read-Position = ( buffer-begin + ( x / ( summe der bisher geschriebenen Bytes ) ) * Ringpuffergröße ) mod Ringpuffergröße

 

Ergebnis: Die Proportionen der neuen Position bezogen auf die Ringpuffergröße entsprechen den Sliderproportionen.

Also reicht der Rinpuffer z.B. für ca 1h und wird der Slider auf 1/3 gestellt dann ist die neue Position ca. 40 Minute von Live zurück.

 

3. Wenn die Neupositionierung durch Jumps erfolgt ist, hat DVBV x durch Subtraktion/Adddition) der aktuellen Position minus/plus einer aus der Bitrate ermittelten Distanz festgelegt.

4. In diesem Falle bestimmt TimeshiftPlus die neue Position ebenfalls durch Subtraktion/Addition:

 

read-Position = ( read-Position-aktuell -/+ x ) mod Ringpuffergröße

 

Ergebnis: Die Jumpweite sollte korrekt sein.

 

 

mfg erwin

Edited by erwin
Link to comment
read-Position = ( buffer-begin + ( x / ( summe der bisher geschriebenen Bytes ) ) * Ringpuffergröße ) mod Ringpuffergröße

Da hast du genau mein oben angesprochenes Problem. Versuch mal folgendes:

 

- Ringpuffer voll laufen lassen (der Einfachheit halber einen kleinen 100MB Puffer definieren)

- Slider ca. auf 50% positionieren

 

(der Ringpuffer bleibt von der Größe konstant und man bleibt natürlich ca. bei 50% weil logischer Anfang und logisches Ende ja schieben, DVBViewer geht aber von einer Vergrößerung des Puffers aus, der Slider verschiebt sich nach rechts)

 

- Positioniere den Slider nun zwischen 50% und aktueller, durch den DVBViewer nach rechts verschobenen Position (also eine kleine Linksverschiebung des Sliders)

 

Da landest du _nicht_ in der Vergangenheit (was du durch Linksverschiebung des Sliders erwartet hättest), sondern in der Zukunft, weil sich der Slider bei >50% befindet (vor der Verschiebung befand man sich im Ringpuffer bei 50%).

Edited by CiNcH
Link to comment

Zuerst möchte ich mich für dieses tolle Plugin bedanken. Beim testen bin ich jedoch auf ein paar kleine Probleme gestoßen.

 

Als Erstes, dass es bei deaktivierter Option „realease buffer on timeshift stop“ bei Aufnahmen aus dem Puffer ab dem Wechsel von Pufferdaten zu den Realtimedaten zu Fehlern kommt. Bei der Wiedergabe der Aufnahme treten dann ab dem Wechsel von Pufferdaten zu Realtimedaten permanent Bild und Tonstörungen auf. Bei aktiviertem „realease buffer on timeshift stop“ tritt dieser Fehler nicht auf. Nur habe ich dann das Problem, dass das Umschalten der Kanäle sehr träge wird und ich nicht immer den nächsten Kanal in der Kanalliste erwische sondern Sender übersprungen werden(meine Fernbedinung ist mit Winlirc angebunden).

 

Mein System läuft mit WinXp SP3, 2GB Ram davon sind 768MB im Ringbuffer verwendet.

 

Ein weiteres Problem ist wenn man bei Live-TV Pause drückt und später mit Play weiter sehen will es teilweise nicht ab der Pauseposition sondern vom Anfang des Puffers wiedergegeben wird. Wenn man das gleich noch mal versucht funktioniert es wie es soll.

 

viele Grüße R@lf

Link to comment
Als Erstes, dass es bei deaktivierter Option „realease buffer on timeshift stop“ bei Aufnahmen aus dem Puffer ab dem Wechsel von Pufferdaten zu den Realtimedaten zu Fehlern kommt. Bei der Wiedergabe der Aufnahme treten dann ab dem Wechsel von Pufferdaten zu Realtimedaten permanent Bild und Tonstörungen auf. Bei aktiviertem „realease buffer on timeshift stop“ tritt dieser Fehler nicht auf.

Meiner Meinung nach macht die "History" sowieso keinen Sinn. Zu eingeschränkt kann dieser Fall von einem Plugin behandelt werden (e.g. Wiedergabegraph, Slider-Control, welcher beim Umschalten durch den DVBViewer zurückgesetzt wird usw.).

 

Nur habe ich dann das Problem, dass das Umschalten der Kanäle sehr träge wird und ich nicht immer den nächsten Kanal in der Kanalliste erwische sondern Sender übersprungen werden(meine Fernbedinung ist mit Winlirc angebunden).

Das ist interessant. Da dauert das Allokieren wohl recht lange? Bei mir ist das sehr flott... nicht spührbar (auch bei 1GiB nicht). Aber warum da ein Kanal übersprungen wird? o:)

 

Ein weiteres Problem ist wenn man bei Live-TV Pause drückt und später mit Play weiter sehen will es teilweise nicht ab der Pauseposition sondern vom Anfang des Puffers wiedergegeben wird. Wenn man das gleich noch mal versucht funktioniert es wie es soll.

Das Problem sollte eigentlich vom Tisch sein. Hmm, muss ich nochmal prüfen. Wie lange hast du gewartet? Evtl. hat der Write-Pointer den pausierenden Read-Pointer wieder eingeholt. Dann sollte er dahin positionieren, wo die ältesten Daten im Puffer liegen (Write- schiebt Read-Pointer vor sich her) = logischer Anfang..

Edited by CiNcH
Link to comment

Weiteres Problem bei Verwendung des Timeshift-Plugins:

 

Beim Aufrufen des 'Extended Exit' OSD's hängt sich der DVBViewer komplett weg. Konkret heißt das, er schließt sich einfach und Audio hängt in einer fiesen Endlosschleife, woraufhin ich die Soundkarte über den Geräte-Manager neu aktivieren muss.

 

Wie kommt man zum 'Extended Exit' OSD:

- DVBViewer-Optionen -> Shutdown -> 'extended Exit' aktivieren

- die Aktion mit der ActionID 12294 (=Exit) ruft das OSD dann auf

 

Kann das wer nachvollziehen?

 

(beim concinnity OSD Skin und der beiliegenden windowdef.xml (die man nach DVBViewer-Root kopieren muss) kann man Extended Exit auch über das Hauptmenü aufrufen)

Edited by CiNcH
Link to comment
Meiner Meinung nach macht die "History" sowieso keinen Sinn. Zu eingeschränkt kann dieser Fall von einem Plugin behandelt werden (e.g. Wiedergabegraph, Slider-Control, welcher beim Umschalten durch den DVBViewer zurückgesetzt wird usw.).

Da bin ich eigentlich auch ganz deiner Meinung.

Den Pufferinhalt habe ich eigentlich nur wegen der Verzögerung beim Kanalwechsel bei aktivierter Pufferleerung und weil beim zappen oft Kanäle übersprungen werden behalten. Warum es aber bei Aufnahmen beim Übergang von Puffer zu LiveTV zu den Fehlern kommt ist mir noch nicht ganz klar. Da ich nur immer was von aktuell eingestellten Sender Aufgezeichnet habe. :)

Ich weis nicht ob ich mir das einbilde, aber bei Version 1.0 als es noch die Option "Pufferleerung bei Kanalwechsel" separat gab, hatte ich diese Verzögerung nicht.

 

Aber warum da ein Kanal übersprungen wird? o:)

Der Sache bin ich noch mal etwas nachgegangen und mein Fazit ist, dass es ein Zusammenspiel aus release buffer und dem Winlirc-Plugin sein muss. Denn wenn ich mit der Tastatur durchzappe erwische ich jeden Kanal. Daraufhin habe ich mal die die Repeat delay im Winlirc-Plugin um 100ms erhöht was die Treffsicherheit erhöht hat. Ich werde das mal beobachten.

 

Das Problem sollte eigentlich vom Tisch sein. Hmm, muss ich nochmal prüfen. Wie lange hast du gewartet? Evtl. hat der Write-Pointer den pausierenden Read-Pointer wieder eingeholt. Dann sollte er dahin positionieren, wo die ältesten Daten im Puffer liegen (Write- schiebt Read-Pointer vor sich her) = logischer Anfang..

Das sich der Pointer verhaspelt, tritt nur auf wenn ich den Pufferinhalt beim Umschalten behalte und nach einem Kanalwechsel z.B den Sender dann 5 Minuten laufen lasse. Dann Pause drücke und ca. 30 Sekunden warte, anschließend wieder Play drücke, geht es nicht an der Stelle weiter wo ich Pause gedrückt habe, sondern noch weiter in der Vergangenheit. Das sollte sich aber erledigt haben wenn ich das mit dem Kanalwechsel ordentlich funktioniert.

Link to comment
Weiteres Problem bei Verwendung des Timeshift-Plugins:

 

Beim Aufrufen des 'Extended Exit' OSD's hängt sich der DVBViewer komplett weg.

 

Ich nutze hier auch das erweiterte Shutdown Menu und kann derartige Probleme nicht feststellen.

 

Gruß R@lf

Edited by R@lf
Link to comment

Auf die gleiche Weise kackt mir der DVBViewer mit TSPlus-plugin weg, wenn ich den OSD-Skin wechseln will.

 

Komisch. Ich habe schon alle anderen Plugins entfernt. Das TSPlus-Plugin ruft das Verhalten bei mir hervor..

Link to comment

Ich zitiere mich mal selber...

 

Beim Aufrufen des 'Extended Exit' OSD's hängt sich der DVBViewer komplett weg.
Auf die gleiche Weise kackt mir der DVBViewer mit TSPlus-plugin weg, wenn ich den OSD-Skin wechseln will.

 

Ich kann das Problem nun noch etwas einkreisen. Es passiert nur dann, wenn ich im Plugin die Option wähle, den DVBViewer im RAM zu locken.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...