Commit Graph

38 Commits

Author SHA1 Message Date
d276d3b4c3 fix: show Laya model download progress and surface errors in Settings (#12)
Track download progress in layaService (bytes/total, phase, error
state) and expose it through the laya status route. Render a progress
bar during model download in Settings via a layaStatusPresentation
service, and display download/status errors inline instead of failing
silently. Cover progress tracking and status presentation with tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 11:49:36 +02:00
ce11ecc757 feat: add optional Laya engine mode for grouping and language detection (#12)
Add a languageDetectionMode setting (algo | laya | laya+algo) exposed
in Settings with three engine choices. When Laya is enabled, a laya
service (Dockerfile.laya, optional compose profile, models stored
outside the repo under ./data/models/laya) can be started, with model
download and deletion from the UI via /laya routes to manage disk
space. Add a channelLanguageFusion service combining Laya results
with the existing algorithm, and wire detection mode through
grouping, channel list and player. Cover engine selection, fusion
and laya service behavior with tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-02 11:13:34 +02:00
4488914b2d feat: add quality/transcoding options to live player (#6)
Manual quality profiles (source/1080p/720p/480p) in the player overflow
menu plus an honest/preparatory Auto contract: adaptive when the HLS
manifest exposes multiple levels, single-rendition automatic selection
otherwise.

- server: transcodeQualityProfiles service and qualityMode session option
- player: quality menu, persisted preference, live switch with rollback
- tests: npm test script and unit tests for quality profiles
2026-09-30 12:01:08 +02:00
d018ac078c feat: add Plex-style adaptive transcoding with bitrate limits and hardware fallback 2026-09-29 23:31:05 +02:00
72e14dca57 feat: enhance plugin system with async support and lifecycle hooks & reverted PR #79 due to Node.js v24 stream compatibility issues 2026-02-05 01:42:40 -08:00
bfc80738f4 Refactor parseStreaming to use pendingBatches array
Was running into an issue where epg wouldn't process passed the first batch. Refactored the batching to use an array and added backpressure to keep memory usage low.
2026-01-31 19:31:03 -05:00
3272b19177 fix: updated hardware scale filters to explicitly output 8-bit format (nv12), removed conflicting -pix_fmt flag 2026-01-19 15:13:39 -08:00
056555c7b4 fix: hardware transcoding 10-bit error and EPG navigation bug (Issues #61, #63) 2026-01-19 14:36:53 -08:00
059cfecdcc feat: implement 4k upscaling 2026-01-19 01:45:44 -08:00
237d11cf00 feat: implement hardware and software upscaling 2026-01-19 01:34:45 -08:00
b890d30253 feat: add home page with favorites, resume playback, recently added VOD 2026-01-18 14:04:40 -08:00
bf111e1fca feat: add home page with resume functionality and recently added VOD 2026-01-18 03:08:08 -08:00
c4cc8ef63c fix: added format=nv12 to scale_vaapi filter and -profile:v main to ensure encoder compatibility 2026-01-17 18:57:51 -08:00
8304e7abe1 build: simplified the dockerfile to install ffmpeg via apt 2026-01-17 18:38:15 -08:00
d85ed753ab fix: resolve 'auto' encoder to detected hardware and add VAAPI drivers to Dockerfile 2026-01-17 17:54:50 -08:00
c1f8077438 feat: add smart audio copy and audio mix presets for configurable 5.1 downmixing 2026-01-17 13:31:13 -08:00
9919975663 Refine audio downmix to ITU standards 2026-01-17 03:31:33 -08:00
2c34359b2c feat: Implement hardware-accelerated HLS transcoding with granular controls, smart stereo downmixing, and robust support for MKV and 10-bit HEVC playback. 2026-01-17 03:07:16 -08:00
efcf14a545 feat: implement GPU encoder pipelines 2026-01-17 01:39:26 -08:00
f0c1393ce0 feat: add hardware detection service for GPU-accelerated transcoding (NVIDIA/AMD/Intel/VAAPI) 2026-01-17 01:00:37 -08:00
196b9520b7 feat: add large M3U playlist warning (50K+ channels) 2026-01-16 17:00:57 -08:00
aa0fb7b956 fix: m3u sync stale purge bug 2026-01-14 17:32:19 -08:00
60010cc734 fix: race condition where race condition where loadMovies/loadSeries was called before
hiddenCategoryIds was populated
2026-01-14 15:25:04 -08:00
0a013ec05f fix: handle null stream names during Xtream sync (#50) 2026-01-14 14:48:31 -08:00
6834849cad chore: updated readme nginx example 2026-01-12 16:50:12 -08:00
b81ce4856e fix: store tvgId during M3U sync process for EPG matching (#44) 2026-01-12 14:26:54 -08:00
a86f9ca878 feat: add M3uXtreamAdapter service for unified API handling 2026-01-11 23:52:45 -08:00
e8e6ba27d7 Implemented streaming parsers for M3U and EPG to reduce memory usage 2026-01-07 23:09:23 -08:00
b119b37b87 Updated sync timer logging 2026-01-04 02:01:08 -08:00
a00082b0ef Implemented virutal scrolling for epg, optimized database batching, moved sync timer to server 2026-01-04 00:46:51 -08:00
ca87a5f143 Misc fixes for syncService, remux and proxy 2026-01-04 00:18:58 -08:00
1193e07017 Updated readme 2026-01-03 21:28:36 -08:00
8805ddbc13 Refactored code to use sqlite for channel, epg and vod data 2026-01-03 21:07:18 -08:00
d63c9c37d7 Refactored server/db.js and all routes to use asynchronous fs operations, refactored m3uParser and epgParser to use streaming (via readline and sax) to prevent errors with large files, updated server/routes/proxy.js to use native stream piping for images and video, reducing latency and memory overhead 2025-12-30 00:34:55 -08:00
57b0f7ba81 CORS error detection expansion, binary segment handling, EPG magic byte detection 2025-12-28 03:21:27 -08:00
79d84aa64b Added xml.gx support for EPG 2025-12-27 23:22:37 -08:00
bb5dc89311 Updated cacheing to use persistent json cache 2025-12-27 21:16:17 -08:00
4f9ec55874 Initial commit 2025-12-27 14:16:40 -08:00