Files
terebi/TODO.md
T

3.0 KiB
Raw Blame History

  • fix the readme:
    • clear out redundant and irrelevant overly detailed crap from the readme.
    • we don't need every minute detail (already described perfectly by the code btw) described in painstakingly verbose paragraphs in the readme.
    • implementation details are not appropriate in a readme file (without a very good reason to be there).
    • the readme should be compressed to actually useful information - nothing more - and verbose, irrelevant, or redundant information deleted.
  • 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
      • .build/cast-media-check --codec-work: 60s of 720p/30 B-frame video plus 44.1kHz PCM→AAC over loopback HTTP; three paired runs reduced median relay CPU from 3.56s to 2.58s (27%) and generation time from 4.97s to 4.43s (11%); physical-receiver playback still needs manual verification
    • evaluate VideoToolbox hardware video decoding for native and Cast playback; retain software fallback for unsupported formats
      • M4, three paired 12s/720p/30 MP4 runs: H.264/HEVC/VP9 native decode process CPU fell 77/88/92%; Cast relay process CPU fell 48/58/68%, with generation 2–7% slower. Prefer these measured codecs; AV1 keeps dav1d. Unpaced native decoding is slower; H.264 seek preview rose from 1.8ms to 4.1ms. These are process CPU measurements, not energy measurements.
      • make check-video-decoding covers native Metal upload, mapped-frame lifetime, exact seek/step/EOF, dependent-packet seek fallback, Cast independent IDRs/AAC, and unsupported codecs; video-decoding-software-check and cast-media-software-check provide matched baselines. Unsafe seek starts use software decoding (until reopen for native playback).
      • Existing Cast millisecond-timestamp limiting drops VP9 MKV frames in the software baseline; a direct relay comparison confirmed VideoToolbox preserves the same output PTS/counts. This evaluation does not change that limiter.
    • 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
  • add playlist support
    • maybe by allowing multiple file selection? 🤔
  • 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)