Jump to content

TimeshiftPlus Plugin, erweiterte Timeshift Funktionalität (Ringpuffer)


erwin

Recommended Posts

EDIT 27.11.09:

Wer gleich zum aktuellen Stand des Plugins will:

http://www.DVBViewer.info/forum/index.php?...st&p=272438

 

Hallo test- und experimentierfreudige Nutzer!

 

Da doch ab und zu Wünsche und Anregungen, die den unten genannten Punkten entsprechen, gepostet werden, möchte ich ein Experimentiermodul zur Verfügung stellen damit sich jeder ein eigenes Bild von den Problemen oder evt. Möglichkeiten eines Plugins machen kann. Getestet und ausprobiert werden können erweiterte Timeshift-Funktionalitäten.

 

 

1. Ringpuffer-Design

 

Bei Überschreiten einer definierten Größe der gepufferten Timeshiftdaten werden die ältesten Einträge durch die aktuellen überschrieben. Man hat also ein rückblickendes Zeitfenster relativ definierter Größe (abhängig von Puffergröße und Datenrate).

 

Probleme:

 

- siehe diverse Antworten der DVBViewer-Entwickler zur Problematik eines Ringpuffers hier im Forum

- http://www.DVBViewer.info/forum/index.php?...mp;#entry232362

 

2. Der Timeshiftpuffer wird im Hauptspeicher realisiert, nicht als Datei.

Vorgesehen ist optional Virtueller Speicher oder physikalischer RAM. In dieser Version ist die Speicherung im RAM realisiert. Die Option virtueller Speicher ist lediglich aus Zeitgründen noch nicht realisiert.

EDIT 04.03.09

Es gibt nun die Wahl zwischen physisch RAM und virtuellem Speicher.

 

Probleme:

 

- Sytembeschränkungen unter XP hinsichtlich der Größe: max. 4 GB davon nutzbar 2 GB (bzw. 3 GB mit boot.ini Eintrag). Eine weitere Beschränkung: Der Speicher muss zusammenhängend verfügbar sein. Da die Directshow-Module im DVBViewer den Speicher ziemlich fragmentieren, wird ein eigener Prozess (RingBuffer.exe) aufgespannt. Leider platziert Microsoft die kernel.dll unverrückbar an einer festen Position im Speicherraum so das diese den Speicherraum in zwei Teile zerlegt. (In einer späteren Version werde ich den Ringpuffer aus zwei Teilstücken aufbauen)

EDIT 04.03.09

Ist realisiert

 

- der Speicher wird bis zu angegebenen Maximalgöße im RAM gelockt und steht fortan für weitere Prozesse nicht mehr zur Verfügung. Geht man hier zu großzügig vor, schläft das ganze System incl. DVBViewer ein da nun ständig das Paging aktiv ist.

 

 

3. Kanal übergreifende Aufzeichnung

 

Im Timeshiftpuffer steht die Historie der geschauten Kanäle zur verfügung. Der Puffer wird bei Kanalwechsel nicht geleert.

EDIT 04.03.09

Es gibt die zwei Optionen: Puffer leeren bei Kanalwechsel oder nicht.

 

Probleme:

- Bei der Wiedergabe kann ein solcher Wechsel allerdings zu Rucklern bzw. Einfrierern führen. Ich habe versucht dieses Problem durch Auslösen eines "Jump + 10 Sek" zu lösen. Ob es wirklich alle Fälle abdeckt werden weitere Tests zeigen müssen. Jedenfalls ist der Wechsel von N24 auf ntv jetzt bei mir kein Problem mehr (führte sonst _immer_ zu Einfrierern).

 

- Ein momentan nicht gelöstes Problem ist die Wiedergabe von Kanälen die im Timeshiftpuffer in einem anderen Audioformat als der monmentan eingestellte Kanal vorliegen. MPEG-Audio vs. AC3-Audio. Die Wiedergabe bleibt stumm. Hintergrund: Der DVBViewer baut seinen Filtergraphen auf Basis der vorliegenden PMT/PID-Infos auf und hatte bisher keinen Grund einen solchen Formatwechsel anzunehmen. Vielleicht kommen ja seitens der DVBViewer-Experten ein par Tips. Auch könnte ich versuchen einen eigenenAudiographen aufzubauen der dann anspringt.

 

 

 

4. Sofortaufnahme ab aktueller Timeshiftposition, Rückwirkende Aufnahme

 

Die Aufnahmedatei wird zunächst aus dem Timeshiftpuffer beschrieben und dann durch die real time eingehenden Daten fortgesetzt (so wie im Standard Sofortaufnahmemodus auch).

 

