Anzahl der Frames in "Zwischenspeicher für dekodierte Frames" erhöhen?

Started by Ela, January 17, 2023, 05:04:28 AM

Previous topic - Next topic

Ela

Könnte man die maximale Framezahl auf beliebige Anzahlen einstellbar machen? Jetzt sind nur 16 Frames erlaubt, bei lahmen Rechnern wären 50 oder eben beliebig viele Frames äußerst hilfreich. Vor allem wenn man rückwärts stept, hakelt es oft unangenehm lange.

eumagga0x2a

Nein, bei hochaufgelösten Videos nehmen dekodierte, unkomprimierte Frames enorm viel Arbeitsspeicher ein, und bei Nutzung von Dekodierung in Hardware (zum Beispiel mittels VDPAU, VA-API oder DXVA2) sind "Surfaces" (Referenzen zu Bereichen im Grafikspeicher zum temporären Vorhalten von Rasterbildern) ein knappes Gut, besonders bei lahmen Rechnern mit wenig Grafikspeicher. 16 sehe ich als vernünftige Obergrenze an, zumal mit jedem angehängten Video multipliziert sich der Bedarf – es sei denn, man aktiviert gemeinsamen Cache in Avidemux-Einstellungen.

Ela

Was spricht dagegen, die Entscheidung dem User zu überlassen? Der kennt sein System am besten.
Wenn mehr als 16 Frames nicht gut laufen, kann er ja die Anzahl wieder auf 16 Frames setzen.
Als Voreinstellung könnte man weiterhin die 16 als empfohlene Einstellung eintragen.
Manche User haben eine Menge RAM, aber eine alte CPU.

eumagga0x2a

Quote from: Ela on January 24, 2023, 11:51:20 PMWas spricht dagegen, die Entscheidung dem User zu überlassen?

Avidemux ist Open Source, jede(r) kann EDITOR_CACHE_MAX_SIZE hochsetzen und Avidemux selbst kompilieren. Somit liegt die Entscheidung stets bei User, genauso wie die moralische Verantwortung, dem User keinen bekanntermaßen gefährlichen Gegenstand in die Hand zu drücken, bei den Entwicklern liegt.

Wie ich schon zu erklären versuchte, ist das Verhalten des Systems beim Ausschöpfen des dem Hardware-Videodekoder zur Verfügung stehenden Speichers (nicht RAM!) allgemein unberechenbar, bis hin zum gravierenden Datenverlust als Folge.

Bei Dekodierung in Software kommt es tatsächlich nur auf RAM an, was die Wahrscheinlichkeit, dass das gesamte System unbenutzbar wird, erheblich senkt (unter Linux wird nur Avidemux prompt aus dem Speicher gekickt, wenn es sich zu gierig zeigt), aber gerade bei einer alten CPU bringt Dekodierung in Hardware oft eine enorme Performance-Steigerung.

Auf die Frage zurückkommend, der User kennt sein System am besten, aber den Unterschied zwischen RAM und Hardware Surfaces eventuell nicht.

eumagga0x2a

Quote from: eumagga0x2a on February 02, 2023, 09:36:22 PMjede(r) kann EDITOR_CACHE_MAX_SIZE hochsetzen und Avidemux selbst kompilieren.

Um genau zu sein, sind auch die entsprechenden Limits in der Liste der Argumente des diaElemUInteger-Objekts "cacheSize" in DIA_prefs.cpp sowie in prefs2_pref.h einheitlich zu ändern ("16" links is die Vorgabe, "16" rechts wäre dann durch die gewünschte höhere Zahl zu ersetzen).

Die Werte in der Vorlage prefs2.conf spielen eine Rolle nur dann, wenn daraus mit dem Script update_prefs.sh der Header prefs2_pref.h neu geschrieben wird.