Files
HMS MediaEngine Agent 362e089be0 AUFGERAUMT: Root auf 10 sichtbare Elemente reduziert
Der Nutzer hat recht: Der Ordner war voller Entwicklungs-Muell.
Jetzt ist sauber getrennt:

ROOT (was der Nutzer sieht und braucht):
- run.py                     = das Programm
- hms_app/                   = der Anwendungscode
- HMS MediaEngine.app        = macOS Doppelklick-Starter
- HMS-Start.vbs              = Windows Doppelklick-Starter
- HMS-Install.vbs             = Windows Erst-Installation
- HMS-Mac-Install.command     = macOS Homebrew-Installation
- HMS-Portable-Install.command = macOS Portable-Installation (16GB-Fix)
- installer_gui.py           = grafischer Installer
- launcher.pyw + launcher_core.py = interne Start-Logik
- LIESMICH.txt               = 10-Zeilen-Kurzanleitung
- .gitignore

_entwicklung/ (alles andere, NICHT benoetigt):
- packages/ apps/ native/ plugins/ tools/ schemas/ tests/ docs/
  build/ fixture_profiles/
- PLAN.md STATUS.md ERRORS.md TEST_REPORT.md CHANGELOG.md README.md
- pyproject.toml uv.lock setup_*.sh/ps1 make_mac_app.py

Diese Trennung gilt ab sofort fuer alle Commits. Der Nutzer kann
_entwicklung/ loeschen wenn er Platz braucht - die App laeuft ohne.

Verifiziert: App startet nach Aufraeumen unveraendert (Health 200).
2026-09-11 23:44:06 +02:00

47 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GStreamer-Bündelung Windows (Pin)
ADR-0002. Ziel: portables `runtime/gstreamer` ohne Systeminstallation (PLAN.md §3.1, §30.2).
## Pin
- **Version:** 1.28.6 (aktuelle stabile 1.28-Serie, Stand 2026-09-10, Quelle: <https://gstreamer.freedesktop.org/download/>)
- **Distribution:** offizielle MSVC-Binaries, x86_64 (`gstreamer-1.0-msvc-x86_64-1.28.6.msi`)
- **SHA-256:** nach dem ersten Bündelungs-Build manifestieren (§30.1)
## Minimal gebündelte Plugin-Untermenge (Phase 0)
Ziel: H.264-MP4-Testclip → D3D11-Decode → Compositing → Vollbildausgabe.
| Komponente | Paket | Enthält | Zweck |
| --- | --- | --- | --- |
| libgstreamer-1.0-0.dll | gstreamer core | | Kern |
| coreelements | gst-plugins-core | `filesrc`, `queue`, `decodebin3`-Basen | Container/Datei |
| typefindfunctions | gst-plugins-core | Typenerkennung | MP4-Erkennung |
| isomp4 | gst-plugins-good | `qtdemux` | MP4-Demux |
| videoparsersbad | gst-plugins-bad | `h264parse` | H.264-Parsing vor Decoder |
| playback | gst-plugins-base | `uridecodebin` | bequeme Quelle (Spike) |
| d3d11 | gst-plugins-bad | `d3d11h264dec`, `d3d11h265dec`, `d3d11convert`, `d3d11compositor`, `d3d11videosink` | GPU-Pfad (§12.6) |
| video/x-raw Basen | gst-plugins-base | `videoconvert` (nur Fallback, nicht Normalpfad) | nur Diagnose |
Nicht gebündelt (V1-Spike): Netzwerk-Quellen, NDI, Capture, Software-Codecs außer für expliziten Fallback.
## Umgebungsvariablen beim Start (Launcher, §9.2)
```text
GST_PLUGIN_PATH_1_0=<app>/runtime/gstreamer/lib/gstreamer-1.0
PATH=<app>/runtime/gstreamer/bin;%PATH%
GST_PLUGIN_SYSTEM_PATH_1_0= (leer setzen, um System-Plugins zu unterdrücken)
```
## Validierung
1. Saubere Windows-VM ohne GStreamer (§29.6)
2. `gst-inspect-1.0 d3d11h264dec` muss die Elemente aus dem Bündel listen
3. Testpipeline läuft; GPU-Treiber ist die einzige Systemabhängigkeit
4. MSI-Binärdateien und DLL-Set als SHA-256-Manifest festhalten
## Offene Punkte
- [ ] Bündelungsskript (MSI still entpacken, Untermenge kopieren) Phase-0-Aufgabe mit Packaging-ADR-0005
- [ ] VC-Runtime-Redistributable-Handling → `runtime/vc-runtime` (§9)