Probleme:

 

- die nachholende Aufnahme aus dem Timeshiftpuffer kann ganz erhebliche Zeit beanspruchen. Die Zeit die das System für das normale Kopieren von sagen wir 1GB braucht (Transferrate Festplatte) kann ich auch nicht signifikant unterbieten. In dieser Zeit scheint der DVBViewer nicht normal zu reagieren. Z.B. erscheint das Recording-Logo verspätet. Auch ist in dieser Version noch kein Abbruch möglich.

 

 

- Ob es beim Wechsel von den Pufferdaten zu den Realtimedaten zu Diskontinuitäten kommt kann ich im Moment noch nicht einschätzen.

 

- In dieser Version (noch) wird ausnahmslos im Trasportstreamformat (*.ts) aufgezeichnet unabhängig was man im DVBViewer eingestellt hat.

 

 

- der Aufnahmemodul kann nicht zwischen normalen Timeraufnahmen und Sofortaufnahmen unterscheiden. (Vielleicht kann der DVBViewer ja mal was in den Dateinahmen einbauen). Deshalb wird für ca. 10 Sekunden ein Dialog eingeblendet. In dieser Zeit muss der die Sofortaufname auslösende Nutzer die "Aufnahme ab Position" bestätigen, andernfalls wird der normnale Modus gefahren (ab programierten Zeitpunkt, nicht etwa 10 Sek. später).

 

 

(Habe ich nun doch wieder kurzfristig deaktiviert, Wird nachgereicht)

 

 

5. Slowmotion/Fast Forward

 

Für Sportfans die das Foul oder Tor noch einmal genau begutachten möchten. Die Wiedergabe setzt ein par Sekunden vorher ein.

 

 

Probleme:

 

- Der Haali-Mediasplitter (Matroska-Splitter) muss installiert sein. Ausgehend von diesem Sourcefilter wird ein eigener Wiedergabegraph aufgebaut. Damit Slowmotion funktioniert müssen _alle_ Filter in diesem Graphen Slowmotion unterstützen. Mediamatics oder Cyberlink-Dekoder funktionieren bei mir. Intervideos Dekoder funktioniert bei mir nicht ( _ohne_ Abgabe eines Fehlercodes). Andere erzeugen Fehlercodes.

EDIT 27.02.09

Da der Graph (in dieser Testversion ) automatisch in Regie des Filter-Managers aufgebaut wird, ist also für Experimente gegebenenfalls der Merrit der nicht gewünschten Filter zu verringern. Hilfsmittel: Radlights Filtermanger; Graphedit etc.

Der Decoder ist nun frei wählbar,was nicht heisst dass nun alle funktionieren. Massnahmen zur Veränderung des Merriten sind nicht mehr erforderlich.

 

 

- Steht der Slider ganz rechts (Realtimewiedergabe) oder kurz davor kommt es noch zu Positionierungsfehlern beim Startzeitpunkt bzw. keiner Wiedergabe.

 

 

- Ebenfalls wird es zu Problemen kommen - wie zu erwarten - wenn der Schreibpointer den für Slowmotion zuständigen Lesepointers weiterschiebt. Das sind Sliderpositionen ganz links bzw. Slowmotion aus einer (veralteten, weil überschriebenen) Pauseposition heraus.

 

 

 

Allgemeine Probleme:

 

- Da mir der Quellcode des DVBViewers nicht zur Verfügung steht und die Plugin-SDK Schnittstelle nicht ausreicht musste ich so ziemlich von Hinten durch die Brust programmieren. Ob dies auch unter Vista funktioniert weiss ich nicht? Habe nur XP zur Verfügung.

 

- DVBViewer GE habe ich noch nicht getestet. Habe jedenfalls keine COM benutzt.

 

- nur SD, HD wird nicht funktionieren

 

- nach Abstürzen verbleibt evt. die (unsichtbare) RingBuffer.exe mit dem gelockten Speicher aktiv. Ein erneuter DVBViewer Aufruf macht zwar wieder Klar-Schiff, aber für den Fall der Fälle: manuell killen.

 

 

 

 

Also wen's nicht abschreckt: Timeshift.dll, Timeshift.ini und RingBuffer.exe in das Plugin-Verzeichnis.

 

mfg erwin

 

 

EDIT: Attachment space used 511.55k of 512k. Upload failed. The file was larger than the available space. ?????

Edited by erwin
Link to comment
Probiers bitte nochmal, ich habe Deinen Speicherplatz jetzt auf 10MB hochgesetzt.

 

