mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-07-17 18:03:01 +01:00
docs(casting): quality filter by media bitrate + device cap
Per review: filter quality tiers by both ceilings; correct the shared BITRATES file reference to BitrateSelector.tsx. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -142,11 +142,12 @@ thinner and gives sub-project C (the file split) a clean unit to extract.
|
|||||||
- `availableQualities` — the bitrate-cap options, a **separate axis** from version;
|
- `availableQualities` — the bitrate-cap options, a **separate axis** from version;
|
||||||
this is the real `maxStreamingBitrate` transcode cap, no longer disguised as media
|
this is the real `maxStreamingBitrate` transcode cap, no longer disguised as media
|
||||||
sources. It reuses the app-wide `BITRATES` constant
|
sources. It reuses the app-wide `BITRATES` constant
|
||||||
(`components/BitRateSheet.tsx`) — no cast-specific list — and `BITRATES` is
|
(`components/BitrateSelector.tsx`) — no cast-specific list — and `BITRATES` is
|
||||||
expanded to the fuller Jellyfin Android TV bitrate ladder so every surface (cast,
|
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`
|
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
|
to tiers at or below **both** the connected device's `maxVideoBitrate` (from
|
||||||
`detectCapabilities`), so only usable tiers are shown.
|
sub-project A's `detectCapabilities`) and the media's own bitrate, so only
|
||||||
|
meaningful 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`.
|
||||||
@@ -181,7 +182,7 @@ 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) |
|
| `components/BitrateSelector.tsx` | Expand the shared `BITRATES` ladder (Jellyfin Android TV tiers) |
|
||||||
|
|
||||||
The `BITRATES` expansion is a one-array change to a shared constant. It is
|
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
|
deliberately app-wide: the native player and downloads bitrate menus gain the same
|
||||||
|
|||||||
Reference in New Issue
Block a user