Commit Graph

2791 Commits

Author SHA1 Message Date
Christian Benincasa
de913642a0 refactor: scanner refactoring to strategy pattern 2026-03-30 19:48:25 -04:00
Christian Benincasa
73954b2a26 fix: more QSV pixel format fixes (#1723) 2026-03-30 15:28:55 -04:00
Corey Vaillancourt
2d1f0cbc87 fix: improve user experience of tasks page on mobile (#1767)
Co-authored-by: Corey Vaillancourt <coreyjv@gmail.com>
2026-03-30 15:28:43 -04:00
Corey Vaillancourt
92f3e0ab85 fix: deduplicate programs before counting in channel overview tabs (#1763)
The movie (and music video / other video)counts in the channel
overview were inflated because the same program was counted
once per lineup occurrence rather than once per unique program.
Episodes and tracks were unaffected since they already counted unique
shows/artists.
Adding uniqBy(uuid) before the groupBy fixes the count for
all tab types.

Fixes #1634.

Co-authored-by: Corey Vaillancourt <coreyjv@gmail.com>
2026-03-30 12:51:06 -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
Corey Vaillancourt
e09c46a19a fix(search): render "starts with" operator as < in filter string (#1762)
* fix(search): render "starts with" operator as < in filter string

Add missing entry to `indexOperatorToSyntax` so that
`searchFilterToString`
converts the `starts with` API operator back to `<` instead of
displaying
the literal string "starts with" in the filter box.
Add unit tests to prevent regression.

Fixes #1760

* refactor: use helper method in test

---------

Co-authored-by: Corey Vaillancourt <coreyjv@gmail.com>
2026-03-30 11:58:05 -04:00
Corey Vaillancourt
625deee506 fix: improve user experience of channels page on mobile by rendering cards 2026-03-30 07:02:48 -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
f9851f73cb fix: do not disable audio format dropdown after selecting copy
Fixes: #1758
v1.2.8
2026-03-28 17:49:56 -04:00
Jason Dove
09a5167a6d docs: fix nvidia docker run line break (#1754) 2026-03-28 09:30:47 -04:00
Christian Benincasa
5af3c93dda fix: invalidate channel query after saving edit channel form
Fixes: #1742
2026-03-27 14:03:45 -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.
v1.2.7
2026-03-27 12:08:26 -04:00
Corey Vaillancourt
18dd66cb6e fix: improve user experience of bottom navigation (#1739)
This change improves bottom navigation in the following ways:
- Adds labels and proper ARIA handling
- Highlights active item (including related subpages)
- Adds badge support from System page
- Fixes to stay above page content.

Co-authored-by: Corey Vaillancourt <coreyjv@gmail.com>
2026-03-27 11:49:24 -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
Corey Vaillancourt
e76528ef69 chore: ignore files generated from JetBrains IDEs (#1735) 2026-03-24 20:04:07 -04:00
Corey Vaillancourt
ccd072fe02 fix: improve mobile container size on small devices (#1738) 2026-03-24 20:03:20 -04:00
www2000
1fb1e538ce fix: add 480p descriptions and add 576p resolution
Updated descriptions for 720x480 to include NTSC and add 720x576 resolutions for pal broadcasts.
2026-03-23 12:45:39 -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 v1.2.6 2026-03-20 16:42:04 -04:00
Christian Benincasa
464de4ce71 fix: enable passing loudnorm params to ffmpeg pipeline v1.2.5 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
c3383272ae Merge remote-tracking branch 'origin/dev' 2026-03-19 16:00:24 -04:00
Christian Benincasa
2a37f88047 chore: upgrade versions of a various github actions 2026-03-19 15:52:57 -04:00
Christian Benincasa
2ea5565c37 test: fix tests for filler picker bug v1.2.4 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
12cccc1540 fix: remove built-in changelog from system page 2026-03-18 16:15:43 -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
9affa59cf8 fix: properly preview channel icon for watermark when none is set
Fixes: #1668
2026-03-18 12:16:25 -04:00
Christian Benincasa
c07cd898c9 fix: ensure no empty discontinuity periods in generated playlists (#1722) v1.2.3 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
f1e80316e8 build: add shell.nix for local development (#1721)
Adds `shell.nix` with dependencies required for local development, so I
don't need to have them installed globally.

Launch using `nix-shell`.

on linux:

```bash
% nix-shell
Tunarr dev environment
  node: v22.22.0
  pnpm: 10.28.0
  ffmpeg: ffmpeg version n7.1.1-56-gc2184b65d2-20250716 Copyright (c) 2000-2025 the FFmpeg developers

[nix-shell:~/code/tunarr]$
```

on mac:

```bash
% nix-shell
Tunarr dev environment
  node: v22.22.1
  pnpm: 10.28.0
  ffmpeg: ffmpeg version 7.1.3 Copyright (c) 2000-2025 the FFmpeg developers

[nix-shell:~/code/tunarr]$
```
2026-03-17 13:12:35 -04:00
Jason Dove
9139e49275 build: simplify shell.nix shell hook 2026-03-17 11:41:32 -05:00
Jason Dove
97ccbbf5e5 build: update shell.nix to use ffmpeg 7 2026-03-17 11:34:25 -05:00
Jason Dove
392d2282e8 build: add shell.nix for local development 2026-03-17 10:50:05 -05:00
Christian Benincasa
d7ed74e999 fix: remove minByIp segment mappings when clients disconnect v1.2.2 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