EDIT 26.02.09 14:30 Neue Version!

EDIT 27.02.09 15:00 Neue Version!

EDIT 04.03.09 09:30 Neue Version!

EDIT 30.03.09 09:30 Neue Version!

 

EDIT 01.09.09 09:30 Neue Version!

Changelog hier: http://www.DVBViewer.info/forum/index.php?...st&p=260287

 

EDIT 02.09.09 09:00 Bugfix

EDIT 03.09.09 14:45 Bugfix (Welche? Bitte ab hier http://www.DVBViewer.info/forum/index.php?...t&p=260473) nachlesen.

EDIT 04.09.09 13:20 Bugfix (wiedermal die Positionierung)

 

EDIT 01.10.09 15:00 Version 1.1

EDIT 14.10.09 13:30 Version 1.2 BETA

EDIT 27.11.09 11:30 Version 1.2.1 BETA

 

TimeshiftPlus.zip

Edited by erwin
Link to comment
  • 2 weeks later...

Oh, das hab ich ja komplett übersehen. Das muss ich am Abend unbedingt ausprobieren..

 

Habe ich das richtig verstanden, dass nur für Slowmotion/Fast Forward der Haali benötigt wird?

 

Ich nehme an, dass der Timeslider im DVBViewer für Sprünge auch mit dem DVBSource funktionieren wird, oder? Da erfolgt je eine direkte Kommunikation DVBViewer-> DVBSource.

Link to comment
Habe ich das richtig verstanden, dass nur für Slowmotion/Fast Forward der Haali benötigt wird?

 

Ja! Es gab zwar Ansätze dafür auch den DVBSource zu benutzen aber der momentane Stand ist: für Slowmotion wird Haali benötigt.

 

 

Ich nehme an, dass der Timeslider im DVBViewer für Sprünge auch mit dem DVBSource funktionieren wird, oder? Da erfolgt je eine direkte Kommunikation DVBViewer-> DVBSource.

 

So ist es. An der GUI gibt es keine Veränderung.

 

 

 

Noch ein par Bemerkungen:

 

1. Der Ringpuffer wird in der aktuellen Version ausschließlich im RAM gehalten. Dies geht jedoch nur mit ADMIN-Rechten. Eine Version mit optionalen virtuellen Speicher die dann auch für normale User funktioniert ist in Arbeit.

 

 

2. Slowmotion wird nicht von jedem Decoder unterstützt. Cyberlink, Elecard sind OK. Intervideo scheinbar nicht. Andere müssen noch untersucht werden.

 

 

3. Ich stelle noch heute am alten Download link eine neue Version bereit. Hier sind die Möglichkeiten im Slowmotionwindow verbessert worden. Unter anderem sind neu: (Re-)Play, Pause, Stop, Startzeitpunkt nun ca 3 Sek ab Auslösepunkt zurück sowie selektierbare Ausschnittsvergrößerung über Kontextmenü

 

mfg erwin

Edited by erwin
Link to comment
WOW, das hört sich alles toll and... aber auch sehr aufwändig :-(

 

Ringpuffer im Arbeitsspeicher klingt echt nach einer brauchbaren Lösung!

 

Aufwendig - ja für mich. Lass dich nicht durch meine vielen Anmerkungen zu den Problemen abschrecken. Ich wollte nur den Eindruck vermeiden, hier steht ein fast fertiges Plugin zur Verfügung.

 

Aber - ist ja eigentlich klar - auf eigene Verantwortung! Falls irgendwelche wichtigen programmierten Aufnahmen anstehen, sollte das Plugin besser deaktiviert (aus dem Pluginordner entfernen) sein

 

mfg erwin

Link to comment

Wie funktioniert das dann im Zusammenhang mit dem normalen Timeshift und den Aufnahmen im DVBViewer?

 

Wenn ich auf Pause schalte, wird dann doch noch auf die Festplatte geschrieben?

Bekomme ich beim Umschalten eine Warnung, wenn ich versetzt schaue?

 

lg

Link to comment
Wie funktioniert das dann im Zusammenhang mit dem normalen Timeshift...

"normales Timeshift" ist deaktiviert, d.h. es wird keine Datei angelegt. Alle GUI-Elemente (incl. Menüpunkte ) des normalen Timeshift sind wie gewohnt nutzbar.

 

... und den Aufnahmen im DVBViewer?

Optional besteht die Möglichkeit rückwirkend aus dem Ringpuffer heraus eine Aufnahme zu starten. Allerdings gibt es noch einige Probleme im Zusammenspiel mit den "normalen Aufnahmen" - wie Du ja auch vermutest. In dieser Version ist deshalb diese Funktion von mir wieder vorübergehend deaktiviert worden so dass eigentlich keine Unterschiede zum normalen Handling auftauchen sollten.

 

Wenn ich auf Pause schalte, wird dann doch noch auf die Festplatte geschrieben?

Wie schon gesagt, es wird nichts mehr auf Platte geschrieben. Es sei denn durch das OS beim Paging (wenn ich in einer der nächsten Versionen die Option für Verwendung von virtuellen Speicher eingebaut habe). Nach einer Pause geht es normal weiter, falls - ja falls die Daten noch nicht wieder überschrieben worden sind. Dies ist nun mal die Natur eines Ringpuffers. Dann gibt es einen Sprung nach vorn. Hier hab ich noch was zu tun. denn dieser Sprung ist von Rucklern begleitet und manchmal gibst auch Einfrierer in der Timeshiftwiedergabe (Timeshift aus/an und vielleicht auch Graph neuaufbauen).

 

 

Bekomme ich beim Umschalten eine Warnung, wenn ich versetzt schaue?

Hängt vom Verhalten des DVBViewers ab. Ich hab jedenfalls nichts eingebaut. Wenn ich den Kanal wechsle aber zeitversetzt schaue wird die Wiedergabe vom DVBViewer im neuen Kanal realtime fortgesetzt. Die alten Kanäle sind aber immer noch für eine gewisse (Ring-)Zeit zeitversetzt anschaubar - im Gegendsatz zum Originalverhalten.

 

mfg erwin

Link to comment

EDIT des Ausgangsposts:

 

Da der Graph (in dieser Testversion ) automatisch in Regie des Filter-Managers aufgebaut wird, ist also für Experimente gegebenenfalls der Merrit der nicht gewünschten Filter zu verringern. Hilfsmittel: Radlights Filtermanger; Graphedit etc.

Der Decoder ist nun frei wählbar,was nicht heisst dass nun alle funktionieren. Massnahmen zur Veränderung des Merriten sind nicht mehr erforderlich.

 

mfg erwin

Link to comment
Der Decoder ist nun frei wählbar,was nicht heisst dass nun alle funktionieren. Massnahmen zur Veränderung des Merriten sind nicht mehr erforderlich.

Bei mir war da in der Auswahl nur der 'ffdshow Video Decoder'. CyberLink, ArcSoft usw. sind auch installiert...

 

 

Wenn das Plugin bei mir eingebunden ist, crasht der DVBViewer (4.0.1.20) beim Beenden mit Windows Problembericht senden usw. (WinXP).

 

Kann man diese Kanalhistory auch ausschalten? Sprich, dass beim Umschalten der TimeShift-Buffer resettet wird?

 

Bezüglich TimeShift-Controls im DVBViewer... auf die Zeitanzeige beim Timeslider darf mit dem TimeShift Plus Plugin nicht mehr beachtet werden, die läuft kontinuierlich weiter.

 

Mir ist echt schleierhaft, wie man über API die TimeShift-Funktion im DVBViewer überschreiben kann :D .

Edited by CiNcH
Link to comment
Der Decoder ist nun frei wählbar,was nicht heisst dass nun alle funktionieren.
Bei mir war da in der Auswahl nur der 'ffdshow Video Decoder'.

@erwin: Wie ermittelst du die Decoder? IFilterMapper2? Falls du dabei Unterstützung brauchst, sende mir eine PM.

Link to comment
Bei mir war da in der Auswahl nur der 'ffdshow Video Decoder'. CyberLink, ArcSoft usw. sind auch installiert...

In der Tat werden momentan nur die gefundenen angeboten, die in einer "Whitelist" stehen. ArcSoft ist nicht dabei. Cyberlink schon! Hmm? Ich werde mal alle anbieten damit auch Arcsoft getestet werden kann.

 

Wenn das Plugin bei mir eingebunden ist, crasht der DVBViewer (4.0.1.20) beim Beenden mit Windows Problembericht senden usw. (WinXP).

Bleibt noch was für mich zu tun ;-)

 

Kann man diese Kanalhistory auch ausschalten? Sprich, dass beim Umschalten der TimeShift-Buffer resettet wird?

Ist als Option schon vorgesehen.

 

Mir ist echt schleierhaft, wie man über API die TimeShift-Funktion im DVBViewer überschreiben kann :D .

Von Hinten durch die Brust halt ;-)

 

