docs(casting): quality menu reuses expanded shared BITRATES

Per review: the cast quality selector reuses the app-wide BITRATES
constant (expanded to the Jellyfin Android TV ladder) instead of a
cast-specific list, filtered by device capability.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Uruk
2026-05-21 23:30:18 +02:00
parent 6d0ca44308
commit 95d63e3c8a

View File

@@ -139,9 +139,14 @@ thinner and gives sub-project C (the file split) a clean unit to extract.
- **Add:** `useCastSelection` for the active selection.
- `availableVersions` — the item's real `currentItem.MediaSources` (id, name,
bitrate, container).
- `availableQualities` — the bitrate-cap options, kept as a **separate axis** from
version; this is the real `maxStreamingBitrate` transcode cap, no longer disguised
as media sources.
- `availableQualities` — the bitrate-cap options, a **separate axis** from version;
this is the real `maxStreamingBitrate` transcode cap, no longer disguised as media
sources. It reuses the app-wide `BITRATES` constant
(`components/BitRateSheet.tsx`) — no cast-specific list — and `BITRATES` is
expanded to the fuller Jellyfin Android TV bitrate ladder so every surface (cast,
native player, downloads) gains the extra tiers. The cast menu filters `BITRATES`
to tiers within the connected device's `maxVideoBitrate` (from sub-project A's
`detectCapabilities`), so only usable tiers are shown.
- `availableAudioTracks` / `availableSubtitleTracks` — derived from the **selected
version's** `MediaStreams`, not always `MediaSources[0]`.
- Every "selected" indicator reads from `currentSelection`.
@@ -176,6 +181,11 @@ this is consistent with audio. The `pendingSelection` covers the re-buffer gap.
| `hooks/useCastSelection.ts` | New — A3 selection state (truth + pending) |
| `app/(auth)/casting-player.tsx` | Replace track state with `useCastSelection`; real versions + separate quality axis |
| `components/chromecast/ChromecastSettingsMenu.tsx` | Separate Version / Quality sections; selected rows from `currentSelection` |
| `components/BitRateSheet.tsx` | Expand the shared `BITRATES` ladder (Jellyfin Android TV tiers) |
The `BITRATES` expansion is a one-array change to a shared constant. It is
deliberately app-wide: the native player and downloads bitrate menus gain the same
tiers, which is the requested behaviour.
## 12. Testing