diff --git a/CLAUDE.md b/CLAUDE.md index c8ae022..f137087 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -265,7 +265,6 @@ Wenn der User während der Wiedergabe das Kapitel-Panel öffnet (Y-Taste), läuf | Flaggen-Emojis auf Windows | Nur Rechtecke | Unicode Regional Indicators brauchen Noto Color Emoji (Linux). Im Dev-Mode ignorieren. | | Browser Gamepad API in Gaming Mode | Nicht nutzbar | Steam Input + Flatpak-Sandbox blockiert udev-Events für Chromium. Deshalb evdev direkt im Main-Process. | | Bluetooth-Controller-Deduplizierung | Aktiv | Mehrere `/dev/input/js*`-Devices (z.B. Raw-Device + Steam-Virtual-Device) → 40ms-Deduplizierungsfenster in `gamepadReader.ts` | -| Flatpak-Manifest mpv-Einträge | Noch nicht bereinigt | `tv.twitch4steamdeck.App.yml` enthält noch mpv-Build-Schritte und den mpv-Patch — nach Steam Deck Test entfernen. | | Direkt-Start: kein VOD-Support | By Design | AppShell-Overlay nur für Live-Streams. VODs nur über Kanalseite (ChannelScreen) mit Resume + Kapitel. | --- diff --git a/flatpak/patches/mpv-ffmpeg7-avio-const.patch b/flatpak/patches/mpv-ffmpeg7-avio-const.patch deleted file mode 100644 index 8373276..0000000 --- a/flatpak/patches/mpv-ffmpeg7-avio-const.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- a/audio/decode/ad_spdif.c -+++ b/audio/decode/ad_spdif.c -@@ -165,7 +165,7 @@ static int init_filter(struct dec_audio *da, AVCodec *codec) - --static int write_packet(void *opaque, uint8_t *buf, int buf_size) -+static int write_packet(void *opaque, const uint8_t *buf, int buf_size) - { - struct spdif_filter *sf = opaque; diff --git a/flatpak/tv.twitch4steamdeck.App.yml b/flatpak/tv.twitch4steamdeck.App.yml index cfc506f..f538aad 100644 --- a/flatpak/tv.twitch4steamdeck.App.yml +++ b/flatpak/tv.twitch4steamdeck.App.yml @@ -9,8 +9,8 @@ base-version: '24.08' command: twitch4steamdeck # ffmpeg-full: Stellt den vollen FFmpeg-Codec-Stack bereit (h264, h264_vaapi, etc.). -# Das freedesktop SDK 24.08 liefert nur ein reduziertes FFmpeg ohne patentbehaftete Codecs, -# daher hat mpv sonst nur libopenh264 — zu langsam fuer Seek-Recovery bei HLS-VODs. +# Das freedesktop SDK 24.08 liefert nur ein reduziertes FFmpeg ohne patentbehaftete Codecs — +# Electron/Chromium braucht h264 für hls.js (MediaSource Extensions). add-extensions: org.freedesktop.Platform.ffmpeg-full: directory: lib/ffmpeg @@ -24,7 +24,7 @@ finish-args: - --share=ipc # X11 shared memory (Wayland-Fallback) - --socket=wayland - --socket=fallback-x11 - - --socket=pulseaudio # Audio für mpv + - --socket=pulseaudio # Audio - --device=all # GPU + /dev/input/* (Gamepad API braucht Input-Devices) - --talk-name=org.freedesktop.Notifications # Electron userData liegt automatisch in ~/.var/app/tv.twitch4steamdeck.App/config/ @@ -40,105 +40,7 @@ finish-args: modules: # ───────────────────────────────────────────────────────────────────────────── - # 1a) libass — Untertitel-Rendering (nicht im freedesktop SDK 24.08 enthalten) - # ───────────────────────────────────────────────────────────────────────────── - - name: libass - config-opts: - - --disable-static - - --libdir=/app/lib - sources: - - type: archive - url: https://github.com/libass/libass/releases/download/0.17.3/libass-0.17.3.tar.gz - sha256: da7c348deb6fa6c24507afab2dee7545ba5dd5bbf90a137bfe9e738f7df68537 - - # ───────────────────────────────────────────────────────────────────────────── - # 1b) libplacebo — Pflicht-Abhängigkeit für mpv 0.38+ (gpu-next renderer) - # vulkan=disabled: kein Vulkan-Renderer, OpenGL/EGL+VAAPI reicht für uns. - # shaderc + lcms2 kommen aus dem freedesktop SDK 24.08. - # ───────────────────────────────────────────────────────────────────────────── - - name: libplacebo - buildsystem: meson - config-opts: - - -Dlibdir=lib - - -Dvulkan=disabled - - -Dglslang=disabled - - -Dshaderc=enabled - - -Dlcms=enabled - - -Ddemos=false - - -Dtests=false - sources: - - type: archive - # Lokaler Tarball mit glad2-Submodul (GitHub-Tarball enthält Submodule nicht). - # Erstellen: siehe flatpak/build-flatpak.sh oder README. - # In WSL2: liegt unter ~/twitch4steamdeck/flatpak/libplacebo-6.338.2-full.tar.gz - path: libplacebo-6.338.2-full.tar.gz - sha256: 7f5da41b872302208f0e10c22d3e108ab9fdb1f253eb47c18651698c65d6b426 - - # ───────────────────────────────────────────────────────────────────────────── - # 1c) libXpresent — X11-Extension für VSync/Frame-Timing (mpv X11-Dependency) - # ───────────────────────────────────────────────────────────────────────────── - - name: libxpresent - buildsystem: autotools - sources: - - type: archive - url: https://xorg.freedesktop.org/releases/individual/lib/libXpresent-1.0.1.tar.xz - sha256: b964df9e5a066daa5e08d2dc82692c57ca27d00b8cc257e8e960c9f1cf26231b - - # ───────────────────────────────────────────────────────────────────────────── - # 1d) Lua 5.2 — Laufzeit + Dev-Dateien für mpv-Scripts/OSC/ytdl-Hooks - # ───────────────────────────────────────────────────────────────────────────── - - name: lua - buildsystem: simple - build-commands: - - make clean - - make linux MYCFLAGS="$CFLAGS -fPIC" MYLDFLAGS="$LDFLAGS" - - make INSTALL_TOP=/app INSTALL_INC=/app/include/lua5.2 INSTALL_LIB=/app/lib INSTALL_MAN=/app/share/man install - - mkdir -p /app/lib/pkgconfig - - | - cat > /app/lib/pkgconfig/lua52.pc <<'EOF' - prefix=/app - exec_prefix=${prefix} - libdir=${exec_prefix}/lib - includedir=${prefix}/include/lua5.2 - - Name: Lua - Description: Embedded scripting language - Version: 5.2.4 - Libs: -L${libdir} -llua -lm -ldl - Cflags: -I${includedir} - EOF - - cp /app/lib/pkgconfig/lua52.pc /app/lib/pkgconfig/lua5.2.pc - - cp /app/lib/pkgconfig/lua52.pc /app/lib/pkgconfig/lua-5.2.pc - sources: - - type: archive - url: https://www.lua.org/ftp/lua-5.2.4.tar.gz - sha256: b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b - - # ───────────────────────────────────────────────────────────────────────────── - # 1e) mpv — Media-Player für Live-Streams und VODs - # ffmpeg, libass, libplacebo, libva (VAAPI), X11 verfügbar. - # Lua aktiviert, damit das Bundle näher am Desktop-mpv liegt. - # ───────────────────────────────────────────────────────────────────────────── - - name: mpv - buildsystem: meson - config-opts: - - -Dvaapi=enabled - - -Dpulse=enabled - - -Dx11=enabled - - -Degl-x11=enabled - - -Dalsa=disabled - - -Dlua=enabled - - -Djavascript=disabled - - -Drubberband=disabled - - -Dvapoursynth=disabled - - -Dbuild-date=false - sources: - - type: archive - url: https://github.com/mpv-player/mpv/archive/refs/tags/v0.41.0.tar.gz - sha256: ee21092a5ee427353392360929dc64645c54479aefdb5babc5cfbb5fad626209 - - # ───────────────────────────────────────────────────────────────────────────── - # 2) streamlink (Python) — liefert HLS-URLs aus Twitch-Streams + # 1) streamlink (Python) — liefert HLS-URLs aus Twitch-Streams # Wird von build-flatpak.sh via flatpak-pip-generator generiert: # python3 -m flatpak_pip_generator streamlink==6.11.0 \ # --output flatpak/python3-streamlink @@ -148,7 +50,7 @@ modules: - !include python3-streamlink.json # ───────────────────────────────────────────────────────────────────────────── - # 2b) Mountpoint fuer ffmpeg-full Extension (muss vor App-Modul existieren) + # 1b) Mountpoint fuer ffmpeg-full Extension (muss vor App-Modul existieren) # ───────────────────────────────────────────────────────────────────────────── - name: ffmpeg-full-mountpoint buildsystem: simple @@ -156,7 +58,7 @@ modules: - mkdir -p /app/lib/ffmpeg # ───────────────────────────────────────────────────────────────────────────── - # 3) Haupt-App + # 2) Haupt-App # Voraussetzung: npm install + @electron/rebuild + npm run build wurden # AUSSERHALB (in WSL2) ausgeführt. Dieses Modul kopiert nur die Artefakte. # ─────────────────────────────────────────────────────────────────────────────