mfg erwin

Link to comment
@erwin: Wie ermittelst du die Decoder? IFilterMapper2? Falls du dabei Unterstützung brauchst, sende mir eine PM.

 

Ich schau es mir noch mal kurz an. Wenns dann doch länger dauert, nehme ich Deine Hilfe dankend an.

 

mfg erwin

Link to comment
Bezüglich TimeShift-Controls im DVBViewer... auf die Zeitanzeige beim Timeslider darf mit dem TimeShift Plus Plugin nicht mehr beachtet werden, die läuft kontinuierlich weiter.

Echtes Problem für mich, da die Zeitanzeige eine völlig neue Semantik erhalten hat. Die beste Lösung wäre, wenn ich die irgendwie ausschalten/ersetzen könnte

 

EDIT: Also das Problem besteht für mich darin das keines der GUI-Controls der DVBViewers irgendwie vom Plugin angefasst wird.

 

mfg erwin

Edited by erwin
Link to comment
Bereits jetzt? Wo und wie?

Demnächst. Vielleicht noch heute zusammen mit der Dekoderauswahl.

 

Kannst du bitte die Optionen in der ini etwas erläutern?

 

[WINDOW]

X=100

Y=100

 

Position des Plugin-Dialogs. Wird beim Verschieben desselben aktualisiert.

