40 lines
3.2 KiB
Markdown
40 lines
3.2 KiB
Markdown
# Technische Bestandsaufnahme
|
|
|
|
> Historische Bestandsaufnahme vor Version 0.3.0. Umgesetzte Korrekturen und aktuelle Grenzen stehen in [VERBESSERUNGEN.md](VERBESSERUNGEN.md).
|
|
|
|
Stand: 13. September 2026, Ausgangscommit `0b85f7d73a8ae09a8711038a4d08ae34642c6243`.
|
|
|
|
## Bestand
|
|
|
|
Das Projekt ist ein Swift-Package mit einer macOS-Anwendung und ohne externe Swift-Package-Abhängigkeiten. Die Oberfläche bietet Video-Zeitraffer, lokale Gesichts-/Augenanalyse, Stabilisierung, Variantenwahl und nachträgliche Ausschnittkorrekturen mit Cache. Eine kompilierte App samt Icon ist eingecheckt. Foto-Morphing ist implementiert, aber ausdrücklich gesperrt.
|
|
|
|
## Ergänzungen dieser Überarbeitung
|
|
|
|
- README mit Voraussetzungen, Start, Bedienung, Dateiformaten und Grenzen.
|
|
- Persönliche Standardpfade entfernt: Eingabe/Ausgabe beginnen ohne Auswahl; FFmpeg und FFprobe werden automatisch gesucht. Bereits gespeicherte Einstellungen bleiben erhalten.
|
|
- Wiederholbarer Release-App-Build unter `scripts/build-app.sh`, Ausgabe in `build/`.
|
|
- Tests für Einstellungs-Persistenz und ältere JSON-Daten ergänzt.
|
|
- Lokale Build-Ausgaben, Projektdateien und Render-Caches in `.gitignore` ergänzt.
|
|
|
|
## Offene technische Arbeit
|
|
|
|
Diese Befunde stammen aus der Quellcodeprüfung; sie sind keine vollständig reproduzierten Fehlerberichte:
|
|
|
|
1. `FFmpegService.run` deaktiviert beim Prozessende den Pipe-Reader, ohne ausdrücklich bis EOF zu lesen. Bei kurzen Prozessen könnte die letzte Ausgabe fehlen. Prozessausgabe und Abbruch sollten mit gezielten Integrationstests abgesichert werden.
|
|
2. Geladene Projekte enthalten absolute Pfade. Vor Rendern und Cache-Löschen sollten Projektstruktur, leere Cliplisten und zulässige Cache-Verzeichnisse validiert werden. Der Renderpfad greift auf den ersten Clip zu und setzt eine nicht leere Liste voraus.
|
|
3. Ein neuer Render setzt den Review-Cache früh zurück; Ausgabeoperationen überschreiben das Ziel. Ein späterer Ausbau sollte temporäre Ausgabe und atomaren Austausch nach Erfolg verwenden.
|
|
4. Fehlender VidStab führt zu Deshake, auch wenn dieser Filter ebenfalls fehlt. Eine frühzeitige klare Fehlermeldung wäre besser als ein späterer FFmpeg-Fehler.
|
|
5. `VideoProcessor.swift` bündelt rund 2.900 Zeilen verschiedener Verantwortlichkeiten. Renderplanung, Projektverwaltung und Bildanalyse lassen sich für gezielte Tests trennen.
|
|
6. Es fehlen Render-Integrationstests mit synthetischen Videos für Audio, Überblendungen, HDR, Abbruch und Cache-Wiederverwendung sowie CI auf macOS.
|
|
7. Release-Versionierung, Developer-ID-Signierung, Notarisierung und Lizenzentscheidung sind noch nicht als Veröffentlichungsprozess beschrieben. Das neue Build-Skript dient lokalen Builds.
|
|
|
|
Eine vollständige Produktfreigabe erfordert zusätzlich manuelle Prüfung der Oberfläche und repräsentativer Videoausgaben.
|
|
|
|
## Lokale Verifikation
|
|
|
|
- Debug-Build erfolgreich.
|
|
- Release-App über `bash scripts/build-app.sh` erfolgreich gebaut und ad hoc signiert.
|
|
- `swift test` durch fehlendes `XCTest` in der installierten Command-Line-Tools-Umgebung blockiert; die Tests sind daher noch nicht als bestanden verifiziert.
|
|
- Shell-Syntax des Build-Skripts und `git diff --check` ohne Befund.
|
|
- Keine vollständige Prüfung von Oberfläche oder Videoausgabe durchgeführt.
|