Files
GrowthLapse/docs/VERBESSERUNGEN.md
T

4.7 KiB
Raw Blame History

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 in dist/ 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:

  1. Neutrale Startwerte, Einstellungs-Roundtrip und ältere JSON-Einstellungen.
  2. Vollständige Ausgabe kurzlebiger Prozesse einschließlich Unicode sowie Prozessabbruch.
  3. Abbruchweiterleitung an eine Bildanalyse.
  4. Zwei-Clip-Render mit Originalauflösung und entfernter Tonspur.
  5. Ablehnung von Cache-Symlinks und versehentlichem Überschreiben von Quellen.
  6. Erhalt der bisherigen Dateien bei ungültigem Ausgabeziel.
  7. Neues Ausgabeziel, Cache-Wiederverwendung, Projektdatei und erneutes Laden.
  8. Erhalt von Video/Projekt bei simuliertem FFmpeg-Fehler in der Endausgabe.
  9. Wiederherstellung nach einem Fehler beim zweiten Dateiaustausch.
  10. Erhalt manueller Ausschnitte, explizite Neuplanung und Invalidierung bei Sortierung.
  11. Überblendung mit gemischten Quellen mit/ohne Audio; gemessene Gesamtdauer 1,8 Sekunden.
  12. Abbruch während laufender Endausgabe ohne Verlust des alten Videos/Caches.
  13. Erneute Metadatenanalyse und gültige Segmentgrenzen nach Änderung einer Quelle.
  14. Einzelclip mit Stabilisierung und Vision-Fallback bei fehlendem Gesicht.
  15. 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.