TODO für mich: Bei Multimonitorbetrieb stehen hier manchmal Extremwerte (X=-1005) so dass der Dialog außerhalb des Monitors liegt. Z.Z bitte gegebenenfalls händisch korrigieren. Plausi wird eingebaut.

 

[TIMESHIFT]

MODE=1 // 0 = klassischer Timeshift; 1 - TimeshiftPlus

SIZE=512 // Puffergröße in MiB

PERMANENT=0 // obsolet

RESERVE=64 // Größe der "Dummy Zone" in MiB

 

alle diese Werte können im Dialog gesetzt werden

 

[RECORD]

MODE=0 // 0 - klassischer Sofortaufnahmemodus, 1 - rückwirkende Aufnahme ab Pufferposition

// Mode=1 z.Z. ohne Wirkung, da im Quellcode deaktiviert

 

alle diese Werte können im Dialog gesetzt werden

 

[sLOWMOTION]

DECODER={BC4EB321-771F-4E9F-AF67-37C631ECA106} // CLSID des verwendeten Decoders

X=0 // X-Position des Slowmotion windows

Y=0 // Y-Position des Slowmotion windows

 

X, Y werden automatisch gesetzt. (Unter DECODER ArcSoft einzutragen bringt aber momentan nichts, da Whitelist, siehe oben)

 

TODO für mich RATE=0,3 // Abspielgeschwindigkeit

 

 

mfg erwin

Link to comment
Kann man diese Kanalhistory auch ausschalten? Sprich, dass beim Umschalten der TimeShift-Buffer resettet wird?

 

Sag mal, wo siehst Du hier Probleme/Vorteile?

 

mfg erwin

Link to comment
Sag mal, wo siehst Du hier Probleme/Vorteile?

Naja, je nach Benutzerprofil. Meins sieht so aus, dass ich viel am PC arbeite und nebenher TV schaue. Da verpasse ich dann oft etwas und finde die Möglichkeit, im aktuell getunten Kanal etwas zurückzuhüpfen, schon super. Außerdem gefallen mir die schwindligen Workarounds mit 'Jump+10' und dennoch der Möglichkeit, dass was schief gehen könnte, und auch die Probleme mit der Formatänderung, nicht so gut. Meine Bedürfnisse deckt das Plugin auch ohne History voll und ganz und birgt so weniger Probleme.

 

Mit dem Plugin kann ich endlich mal die permanent freien 1.5 GB Arbeitsspeicher sinnvoll nutzen. Keine Ahnung wieso ich 2 GB in den HTPC gepackt habe :D .

 

[TIMESHIFT]

MODE=1 // 0 = klassischer Timeshift; 1 - TimeshiftPlus

[RECORD]

MODE=0 // 0 - klassischer Sofortaufnahmemodus, 1 - rückwirkende Aufnahme ab Pufferposition

Mode=0 entspricht dann der Option 'Default' im GUI, oder? Aber getrennt sind die im GUI nicht verfügbar, oder? Ist es denn möglich TimeshiftPlus (Timeshift Mode 1) mit der klassischen Sofortaufnahme (Record Mode 0) zu kombinieren?

Edited by CiNcH
Link to comment
Mit dem Plugin kann ich endlich mal die permanent freien 1.5 GB Arbeitsspeicher sinnvoll nutzen. Keine Ahnung wieso ich 2 GB in den HTPC gepackt habe

