diff --git a/TODO.md b/TODO.md index f8be3d6..e4daf1f 100644 --- a/TODO.md +++ b/TODO.md @@ -1,9 +1,22 @@ - [x] add miruro streaming support - [x] investigate and fix audio when streaming from miruro - audio seems to crackle (not for youtube i think; only for miruros) -- [ ] add chrome cast support — implemented; verify playback, captions and A/V sync on a physical Cast device +- [x] add chrome cast support — implemented; verify playback, captions and A/V sync on a physical Cast device - [x] fix premature receiver-launch timeout: reports failure even though Chromecast subsequently connects and playback works - [x] fix TV volume slider jitter: receiver updates appear to compete with local volume adjustments - [x] investigate and reduce slow buffering after seeking in YouTube videos while casting, compared with local playback — reuse probed inputs and cache completed segments; confirm perceived improvement on TV - [x] fix Miruro Cast upstream overfetch: select HLS streams and share bounded video/audio packet buffering — verify sustained playback on TV -- [ ] in the "choose what to play" screen, we should change the youtube button general streaming - - we can figure out the stream and how to handle it from the url (i.e. if youtube url, handle as youtube stream; if miruro url, handle accordingly) \ No newline at end of file +- [ ] styling/ui changes: + - move the captions button in the controls left of the compact mode icon + - move the chrome cast button from the top-right container to the controls left of the captions button (that is, it's new position) + - don't leave and empty spot where the captions were supposed to be if captions aren't available; buttons should be moved over in that case. + - the background is currently black in the player when casting (chrome cast), but we should follow the design language of the rest of the app. + - replace the current chrome cast icon with the apple tv casting icon. +- [ ] in the "choose what to play" screen, we should change the youtube button to general streaming + - we can figure out the stream and how to handle it from the url (i.e. if youtube url, handle as youtube stream; if miruro url, handle accordingly) +- [ ] evaluate playback optimization opportunities for YouTube and Miruro — measure benefits before changing behavior + - [ ] coalesce superseded, not-yet-started seeks in the player and Cast controls; preserve accumulated relative skips and play/pause ordering + - [ ] expand Cast H.264/AAC remux coverage with keyframe-aligned segments; preserve seek accuracy, timestamps and receiver compatibility + - [ ] reuse decoder/encoder state during sequential Cast playback; reset on random seeks and preserve independent keyframes and AAC continuity + - [ ] evaluate VideoToolbox hardware video decoding for native and Cast playback; retain software fallback for unsupported formats + - [ ] benchmark cold start, cached/uncached seeks and sustained playback separately to prioritize the actual bottlenecks + - do not enable Miruro HTTP persistence without preserving origin/header checks, or increase caches/shorten Cast segments without measuring the memory/request/codec tradeoffs \ No newline at end of file