Files
jellycon/PATCHES.md
mani a71efe14c1
Some checks failed
Build JellyCon / build (py2) (push) Has been cancelled
Build JellyCon / build (py3) (push) Has been cancelled
CodeQL Analysis / analyze (python, 3.9) (push) Has been cancelled
Release Drafter / Update release draft (push) Has been cancelled
Test JellyCon / test (3.9) (push) Has been cancelled
Properly fix intermittent installation failures
Instead of setting addon variables to None (which causes issues),
fix the root cause by removing unnecessary module-level initialization:

- Remove module-level user_details loading in functions.py
- Load user_details locally in functions where actually needed
- Wrap remaining module-level addon access in try/except in:
  - service.py (log_timing_data)
  - default.py (log_timing_data)
  - kodi_utils.py (addon variable)
  - functions.py (__addon__ and related variables)

This prevents crashes during installation/update while avoiding
None-related issues during normal operation.
2026-01-06 01:12:59 +01:00

145 lines
3.8 KiB
Markdown

# JellyCon Patches
Diese Patches fügen neue Features und Fixes zu JellyCon hinzu.
## Patches Übersicht
### 1. websocket-keepalive-fix.patch (3.1 KB)
**Was es behebt:** Session-Flapping Problem (ständige Reconnects alle 2 Minuten)
**Änderungen:**
- Implementiert Jellyfin's ForceKeepAlive/KeepAlive Protokoll
- Entfernt problematische `ping_timeout` und `reconnect` Parameter
- WebSocketApp wird bei jedem Reconnect neu erstellt (verhindert Memory-Leaks)
- Fügt `on_close` Callback hinzu für besseres Debugging
**Betroffene Dateien:**
- `resources/lib/websocket_client.py`
**Anwendung:**
```bash
cd plugin.video.jellycon
patch -p1 < websocket-keepalive-fix.patch
```
---
### 2. transcode-target-codec.patch (4.4 KB)
**Was es hinzufügt:** Konfigurierbare Transcode-Ziel-Codecs (H.264, H.265, AV1)
**Features:**
- Neue Dropdown-Option: "Transcode target video codec"
- H.264 (default)
- H.265 (HEVC) - Perfekt für Raspberry Pi 5!
- AV1
- Neue Checkbox: "Force transcode h264"
- Unabhängige Kontrolle über Quell- und Ziel-Codecs
**Perfekt für:**
- Raspberry Pi 5 (H.265 Hardware-Decode)
- Moderne GPUs mit AV1-Unterstützung
- Optimierung der Client-Hardware-Beschleunigung
**Betroffene Dateien:**
- `resources/lib/play_utils.py`
- `resources/settings.xml`
- `resources/language/resource.language.en_gb/strings.po`
- `resources/language/resource.language.de/strings.po`
**Anwendung:**
```bash
cd plugin.video.jellycon
patch -p1 < transcode-target-codec.patch
```
**Konfiguration nach Installation:**
```
Kodi Settings → Add-ons → JellyCon → Playback
1. "Transcode target video codec" → H.265 (HEVC)
2. "Force transcode h264" → ☑ Aktivieren
3. "Force transcode h265" → ☐ Aus
Ergebnis:
- H.264 Content → Server transcodiert zu H.265 → Pi 5 Hardware-Decode
- H.265 Content → DirectPlay (Hardware!)
```
---
### 3. disable-disk-cache.patch (3.8 KB)
**Was es hinzufügt:** Option zum Deaktivieren von Disk-Caching
**Features:**
- Neue Checkbox: "Disable disk caching (RAM only)"
- Verhindert Schreiben von `.pickle` Cache-Dateien
- Deaktiviert Artwork-Preloading
- Daten bleiben nur im RAM
**Perfekt für:**
- SD-Karten (Raspberry Pi) - reduziert Schreibzyklen massiv
- Privacy - keine dauerhaften Cache-Dateien
- Immer frische Daten vom Server
**Betroffene Dateien:**
- `resources/lib/datamanager.py`
- `resources/lib/cache_images.py`
- `resources/settings.xml`
- `resources/language/resource.language.en_gb/strings.po`
- `resources/language/resource.language.de/strings.po`
**Anwendung:**
```bash
cd plugin.video.jellycon
patch -p1 < disable-disk-cache.patch
```
**Konfiguration nach Installation:**
```
Kodi Settings → Add-ons → JellyCon → Advanced
"Disable disk caching (RAM only)" → ☑ Aktivieren
```
**Hinweis:** Kodi's eigener Texture-Cache (`~/.kodi/userdata/Thumbnails/`) läuft weiterhin!
---
## Alle Patches auf einmal anwenden
```bash
cd plugin.video.jellycon
patch -p1 < websocket-keepalive-fix.patch
patch -p1 < transcode-target-codec.patch
patch -p1 < disable-disk-cache.patch
```
## Patches rückgängig machen
```bash
cd plugin.video.jellycon
patch -p1 -R < websocket-keepalive-fix.patch
patch -p1 -R < transcode-target-codec.patch
patch -p1 -R < disable-disk-cache.patch
```
## Zusammenfassung der Änderungen
```
7 Dateien geändert, 134 Zeilen hinzugefügt, 15 Zeilen entfernt
+ resources/lib/websocket_client.py (KeepAlive Fix)
+ resources/lib/play_utils.py (Transcode Target)
+ resources/lib/datamanager.py (Disk Cache Control)
+ resources/lib/cache_images.py (Disk Cache Control)
+ resources/settings.xml (Neue Settings)
+ resources/language/.../strings.po (Sprachstrings DE+EN)
```
## Getestet mit
- JellyCon Version: 0.9.0+py3
- Kodi Version: Matrix 19+
- Jellyfin Server: 10.8+
- Raspberry Pi 5 (primärer Use-Case)