Jetzt aber nicht vorschnell auf 4GB aufrüsten. ;-) Ich habs vorerst bis max 1,4 GB Puffergröße gebracht (entspricht ca 45 Minuten n24), dann liegen irgendwelche dummen System-DLLs, wie z.B. uxtheme.dll, im Speicher quer. Dazu später mehr.

 

Mode=0 entspricht dann der Option 'Default' im GUI

Ja

 

Aber getrennt sind die im GUI nicht verfügbar, oder?

Eigentlich schon. Habe die GUI für das Aufzeichnen aber ebenfalls temporär entfernt.

 

 

Ist es denn möglich TimeshiftPlus (Timeshift Mode 1) mit der klassischen Sofortaufnahme (Record Mode 0) zu kombinieren?

So läuft es zur Zeit. Wenn die Option wieder verfügbar ist dann ebenfalls. Je nach belieben.

 

 

mfg erwin

Link to comment
probier mal nen senderwechsel mit gleichzeitigen audio/videoformat wechsel. Das könnte durchaus probleme bereiten mit den decodern...

 

Du meinst dies hier?

- Ein momentan nicht gelöstes Problem ist die Wiedergabe von Kanälen die im Timeshiftpuffer in einem anderen Audioformat als der monmentan eingestellte Kanal vorliegen. MPEG-Audio vs. AC3-Audio. Die Wiedergabe bleibt stumm. Hintergrund: Der DVBViewer baut seinen Filtergraphen auf Basis der vorliegenden PMT/PID-Infos auf und hatte bisher keinen Grund einen solchen Formatwechsel anzunehmen. Vielleicht kommen ja seitens der DVBViewer-Experten ein par Tips. Auch könnte ich versuchen einen eigenenAudiographen aufzubauen der dann anspringt.

 

mfg erwin

Link to comment

Ja und H.264 und Mpeg2 video. h.264 bedeutet ja nicht automatisch HD :D. als weiteres Audioformat kommt auch noch AAC in betracht.

 

Im moment wäre es vielleicht das sinnvollste bei einem format wechsel den buffer zurückzusetzen...

Link to comment
Ja und H.264 und Mpeg2 video. h.264 bedeutet ja nicht automatisch HD :D. als weiteres Audioformat kommt auch noch AAC in betracht.

 

Im moment wäre es vielleicht das sinnvollste bei einem format wechsel den buffer zurückzusetzen...

 

Ja der Teufel liegt im Detail. Buffer-Reset bei Formatwechsel werde ich einbauen.

 

Danke!

 

 

mfg erwin

Link to comment

Da wird ja wild diskutiert :-)

 

Ich denke am komfortabelsten und gleichzeitig sichersten wäre:

 

- Automatisches permanentes Timeshift im RAM mit Ringbuffer von ca. 1GB.

So kann man immer im aktuellen Programm zurückspulen wenn man was verpasst hat.

Und dafür muss nicht die Festplatte immer arbeiten, oder man einen USB Stick verwenden der irgendwann voll ist, wenn man länger versetzt schaut.

Man sollte außerdem ohne Bestätigungsdialog umschalten können.

 

- Wenn ich aber Pause schalte möchte ich die DVBViewer Timeshift Lösung auf die Festplatte.

Und brauch keine Angst zu haben, dass der Puffer sich einholt oder voll wird, egal wie viel versetzt ich bin.

Außerdem brauche ich dann einen Bestätigungsdialog, der mich vorm unabsichtlichen Umschalten hindert!

 

Was denkt ihr??

 

lg

Link to comment
Was denkt ihr??

Zu viele Abhängigkeiten zwischen Plugin und DVBViewer-Host, die IMHO im Moment nicht aufgelöst werden können. Bin mir aber nicht sicher, was erwin mit seiner "druch-die-Brust-Methode" noch alles so kann :D .

Edited by CiNcH
Link to comment
Ja und H.264 und Mpeg2 video. h.264 bedeutet ja nicht automatisch HD :D. als weiteres Audioformat kommt auch noch AAC in betracht.

Eigentlich ist nicht HD der Punkt (gut der Puffer ist dann schnell voll), sondern das für Synchronisationszwecke nach Startheadern gesucht wird. Im Moment eben nur nach MPEG2-Headern.

 

Für Testzwecke: Suche Sat-Kanäle mit:

 

H.264/SD

