4gray
f0c8f686c2
fix(embedded-mpv): hash runtime cache identities
2026-07-17 22:56:47 +02:00
4gray
ee4567696a
fix(ci): declare fontconfig gperf generator
2026-07-17 22:56:47 +02:00
4gray
c3a8694036
fix(e2e): satisfy fixture index signature typing
2026-07-17 22:42:37 +02:00
4gray
31dd4d1ecd
style(embedded-mpv): format final validation inputs
2026-07-17 22:42:37 +02:00
4gray
0be95b002c
test(embedded-mpv): smoke missing bundled libmpv
2026-07-17 22:42:37 +02:00
4gray
99cb0a4dd6
docs(packaging): clarify Linux source release gate
2026-07-17 22:42:37 +02:00
4gray
99e5731beb
fix(packaging): strip VCS metadata from source bundle
2026-07-17 22:42:37 +02:00
4gray
0865fdf464
fix(release): gate Snap publish on public source release
2026-07-17 22:42:37 +02:00
4gray
6c74bf2743
fix(packaging): parse Snap trailing comments safely
2026-07-17 22:42:37 +02:00
4gray
28cea7fdb2
docs(embedded-mpv): document Linux runtime distribution
2026-07-17 22:42:37 +02:00
4gray
1477079509
feat(packaging): ship Linux runtime license notices
2026-07-17 22:42:37 +02:00
4gray
601501a4b0
fix(packaging): reject arbitrary Snap YAML aliases
2026-07-17 22:42:37 +02:00
4gray
809182ca06
fix(packaging): reject advanced Snap YAML semantics
2026-07-17 22:42:37 +02:00
4gray
406a20851b
fix(embedded-mpv): prioritize trusted Snap GL
2026-07-17 22:42:37 +02:00
4gray
489c9dee89
fix(packaging): reject ambiguous Snap memory metadata
2026-07-17 22:42:37 +02:00
4gray
5b168866e4
fix(packaging): enforce private Snap memory semantics
2026-07-17 22:42:37 +02:00
4gray
4b2e60a0ff
fix(embedded-mpv): sanitize Linux helper environment
2026-07-17 22:42:37 +02:00
4gray
08e92d4f27
fix(embedded-mpv): enable private Snap shared memory
2026-07-17 22:42:37 +02:00
4gray
cc18cae320
test(packaging): harden Linux package probes
2026-07-17 22:42:37 +02:00
4gray
f8794dd0a0
test(embedded-mpv): preserve packaged GL mode
2026-07-17 22:42:37 +02:00
4gray
22079a5986
test(embedded-mpv): harden packaged Linux smoke
2026-07-17 22:42:37 +02:00
4gray
5c49deb77a
ci: verify Linux frame-copy packages
2026-07-17 22:42:37 +02:00
4gray
3387f7817d
fix(embedded-mpv): harden Linux runtime capability gate
2026-07-17 22:42:37 +02:00
4gray
547291a7e9
docs(embedded-mpv): clarify Linux system runtime baseline
2026-07-17 22:42:36 +02:00
4gray
81918de8ec
test(embedded-mpv): smoke packaged Linux frame-copy
2026-07-17 22:42:36 +02:00
4gray
456ba1574b
feat(embedded-mpv): probe Linux frame-copy runtime
2026-07-17 22:42:36 +02:00
4gray
9bc8d74f35
docs(embedded-mpv): document Linux frame-copy packaging
2026-07-17 22:42:36 +02:00
4gray
f9207a1884
fix(embedded-mpv): pin Linux display data
2026-07-17 22:42:36 +02:00
4gray
e8903c86fb
fix(packaging): enforce Linux frame-copy isolation
2026-07-17 22:42:36 +02:00
4gray
d960997061
fix(embedded-mpv): verify Linux helper linkage
2026-07-17 22:42:36 +02:00
4gray
45c3ab86d6
feat(packaging): ship Linux frame-copy artifacts
2026-07-17 22:42:36 +02:00
4gray
904fc6d3ec
fix(embedded-mpv): make Linux runtime portable
2026-07-17 22:42:36 +02:00
4gray
84ff8de04a
fix(embedded-mpv): require bundled Linux runtime
2026-07-17 22:42:36 +02:00
4gray
0fb9ee2789
feat(embedded-mpv): build relocatable Linux helper
2026-07-17 22:42:36 +02:00
4gray
95349ec1cb
fix(embedded-mpv): pin Linux runtime inputs
2026-07-17 22:42:36 +02:00
4gray
e51fdc5286
feat(embedded-mpv): build LGPL Linux runtime
2026-07-17 22:42:36 +02:00
4gray
d3a4d4dab8
fix(embedded-mpv): harden Linux runtime staging
2026-07-17 22:42:36 +02:00
4gray
064a72d256
fix(embedded-mpv): require Linux source packages
2026-07-17 22:42:36 +02:00
4gray
f643a85eaf
feat(embedded-mpv): validate staged Linux runtime
2026-07-17 22:42:36 +02:00
4gray
cee65d0b2e
fix(packaging): reject inherited profile names
2026-07-17 22:42:36 +02:00
4gray
81f970d281
feat(packaging): define Linux frame-copy profiles
2026-07-17 22:42:36 +02:00
4gray
a3fbfb1bdc
docs: plan Linux frame-copy packaging
2026-07-17 22:42:36 +02:00
4gray
2877ec59e5
docs: design Linux frame-copy packaging
2026-07-17 22:42:36 +02:00
4gray
c6ed504723
feat(playback): add shared picture-in-picture controls ( #1199 )
...
* docs(playback): design shared web picture-in-picture
* docs(playback): keep picture-in-picture exit available
* docs(playback): plan shared web picture-in-picture
* feat(playback): add picture-in-picture controls contract
* feat(playback): add shared web picture-in-picture
* feat(playback): expose shared picture-in-picture action
* docs(playback): document shared web picture-in-picture
* test(playback): cover shared picture-in-picture flow
* test(playback): wait for PiP video in Electron E2E
* refactor(playback): extract picture-in-picture controller
2026-07-17 22:11:29 +02:00
4gray
beb62db314
feat(settings): add shared web player controls toggle ( #1198 )
...
* docs(playback): design shared controls setting
* docs(playback): plan shared controls setting
* feat(settings): persist shared web controls preference
* test(settings): harden shared controls normalization coverage
* feat(settings): expose shared web controls toggle
* fix(settings): label shared controls toggle
* feat(playback): resolve shared controls from settings
* test(playback): cover shared controls setting
* docs(playback): document shared controls preference
* fix(playback): await settings before host creation
* fix(settings): normalize shared controls updates
2026-07-17 13:38:06 +02:00
4gray and Lars Emig
48e3736460
feat(artplayer): add feature-flagged shared controls ( #1196 )
...
* feat(artplayer): add feature-flagged shared controls
Co-authored-by: Lars Emig <lars.emig@pickware.de >
* fix(artplayer): align native type and signal inputs
---------
Co-authored-by: Lars Emig <lars.emig@pickware.de >
2026-07-17 00:12:49 +02:00
4gray and Lars Emig
4e572c60ca
feat(videojs): add feature-flagged shared controls ( #1195 )
...
* feat(videojs): add feature-flagged shared controls
Rebuild the Video.js shared-controls integration on the current player lifecycle with Tech rebinds, source-scoped tracks, reset ordering, volume preservation, diagnostics gating, and default-off compatibility.
Credits and supersedes the stacked implementation proposed in #1153 .
Co-authored-by: Lars Emig <lars.emig@pickware.de >
* fix(videojs): harden MPEG-TS reset lifecycle
---------
Co-authored-by: Lars Emig <lars.emig@pickware.de >
2026-07-16 23:08:18 +02:00
4gray
c49ea2f6a8
feat(html-player): add feature-flagged shared controls ( #1194 )
...
* feat(html-player): bridge engine state to shared controls
* fix(html-player): avoid HLS subtitle event reentry
* fix(html-player): restore delayed HLS default subtitles
* refactor(html-player): split controls bridge collaborators
* feat(html-player): add feature-flagged shared controls
* test(html-player): cover shared-controls source ownership
* feat(html-player): pass shared-controls playback metadata
* docs(player-controls): describe HTML5 shared-controls bridge
* docs(player-controls): clarify HTML5 rollout effect
* fix(html-player): reveal diagnostics from fullscreen
* fix(html-player): defer HLS event resolution
* refactor(html-player): isolate video element session
2026-07-16 21:30:41 +02:00
4gray
f611ea3d7c
feat(embedded-mpv): use shared controls for frame-copy ( #1193 )
...
* docs(embedded-mpv): plan frame-copy shared controls
* feat(embedded-mpv): adapt frame-copy sessions to shared controls
* fix(embedded-mpv): correlate recording control updates
* fix(embedded-mpv): accept recording ack before command resolve
* fix(embedded-mpv): serialize delayed recording commands
* fix(embedded-mpv): latch buffered recording outcomes
* feat(embedded-mpv): use shared controls for frame-copy
* fix(embedded-mpv): isolate recording ticks by engine
* fix(embedded-mpv): reset controls on engine handoff
* docs(embedded-mpv): document frame-copy shared controls
* docs(embedded-mpv): normalize shared-controls plans
* fix(embedded-mpv): isolate legacy feedback on handoff
* fix(player-controls): block toggles while stalled
* refactor(embedded-mpv): isolate controls timing
* fix(player-controls): reset recording feedback on handoff
* fix(embedded-mpv): preserve newer session snapshots
2026-07-16 18:47:32 +02:00
8f597b44cf
refactor(embedded-mpv): split session controller into focused collaborators [2/7] ( #1149 )
...
* refactor(embedded-mpv): split session controller into focused collaborators
Mechanical decomposition of the embedded-MPV session controller into
focused collaborators under embedded-mpv-player/:
- embedded-mpv-command-runner.ts: transport/track/recording IPC
delegators with guarded snapshot reconciliation
- embedded-mpv-session-factory.ts: pure placeholder-session factories
(loading/attaching/error) and the startup-paint wait
- embedded-mpv-stalled-tracker.ts: loading-stall timer and stalled flag
- embedded-mpv-compositor.ts: host bounds measurement (measureBounds),
re-exported from embedded-mpv-format.utils for existing imports
No behavior change. The existing embedded-mpv-player component is kept
untouched and keeps working against the controller's unchanged public
API (commands are now bound fields delegating to the runner).
Test coverage extended per Codecov patch report.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
* refactor(embedded-mpv): drop superseded overlay hooks
* fix(embedded-mpv): guard async session races
* docs(embedded-mpv): document renderer collaborators
* fix(embedded-mpv): abort stale recording startup
* docs(embedded-mpv): clarify renderer safety details
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
Co-authored-by: 4gray <serega05@gmail.com >
2026-07-16 14:13:13 +02:00