DR-235 phase 3. Every video renderer is native now: mpv on Linux and
Windows, ExoPlayer on Android, all drawing behind the transparent
webview. The HTML5 <video> path is gone, not bypassed:
- Frontend: hls.js, Html5PlayerAdapter and its compatibility shim, the
createAdapter factory, streamTransport, hlsRecovery, timeTracking,
videoFit, the <video>/<track> markup and every element handler in
VideoPlayer (3277 -> 2144 lines), the experimentalNativeVideo store
and its Settings toggle, webviewVideoFallback/supportsNativeVideo, and
the setHtml5VideoState PiP bridge call. NativePlayerAdapter is the one
video adapter; webview audio gets its own adapter kind.
- Rust: use_html5 dropped from player_seek_video,
player_switch_audio_track and player_set_stream_quality with the
Html5* strategies and ReloadStream responses; use_html5_element and
VideoBackend dropped from PlayerStatus; player_play_item always loads
the backend (set_current_item removed); Capabilities::webview removed;
the WebKitGTK GStreamer/VAAPI setup (and its gst-inspect spawn) removed.
- Android: the HTML5 video state in PictureInPictureManager and
ScreenWakeManager, and the bridge method feeding it.
- CSP: connect-src loses http:/https: and worker-src loses blob: -
both existed for hls.js; with it gone they were only an exfiltration
channel and a blob worker for injected script. A test now keeps them
out.
mpv takes over what the <video> element did (mpv_tracks, UT-275):
subtitles are the WebVTT list the play request carries, queued on
sub-files and selected by position in that list, starting off; audio
tracks are selected by position in the file; sid/aid are reset before
each load. Without this, Linux video had no subtitle selection and a
direct-play audio switch failed since mpv became its renderer.
Verified: Rust 948 passing, and the same 948 cross-compiled for Windows
under wine against the shipped DLL (track tests included); frontend
1111 passing; aarch64 debug APK builds. Lint warnings 158 -> 146, CI
ratchet tightened to match. Not yet seen on Windows hardware.