H.264/HD (kann allerdings nur DVB-S nicht DVBV-S2 gebrauchen. (S2-Karte noch nicht vorhanden)

AAC

 

mfg erwin

Link to comment
- Automatisches permanentes Timeshift im RAM mit Ringbuffer von ca. 1GB.

So kann man immer im aktuellen Programm zurückspulen wenn man was verpasst hat.

Und dafür muss nicht die Festplatte immer arbeiten, oder man einen USB Stick verwenden der irgendwann voll ist, wenn man länger versetzt schaut.

Man sollte außerdem ohne Bestätigungsdialog umschalten können.

Kann man alles im DVBV einstellen. Bei mir läuft Timeshift automatisch an und läuft bei Kanalwechsel ohne Bestätigungsdialog weiter.

 

 

- Wenn ich aber Pause schalte möchte ich die DVBViewer Timeshift Lösung auf die Festplatte.

Und brauch keine Angst zu haben, dass der Puffer sich einholt oder voll wird, egal wie viel versetzt ich bin.

Außerdem brauche ich dann einen Bestätigungsdialog, der mich vorm unabsichtlichen Umschalten hindert!

 

Überlegenswert. ABER mir fehlt der zündende Einfall. Da das Plugin (bisher) keinen Kontakt zu den Steuercontrols des DVBV hat, bekommt es gewisse Aktionen einfach nicht mit. Dazu gehören z.B. der Wechsel in den Realtime-Modus durch Setzen des Sliders an den rechten Rand oder eben auch Pause. Es bekommt mit wenn der DVBV keine Daten mehr liest. Aber die beiden genannten Fälle lesen beide keine Daten mehr. Ich kann sie nicht auseinanderhalten.

 

mfg erwin

Link to comment
was erwin mit seiner "druch-die-Brust-Methode" noch alles so kann :D .

Damit klar wird was realisierbar ist und was ohne neuen Ansatz schwierig wird:

 

Die Idee ist simple (die Durchführung dann schon nicht mehr):

Hooks auf CreateFile(), ReadFile(), WriteFile(), SetFilePointer() etc. Ich kann alles mitlesen was der DVBV so schreiben und lesen will und dann abweichend vom Standardverhalten neu implementieren. DVBV und Haali-Filter bekommen garnicht mit dass sie einen Fake aufsitzen.

 

mfg erwin

Link to comment

Hier noch ein nützlicher 'hidden tweak' in der setup.xml im DVBViewer Konfig-Verzeichnis:

 

<?xml version="1.0" encoding="UTF-8"?>
<settings>
 ..
 <section name="OSD">
..
<entry name="TimeshiftEPGdisplay">1</entry>
 </section>
 ..
</settings>

 

Dann wird bei OSD-OK anstatt dem Media-Fenster das Mini-EPG angezeigt.

Link to comment

Neue Version unter

 

http://www.DVBViewer.info/forum/index.php?...st&p=234069

 

 

Stürzt der DVBViewer bei euch beim Beenden auch ab?

@CiNch Prüf bitte mal die neue Version in dieser Hinsicht.

 

Was hat sich sonst getan?

 

2. Der Timeshiftpuffer wird im Hauptspeicher realisiert, nicht als Datei.

Vorgesehen ist optional Virtueller Speicher oder physikalischer RAM. In dieser Version ist die Speicherung im RAM realisiert. Die Option virtueller Speicher ist lediglich aus Zeitgründen noch nicht realisiert.

EDIT 04.03.09

Es gibt nun die Wahl zwischen physisch RAM und virtuellem Speicher.

 

Probleme:

 

- Sytembeschränkungen unter XP hinsichtlich der Größe: max. 4 GB davon nutzbar 2 GB (bzw. 3 GB mit boot.ini Eintrag). Eine weitere Beschränkung: Der Speicher muss zusammenhängend verfügbar sein. Da die Directshow-Module im DVBViewer den Speicher ziemlich fragmentieren, wird ein eigener Prozess (RingBuffer.exe) aufgespannt. Leider platziert Microsoft die kernel.dll unverrückbar an einer festen Position im Speicherraum so das diese den Speicherraum in zwei Teile zerlegt. (In einer späteren Version werde ich den Ringpuffer aus zwei Teilstücken aufbauen)

 

Ist jetzt realisiert.

 

Wird physikalischer RAM benutzt, so ist zu beachten, dass PROCESS_SET_QUOTA Rechte gegeben sind. Dies haben normalerweise nur ADMINS bzw. kann vom ADMIN einem Nutzer zugewiesen werden. Die Nutzung von virtuellem Speicher erlaubt es auch nicht RAM-vollbestückte (4GB) Rechnern mit fast bis zu 3GB Ringpuffergröße zu betreiben. Das sind immerhin satte 80-90 Minuten n24 (hängt von der Datenrate ab).

post-2941-1236157023_thumb.png

 

Im Timeshiftpuffer steht die Historie der geschauten Kanäle zur verfügung. Der Puffer wird bei Kanalwechsel nicht geleert.

Es gibt die zwei Optionen: Puffer leeren bei Kanalwechsel oder nicht.

 

 

mfg erwin

Edited by erwin
Link to comment

Super, stürzt nun nicht mehr ab. Mehr habe ich leider noch nicht getestet. Wenn das nun alles zuverlässig läuft, ist das ein hammer geniales Plugin! Wundert mich, dass es da nicht mehr Feedback zu gibt...

 

Wie sicher ist nun die Option, ab Pufferposition die Sofortaufnahme zu starten?

Edited by CiNcH
Link to comment

hi erwin,

 

hört sich echt supper an.

 

was ich jetzt nicht ganz verstanden habe ist die funktion beim drücken der pause taste.

 

wird dann die normale timeshift funktion des dvbviewers aktiv und deine schaltet sich aus?

 

 

grüße

lord nova

Link to comment
wird dann die normale timeshift funktion des dvbviewers aktiv und deine schaltet sich aus?

Nein, dann greift seine Methode. Die ersetzt das DVBViewer TimeShifting, siehe dieses Posting. Man kann sie über Pause aktivieren, oder das automatische TimeShifting über die Optionen, so wie ich es mache, denn dann hat man immer die Möglichkeit zurückzuspringen. Ich finde das echt super. Was mir aber nicht so gefällt, mit dem Plugin aber nichts zu tun hat, ist die Tatsache, dass diverse Aktionen bei TimeShift geforct umprogrammiert werden, e.g. OSD-Green (wird zu 'Jump -XX' anstatt NVOD Portal-Select), OSD-Yellow (wird zu 'Jump +XX' anstatt Kanalliste) usw. Da fände ich cool, wenn man das unterdrücken könnte wie bei OSD-OK (siehe hier), zumal viele wahrscheinlich die Jumps schon auf der FB belegt haben (Tasten '<<' und '>>').

Edited by CiNcH
Link to comment

hi CiNcH schau dir mal diesen thread an http://www.DVBViewer.info/forum/index.php?...;hl=command.vbs

ich hoffe immer noch daß die proger das mal ändern ;-)

 

 

