fix(tv-player): seekable private streaming #1625

Open
lytedev wants to merge 3 commits from propose/tv-seekable-private-stream into propose/tv-native-video-proof
Owner

See the commits.

See the commits.
fix(tv-player): introduce playback-owned seekable private transport
Some checks failed
/ check-format (push) Has been cancelled
/ build (push) Has been cancelled
d77860785c
Raw stdin cannot decode MP4 with tail moov because mpv must seek backward. Replace the private raw pipe with a bounded loopback Range proxy and an unguessable URL supplied only through the owned stdin playlist. This WIP retains failing native proofs until fixtures exercise the seekable transport.
test(tv-player): prove private ranged transport with native seek and decode
Some checks failed
/ check-format (push) Has been cancelled
/ build (push) Has been cancelled
c63b22def7
Preserve the nine authorization, ownership, Node client, and nonempty byte-exact WAV contracts while replacing only raw-pipe-specific assertions. Add ten synthetic proxy protocol and bounded lifetime cases. Both original tail-moov MP4 and Matroska now decode through actual Player.launch and seek to frame 60 or later at six seconds with null video and strictly disabled audio. Remove native URL-bearing log files in favor of private IPC properties. All 21 cases pass in an isolated TCG NixOS VM on bigtower; no live media or outputs are used.
fix(tv-player): close capability error and child-exit lifetime edges
All checks were successful
/ check-format (push) Successful in 16s
/ build (push) Successful in 20m4s
d4c1f4fe56
Suppress reflected HTTP parser errors so malformed requests cannot echo a media capability. Treat a concurrently closed listener as ordinary shutdown. Extend synthetic coverage to production Player.launch replacement, stale exit watchers, natural child-exit expiry, capability absence from actual argv/environment, and redirects during later Range requests. Nix formatting and all 25 VM cases pass on bigtower under the exclusive validation lock, nice 10, one Nix job, two cores, and TCG. The native MP4 fixture still has tail moov; both native containers decode and seek to six seconds/frame 60+ using null video and no audio. Validation uses only synthetic media; full-length movies and live playback remain untested.
All checks were successful
/ check-format (push) Successful in 16s
/ build (push) Successful in 20m4s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin propose/tv-seekable-private-stream:propose/tv-seekable-private-stream
git switch propose/tv-seekable-private-stream

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch propose/tv-native-video-proof
git merge --no-ff propose/tv-seekable-private-stream
git switch propose/tv-seekable-private-stream
git rebase propose/tv-native-video-proof
git switch propose/tv-native-video-proof
git merge --ff-only propose/tv-seekable-private-stream
git switch propose/tv-seekable-private-stream
git rebase propose/tv-native-video-proof
git switch propose/tv-native-video-proof
git merge --no-ff propose/tv-seekable-private-stream
git switch propose/tv-native-video-proof
git merge --squash propose/tv-seekable-private-stream
git switch propose/tv-native-video-proof
git merge --ff-only propose/tv-seekable-private-stream
git switch propose/tv-native-video-proof
git merge propose/tv-seekable-private-stream
git push origin propose/tv-native-video-proof
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
lytedev/nix!1625
No description provided.