Remember every per-title tweak — subtitle sync, audio track, aspect/zoom, dialogue boost, playback speed, skip prefs — for that exact title, series, library, or globally. "THIS anime always needs Japanese audio + this sub timing," "THIS podcast at 1.3x."
Why 10x
High power-user love; removes the constant re-fiddling that makes playback feel unfinished. Scored 20/30.
How it maps to the architecture
- Scoped (episode / series / library / global), persisted, and synced cross-device via
config_sync_provider.
- Reuses
subtitleDelayProvider and the per-load re-apply in loadVideo() — the re-apply hook already exists.
Scope
M. True zoom/pan is net-new and mpv-only — scope it as a follow-on, not part of the core loop.
Dependencies
Rides the Night-Mode audio plumbing (dialogue boost per title) and the BasePlayer capability matrix (for what each backend can persist/apply). New synced fields should land after Settings Sync 2.0 so they're synced-by-construction.
Definition of done
Unit tests for scope-resolution (episode→series→library→global precedence) and persistence round-trip; flutter analyze lib/ clean; dart format --line-length 120.
Source: product-vision analysis (2026-07). Part of the Driftfin 10x tracking issue.
Remember every per-title tweak — subtitle sync, audio track, aspect/zoom, dialogue boost, playback speed, skip prefs — for that exact title, series, library, or globally. "THIS anime always needs Japanese audio + this sub timing," "THIS podcast at 1.3x."
Why 10x
High power-user love; removes the constant re-fiddling that makes playback feel unfinished. Scored 20/30.
How it maps to the architecture
config_sync_provider.subtitleDelayProviderand the per-load re-apply inloadVideo()— the re-apply hook already exists.Scope
M. True zoom/pan is net-new and mpv-only — scope it as a follow-on, not part of the core loop.
Dependencies
Rides the Night-Mode audio plumbing (dialogue boost per title) and the BasePlayer capability matrix (for what each backend can persist/apply). New synced fields should land after Settings Sync 2.0 so they're synced-by-construction.
Definition of done
Unit tests for scope-resolution (episode→series→library→global precedence) and persistence round-trip;
flutter analyze lib/clean;dart format --line-length 120.Source: product-vision analysis (2026-07). Part of the Driftfin 10x tracking issue.