hmm, dann wäre die möglichkeit interessant daß der ringpuffer deaktiviert wird wenn man auf pause drückt bzw der ringbuffer automatisch vergrößert wird. dann müsste man aber den ringbuffer früher oder später auf die festplatte schreiben

 

[edit]

da war jemand schneller ...

Edited by Lord NOva
Link to comment
Wie sicher ist nun die Option, ab Pufferposition die Sofortaufnahme zu starten?

Eigentlich müßte diese Option noch disabled sein! Ich hofffe ich habe nicht die falsche Version zum Download gestellt.

Da hier die Sicherheit bestimmt ein sensibles Thema ist, bin ich etwas vorsichtig.

Worum geht es? Das Plugin kann nicht mit Bestimmtheit unterscheiden ob eine beginnende Aufnahme einer .mpg/.ts-Datei durch einen regulären Timer verursacht wird oder durch eine Sofortaufname. Es ist klar, das sich hier das Plugin unterschiedlich verhalten muß. Für Tips wäre ich dankbar. Z.Z blende ich für 10 Sekunden einen Dialog auf in der der Nutzer die "Aufnahme ab Position" bestätigen muß. Weiterhin werden momentan zur Sicherheit 2 Dateien geschrieben, die originäre vom DVBViewer und eine *.ts. Wenn alles mal rund läuft wird natürlich nur noch die Gewünschte geschrieben. Z.Z. wird nur eine *.ts-Datei direkt aus dem Ringpuffer heraus erzeugt. Eine realtime Konvertierung nach *.mpg - weil *.mpg in den DVBViewer Optionen angegeben ist - erfolgt erst in einer späteren Version. TODO! Neu seit DVBViewer Version 4 sind ja auch die Beendigungsoptionen einer Sofortaufnahme, wie z.B. Aufnahme sofort abspielen. Hier habe ich noch gar keine Anpassungenn des Plugins vorgenommen. TODO. Alles in allem - sicher ist sie schon. Ich arbeite zu meiner Zufriedenheit damit, aber die Randprobleme halt.

 

mfg erwin

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...