4.7 KiB
4.7 KiB
GrowthLapse 0.3.0 – zuverlässige Nachbearbeitung
Änderungen
- Jeder Render erhält einen eigenen Arbeitsbereich. Bestehende Zwischenclips werden nur gelesen/kopiert. Abbruch und Renderfehler entfernen ausschließlich den neuen Arbeitsbereich.
- Video und Projektdatei werden erst nach erfolgreichem Rendern übernommen. Dateiaustausch erfolgt per Rename; bei einem nachfolgenden Fehler wird zurückgerollt. Scheitert auch die Wiederherstellung, bleiben Sicherungen erhalten und ihr Pfad wird angezeigt.
- Ausgabeziel, Cache-Pfade und Projektabmessungen bleiben beim Neurender und bei einem neuen Ausgabeziel konsistent. Das ursprüngliche Projekt bleibt beim Export unter anderem Namen erhalten.
- Cache-Löschung verlangt eine Eigentumsmarkierung und passende Verzeichniszuordnung; Symlinks werden abgelehnt. Historische unmarkierte Caches werden nicht automatisch entfernt.
- Projektschema 2 speichert Render-Einstellungen. Alte Projekte bleiben lesbar; fehlende Einstellungen werden mit einem Hinweis kenntlich gemacht. Lokal gewählte FFmpeg-/FFprobe-Pfade werden beim Laden erhalten.
- Geänderte Quelldateien werden anhand von Größe/Änderungsdatum erkannt, erneut geprüft und neu gerendert. Segmentgrenzen werden an eine geänderte Quelldauer angepasst.
- Geänderte Reihenfolge invalidiert verschobene Clips, sodass eingebrannte Nummern korrekt erneuert werden.
- „Änderungen neu rendern“ erhält manuelle Ausschnitte. „Segmente neu planen“ wendet Länge, Offset und automatische Segmentwahl auf alle vorhandenen Clips an.
- Bildanalysen erhalten den Abbruch des aufrufenden Render-Tasks. FFmpeg-Aufrufe besitzen einen eigenen Abbruchzustand und lesen ihre Ausgabe bis EOF.
- Fehlende Encoder/Stabilisierungsfilter führen vor der Verarbeitung zu einer verständlichen Fehlermeldung.
- Leere/inkonsistente Projekte, ungültige Clipdaten und versehentlich gewählte Quellvideos als neue Ausgabe werden abgefangen.
- Nachbearbeitung ist während eines Renders gesperrt. Die Oberfläche zeigt die erwartete Ergebnisdauer, bietet eine Ergebnisvorschau und macht den Clip-Editor scrollbar.
- Versionierte Bundle-Metadaten liegen unter
Resources/Info.plist; die historische App indist/wird nicht als aktuelle Version ausgegeben.
Verifikation
bash scripts/integration-tests.sh kompiliert die produktiven Render-Klassen ohne XCTest und prüft mit synthetischen Videos:
- Neutrale Startwerte, Einstellungs-Roundtrip und ältere JSON-Einstellungen.
- Vollständige Ausgabe kurzlebiger Prozesse einschließlich Unicode sowie Prozessabbruch.
- Abbruchweiterleitung an eine Bildanalyse.
- Zwei-Clip-Render mit Originalauflösung und entfernter Tonspur.
- Ablehnung von Cache-Symlinks und versehentlichem Überschreiben von Quellen.
- Erhalt der bisherigen Dateien bei ungültigem Ausgabeziel.
- Neues Ausgabeziel, Cache-Wiederverwendung, Projektdatei und erneutes Laden.
- Erhalt von Video/Projekt bei simuliertem FFmpeg-Fehler in der Endausgabe.
- Wiederherstellung nach einem Fehler beim zweiten Dateiaustausch.
- Erhalt manueller Ausschnitte, explizite Neuplanung und Invalidierung bei Sortierung.
- Überblendung mit gemischten Quellen mit/ohne Audio; gemessene Gesamtdauer 1,8 Sekunden.
- Abbruch während laufender Endausgabe ohne Verlust des alten Videos/Caches.
- Erneute Metadatenanalyse und gültige Segmentgrenzen nach Änderung einer Quelle.
- Einzelclip mit Stabilisierung und Vision-Fallback bei fehlendem Gesicht.
- Schutz fremder Verzeichnisse, Ablehnung leerer Projekte, sofortiger Abbruch und kontrollierte Cache-Löschung.
Diese Integrationstests sind auf dem lokalen Mac bestanden. Die bestehenden XCTest-Dateien benötigen weiterhin vollständiges Xcode; ihre Einstellungsfälle werden zusätzlich im Integrationstest geprüft. Release-Build und lokale Ad-hoc-Signierung funktionieren. Projektladen, Neurender, das korrigierte Clip-Layout und Wiedergabe in der neuen Ergebnisvorschau wurden zusätzlich über die native Oberfläche mit Testdateien geprüft.
Verbleibende Grenzen
- Die Übernahme mehrerer Dateien ist nicht gegen einen Stromausfall zwischen zwei Dateiaustauschen abgesichert.
- Während des Renders wird zusätzlicher Speicherplatz für neue Clips und Sicherungen benötigt.
- Cache-Erkennung nutzt Größe und Änderungsdatum, keinen vollständigen Inhaltshash.
- Reale Gesichtsaufnahmen, HDR-Farben und sehr große Clipmengen benötigen weiterhin Qualitäts-/Belastungstests. Synthetische Bilder belegen keine Qualität der Gesichtsausrichtung.
- Foto-Morphing bleibt deaktiviert. Notarisierung, universelle Builds und Lizenzentscheidung sind nicht Teil dieser Überarbeitung.
Für isolierte Oberflächentests kann GROWTHLAPSE_SETTINGS_PATH auf einen absoluten Pfad zu einer separaten Einstellungsdatei gesetzt werden.