mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-07-18 18:24:18 +01:00
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:
@@ -139,9 +139,14 @@ thinner and gives sub-project C (the file split) a clean unit to extract.
|
|||||||
- **Add:** `useCastSelection` for the active selection.
|
- **Add:** `useCastSelection` for the active selection.
|
||||||
- `availableVersions` — the item's real `currentItem.MediaSources` (id, name,
|
- `availableVersions` — the item's real `currentItem.MediaSources` (id, name,
|
||||||
bitrate, container).
|
bitrate, container).
|
||||||
- `availableQualities` — the bitrate-cap options, kept as a **separate axis** from
|
- `availableQualities` — the bitrate-cap options, a **separate axis** from version;
|
||||||
version; this is the real `maxStreamingBitrate` transcode cap, no longer disguised
|
this is the real `maxStreamingBitrate` transcode cap, no longer disguised as media
|
||||||
as media sources.
|
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
|
- `availableAudioTracks` / `availableSubtitleTracks` — derived from the **selected
|
||||||
version's** `MediaStreams`, not always `MediaSources[0]`.
|
version's** `MediaStreams`, not always `MediaSources[0]`.
|
||||||
- Every "selected" indicator reads from `currentSelection`.
|
- 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) |
|
| `hooks/useCastSelection.ts` | New — A3 selection state (truth + pending) |
|
||||||
| `app/(auth)/casting-player.tsx` | Replace track state with `useCastSelection`; real versions + separate quality axis |
|
| `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/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
|
## 12. Testing
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user