1293 Commits

Author SHA1 Message Date
Christian Benincasa
307ebc9454 fix: download external subtitles as part of scanning 2026-04-16 13:54:52 -04:00
Christian Benincasa
5724999b28 fix: include subtitle streams in minted programs from PlexApiClient
Also explicitly excludes CC tracks that are embedded in the video stream
2026-04-16 12:18:21 -04:00
Christian Benincasa
9e592b1c6b refactor: bind FfmpegInfo in singleton scope 2026-04-15 07:47:30 -04:00
Christian Benincasa
cdf0eb99e8 fix: only create one instance of ChildProcessHelper per-FfmpegInfo 2026-04-15 07:46:13 -04:00
Christian Benincasa
30ff2f88fc fix: guide generation after initial server start should always happen 2026-04-14 17:08:33 -04:00
Christian Benincasa
0b65142666 revert: "fix: add high-water mark deletion to hls session"
This reverts commit 6a030f168b.
2026-04-12 19:19:05 -04:00
Christian Benincasa
9ab26976c2 fix: backdate initial guide generation at startup 2026-04-11 09:00:32 -04:00
Christian Benincasa
b62507274d fix: include programs that start or end within requested guide date range 2026-04-11 08:23:35 -04:00
Christian Benincasa
149e3f7129 chore: make husky commit-msg executable 2026-04-10 12:52:10 -04:00
Christian Benincasa
c95d8028a6 refactor: break up DB classes into focused repositories 2026-04-10 12:52:10 -04:00
Christian Benincasa
c9266d436f fix: properly handle asynchronous indexing when scanning plex collections 2026-04-09 13:47:34 -04:00
Christian Benincasa
013081475f refactor: log full error when subtitle download fails 2026-04-09 11:36:20 -04:00
Christian Benincasa
b97531440c fix: do not leak FDs in local music scanner 2026-04-08 19:18:42 -04:00
Christian Benincasa
2c7fa22921 fix: manually trigger temp db migration file cleanup
otherwise it wont happen until exit
2026-04-08 17:34:34 -04:00
Christian Benincasa
9410efac7a fix: properly set child log levels on level change from UI 2026-04-04 08:19:49 -04:00
Christian Benincasa
1ab22ccc22 fix: explicitly set state=ok for DB updates and search indexing 2026-04-04 07:50:33 -04:00
Christian Benincasa
61b2839a39 refactor: remove unused stream cache code 2026-04-03 08:25:44 -04:00
Christian Benincasa
18e84445b1 fix(qsv): ensure setpts filter is only run on software 2026-04-03 08:03:08 -04:00
Christian Benincasa
4e46aa5c9e fix: always set state = ok for newly minted groupings 2026-04-02 10:35:17 -04:00
Christian Benincasa
73954b2a26 fix: more QSV pixel format fixes (#1723) 2026-03-30 15:28:55 -04:00
Christian Benincasa
805b6eaa28 fix: add high-water mark deletion to hls session (#1737)
Also ensures that deletion happens sequentially (no fire-and-forget)
2026-03-30 12:15:47 -04:00
Christian Benincasa
12abc265a9 fix: ensure vaapi hardware pad filters appropriately set frame data location 2026-03-29 21:14:41 -04:00
Christian Benincasa
fcfa537279 fix: ensure scaling happens on hw for vaapi when tonemap env var is false
includes many other integration tests
2026-03-29 21:14:41 -04:00
Christian Benincasa
89eb55c82c fix: parse tvshow.uniqueid tag as array in nfo parser
Fixes: #1749
2026-03-27 13:47:56 -04:00
Christian Benincasa
3af479008b fix: add more randomness to filler picker (#1746)
Rework the filler picker to add more randomness and better weighting
behavior. Specifically:

1. Shuffle incoming filler lists
2. Filler weights only added to sampling if they have a program that can
   fit in the requested time slot
3. Once a list is chosen, we shuffle the programs within that list
4. The rest of the algorithm remains the same with weighted sampling of
   programs with slight adjustments based on last-seen and duration.
2026-03-27 12:08:26 -04:00
Jason Dove
29b635e89c fix: aresample requires hz, so convert from khz (#1745)
* fix: aresample requires hz, so convert from khz

* fix: always send khz to loudnorm filter; convert inside
2026-03-26 19:35:19 -04:00
Christian Benincasa
3f5e536d71 fix: allow more granular trust proxy settings
Allow setting all variant of supported trust proxy settings from
https://fastify.dev/docs/latest/Reference/Server/#trustproxy, except for
a custom function. Allows for specifying >=1 IP or CIDR ranges, n-th hop
trust.
2026-03-23 12:31:19 -04:00
Christian Benincasa
c98fc89233 refactor: add log line for scanning so it is clear 2026-03-23 10:44:45 -04:00
Christian Benincasa
87974b629c test: add "integration" style tests that check basic transcoding pipelines 2026-03-23 10:41:06 -04:00
Christian Benincasa
ddd2613735 fix: allow unsetting loudnorm config 2026-03-20 16:42:04 -04:00
Christian Benincasa
464de4ce71 fix: enable passing loudnorm params to ffmpeg pipeline 2026-03-20 16:31:24 -04:00
Christian Benincasa
6123497f27 refactor: use lightweight bootstrap process when generating openapi 2026-03-19 16:27:14 -04:00
Christian Benincasa
2ea5565c37 test: fix tests for filler picker bug 2026-03-19 15:44:22 -04:00
Christian Benincasa
66b2676233 chore: fix build 2026-03-19 15:44:22 -04:00
Christian Benincasa
1c39f48288 fix: ensure effective "now" timestamp passed to filler picker
wall clock time is not necessarily stream time now due to workahead
2026-03-19 15:44:22 -04:00
Christian Benincasa
d3529f2c6f fix: properly calculator time since for filler list cooldowns
this is a side effect of the previous units mismatch bug
2026-03-19 15:44:22 -04:00
Christian Benincasa
cd488cd259 fix: ensure hardware padded vaapi pipelines hwdownload before watermark overlay 2026-03-19 15:44:22 -04:00
Christian Benincasa
d80863c2b9 fix: properly count discontinuity sequences without parsing master playlist 2026-03-19 15:44:22 -04:00
Christian Benincasa
8933b9873b chore: update hls.js to latest version 2026-03-19 15:44:22 -04:00
Christian Benincasa
0c8a5b7aed refactor: downgrade log level for meilisearch task watcher 2026-03-19 14:53:07 -04:00
Christian Benincasa
4abd307b06 fix: actually specify pad_opencl filter 2026-03-19 10:44:45 -04:00
Christian Benincasa
70b430f470 fix: better unparseable smart collection parse handling
Ensures that stateful errors are checked in the mutex block
2026-03-18 13:12:52 -04:00
Christian Benincasa
c07cd898c9 fix: ensure no empty discontinuity periods in generated playlists (#1722) 2026-03-18 11:28:19 -04:00
Christian Benincasa
b74ad3d619 fix: properly convert per-filler-list cooldown to millis 2026-03-18 11:26:58 -04:00
Christian Benincasa
e5e8d7353b fix: ensure no empty discontinuity periods in generated playlists 2026-03-18 10:12:51 -04:00
Christian Benincasa
eb898c253f fix: explicitly upload software overlay frames in QSV pipeline
Also removes erroneous gpu_copy option
2026-03-17 21:55:22 -04:00
Christian Benincasa
dff248fefd fix: use system fonts for error screen
Tunarr does not package font files anymore
2026-03-17 21:55:22 -04:00
Christian Benincasa
d7ed74e999 fix: remove minByIp segment mappings when clients disconnect 2026-03-16 13:37:15 -04:00
Christian Benincasa
71c245c36c fix: do not double-count discontinuities in HlsPlaylistMutator 2026-03-16 13:37:14 -04:00
Christian Benincasa
44602d651a test: fix TonemapVaapiFilter tests 2026-03-16 12:08:28 -04:00