Repository navigation
Releases: yellkell/frameplayer
Release list
FramePlayer 0.3.0-alpha.16
FramePlayer for the Steam Frame: a native VR video player.
Install it on the Frame from Desktop Mode at https://yellkell.com/frame
(Install Frame Tools), with no PC or Developer Mode needed. If you have
0.3.0-alpha.5 or later, it also comes through Settings → Updates.
What's new since 0.3.0-alpha.15:
- "Hardware decoder busy" no longer sticks. When the hardware decoder
failed on a video, FramePlayer could keep hold of it, so every later
video, even local files, played in software and stuttered until a
restart. A video now always gives the decoder back when it closes,
including when you switch to another video while one is playing. - Videos played from a NAS (SMB) are closed on the NAS when you close
them. They used to stay open there until FramePlayer quit, which could
keep watched files locked (a Windows share won't delete or rename an
open file). - If a video still ends up decoding in software, the log says why and
whether FramePlayer itself holds the hardware decoder, so a report
with the log tells the whole story.
Tested on a Frame: 4K H.264 from an SMB share with 120 one-minute skips,
and 30 switches between 4K and 8K videos while playing, local and over
SMB, all on the hardware decoder.
Also since 0.3.0-alpha.11: subtitles are drawn again, movies start flat
(with a default format for videos nothing identifies), Blu-ray rips
decode, sources can be locked with a PIN, playback from a NAS (SMB) no
longer freezes after a few minutes, and passthrough videos from a feed
stay passthrough when reopened from the Library.
The controller pictures are renders of Valve's controller models and are
not covered by FramePlayer's MIT / Apache-2.0 licence; see licenses/.
Full Changelog: v0.3.0-alpha.15...v0.3.0-alpha.16
FramePlayer 0.3.0-alpha.15
FramePlayer for the Steam Frame: a native VR video player.
Install it on the Frame from Desktop Mode at https://yellkell.com/frame
(Install Frame Tools), with no PC or Developer Mode needed. If you have
0.3.0-alpha.5 or later, it also comes through Settings → Updates.
What's new since 0.3.0-alpha.14:
- Passthrough videos from a DeoVR or HereSphere feed play right when you
open them from the Library or Home (recently watched, continue
watching), not only from the source's own list. They used to come up
as a flat side-by-side screen: the packed passthrough mask showed red
in the corners, and moving yourself up, down or forward did nothing.
Any feed video that declares its format (fisheye, 180°, 360°) keeps it
when reopened from the library.
Also since 0.3.0-alpha.11: subtitles are drawn again, movies start flat
(with a default format for videos nothing identifies), Blu-ray rips
decode, sources can be locked with a PIN, and playback from a NAS (SMB)
no longer freezes after a few minutes.
The controller pictures are renders of Valve's controller models and are
not covered by FramePlayer's MIT / Apache-2.0 licence; see licenses/.
v0.3.0-alpha.14
Full Changelog: v0.3.0-alpha.13...v0.3.0-alpha.14
v0.3.0-alpha.13
Full Changelog: v0.3.0-alpha.12...v0.3.0-alpha.13
v0.3.0-alpha.12
Full Changelog: https://github.com/yellkell/frameplayer/commits/v0.3.0-alpha.12
FramePlayer 0.3.0-alpha.9
FramePlayer for the Steam Frame: a native VR video player.
Install it on the Frame from Desktop Mode at https://yellkell.com/frame
(Install Frame Tools), with no PC or Developer Mode needed. If you have
0.3.0-alpha.5 or later, it also comes through Settings → Updates.
What's new since 0.3.0-alpha.8:
- The keyboard has a symbols page. The new #+= key next to shift swaps
the letters for every symbol (! # $ % ^ * ( ) + = [ ] { } \ | ; ' " , < > ~
and the rest), and abc swaps back. Shift only ever uppercased letters, so
passwords with those symbols couldn't be typed before.
The controller pictures are renders of Valve's controller models and are
not covered by FramePlayer's MIT / Apache-2.0 licence; see licenses/.
FramePlayer 0.3.0-alpha.11
FramePlayer for the Steam Frame: a native VR video player.
Install it on the Frame from Desktop Mode at https://yellkell.com/frame
(Install Frame Tools), with no PC or Developer Mode needed. If you have
0.3.0-alpha.5 or later, it also comes through Settings → Updates.
What's new since 0.3.0-alpha.10:
- Sorting when browsing a source (an SMB share on a NAS, a folder on the
Frame, WebDAV, DLNA...): Name, Newest, Oldest, Largest or Smallest.
Folders stay on top and your choice is remembered. Each file now shows
its date next to its size, and the folder's counts show beside the sort
options. Thanks to the tester who asked for it.
Also in 0.3.0-alpha.10: picking another video while one is playing no
longer leaves the new one stuttering with "Hardware decoder busy".
The controller pictures are renders of Valve's controller models and are
not covered by FramePlayer's MIT / Apache-2.0 licence; see licenses/.
FramePlayer 0.3.0-alpha.10
FramePlayer for the Steam Frame: a native VR video player.
Install it on the Frame from Desktop Mode at https://yellkell.com/frame
(Install Frame Tools), with no PC or Developer Mode needed. If you have
0.3.0-alpha.5 or later, it also comes through Settings → Updates.
What's new since 0.3.0-alpha.9:
- Picking another video while one is playing no longer leaves the new one
stuttering with "Hardware decoder busy". The new video used to open while
the old one still held the Frame's hardware decoder, so it often fell back
to slow software decoding. FramePlayer now closes the playing video first
(its position is saved as usual).
Also in 0.3.0-alpha.9: the keyboard has a symbols page (the #+= key) with
! # $ % ( ) [ ] { } and every other symbol, for passwords.
The controller pictures are renders of Valve's controller models and are
not covered by FramePlayer's MIT / Apache-2.0 licence; see licenses/.
Chromium XR for Steam Frame 157.0.8085.0 (test build 11)
Chromium with immersive WebXR for the Steam Frame, built from chromium/main
2255089d4176 with the patches listed below. Unofficial and experimental;
based on saphid/chromium-webxr-steam-frame.
Install or update it on the Frame from Desktop Mode at https://yellkell.com/frame
(Install Frame Tools), with no PC or Developer Mode needed.
New since test build 10:
- YouTube's 360° and VR180 videos play in VR. A VR button appears in the
player on those videos and opens a VR view that looks and works like
FramePlayer: its control bar and adjust panel (format, position with height
and forward, picture; saved per video), controller lasers to click and drag,
grip to move a panel, grip + trigger to drag the picture, and FramePlayer's
buttons (A / D-pad down play and pause, B leaves). Desktop YouTube sends 360°
at up to 4K and VR180 as one eye, so the picture is flat and a little soft. - YouTube uses VP9 instead of AV1: 4K60 plays smoothly.
- Fix: VP9 video no longer uses the Frame's hardware decoder (patch 0018).
Closing a VP9 video (a new video, an ad ending) could crash the Frame's
video firmware, and once left the system unstable until a restart. VP9 now
decodes in software, which keeps up with 4K60. Seeking in hardware-decoded
video (H.264, HEVC) no longer restarts the decoder. - Leaving a WebXR session goes straight back to the page instead of showing
nothing for 10 seconds.
From test build 10:
- VR video players show your Steam Frame controllers instead of generic hands.
- Controllers stay steady when you open the Steam menu; DeoVR's web player
opens in VR.
Same browser as test build 10 otherwise: thumbstick scrolling, controller
vibration, hardware VR video (8K HEVC), MSE, WebCodecs; no DRM (Widevine), no
WebXR layers, no camera hand tracking on the Frame.
Logs: ~/.local/state/chromium-xr-frame/. To start on another page, put its
address in ~/.config/chromium-xr-frame/home-url.
The Steam Frame controller models (frame-models/) are Valve's, from SteamVR,
converted for WebXR pages by FramePlayer's tools/webxr/frame-models. The VR
view's fonts are Inter (SIL OFL) and Phosphor icons (MIT), licences in
frame-browsing/fonts/.
ChromiumXR-Frame-arm64.zip: sha256 fdd9288104f927361a29245d0a6209990da86a1dd300925974e159fef468a787, 236855295 bytes.
patches:
ef3383c4170318d289d820b2a1fca9b76c79e8e9de31d280f1a3b05f5ceae6a7 0001-Linux-sandbox-broker-answers-for-the-bare-proc-self-.patch
9307ac4cd25814fa0f987fa5cc7ca2cbd9c51b6f7c040cae0052b9afd3dee994 0002-vr-let-SteamVR-s-runtime-read-the-XR-process-s-own-p.patch
81f20a624342a6b9608291f1ea809bf518885473ba0c09eefff402367f6ac5f9 0003-sandbox-allow-getsockopt-SO_PEERCRED-in-the-XR-proce.patch
5cc9a29d039fee650a754b2255127037ec5fa774b99307575c0b6ee4eb985bce 0004-vr-expose-Steam-Frame-controllers-to-WebXR.patch
4ead74d77145edb660f5cd5b48e275fef430b30ba4b91f4e8e6c0dbc3b938b98 0005-xr-don-t-discard-the-shared-buffer-s-depth-stencil-on.patch
4a6305062bfe91a1efd8bd39f039962ce6627af1dc039028f9002dcb260774df 0006-vr-Quest-compatible-Steam-Frame-gamepad.patch
a6cab2719e4a2b460bc66c37019904c73f6044c509a99b0435a2c3bf49420698 0008-xr-controller-vibration-through-OpenXR-haptics.patch
e610c618eacdd1ceb7744cc08c7dc118ffce953b08488885ac44bba9edd74602 0009-xr-Linux-OpenXR-draws-pages-at-their-own-framebuffer.patch
892cfe18bc76ca589a439f18bd828303c244b31ef55a4dee860e8dc10f8b0274 0010-xr-antialiasing-for-Linux-OpenXR-pages.patch
d6e79bea3f3b485cdf7c0142a8233d278ee15fa12ff285a1b0bb2a1e43515633 0011-xr-Linux-OpenXR-doesn-t-wait-for-the-GPU-each-frame.patch
5b518ac5ffc0ae80acf13959bb38ffd5b53b08954425d2da1ea2f65a5b6f4dfb 0012-xr-softer-controller-vibration.patch
9fff20f1226c77099e585a220e3b01c4b5c5405b4b6d86eb8be50fbc7f5f7b40 0013-xr-2x-antialiasing-for-WebXR-on-Linux-arm64.patch
3b1c6b47bdaa459fea7d52ca6acab8bbdea0f65167a26049b71e628af0987d10 0014-media-V4L2-hardware-video-decode-for-WebXR-on-the-Steam-Frame.patch
cddaa8bf91135a34c1c496bc54d6c06cfc13a3a6ef98e825826b6f5580ad0c0e 0015-gamepad-hapticActuators-and-pulse-for-WebXR-controllers.patch
f2b1db5bb9dc75b7ee0ea4545f6b7c2eab626976f134ff362d7911caf678cbfa 0016-xr-short-controller-taps-strong-enough-to-feel.patch
a431365dda2d132725193eaa391e01814863314bf14f2700621905276ab7aa2b 0017-xr-keep-WebXR-controllers-steady-through-the-Steam-menu.patch
7e0f1903d946aae776b0f57124092a57956528bd0f65094e26f7e6edadd4b815 0018-media-iris-VP9-in-software-and-seeks-that-keep-the-decoder.patch
Chromium XR for Steam Frame 157.0.8085.0 (test build 9)
Chromium with immersive WebXR for the Steam Frame, built from chromium/main
2255089d4176 with the patches listed below. Unofficial and experimental;
based on saphid/chromium-webxr-steam-frame.
Install or update it on the Frame from Desktop Mode at https://yellkell.com/frame
(Install Frame Tools), with no PC or Developer Mode needed.
New since test build 8:
- Controllers stay steady when you open the Steam menu. SteamVR briefly lets go
of the controllers when a VR session starts and when its menu opens, and the
browser used to make them vanish and reappear to the page. VR video players
then drew a second set of hands or controllers, and pausing a video and
opening the Steam menu could leave broken, frozen models across your view. - DeoVR's web player (deovr.com) opens in VR. It only offered "open in the
DeoVR app" before, because it didn't recognise the browser as a headset. It
now also shows the Steam Frame's controllers instead of generic hands (the
Frame has no camera hand tracking).
Same browser as test build 8 otherwise: thumbstick scrolling, controller
vibration, hardware VR video (8K HEVC), MSE, WebCodecs; no DRM (Widevine), no
WebXR layers, no camera hand tracking on the Frame.
Logs: ~/.local/state/chromium-xr-frame/. To start on another page, put its
address in ~/.config/chromium-xr-frame/home-url.
The Steam Frame controller models (frame-models/) are Valve's, from SteamVR,
converted for WebXR pages by FramePlayer's tools/webxr/frame-models.
ChromiumXR-Frame-arm64.zip: sha256 be5aba6da13e6a0f074b0b909ca8381b68b69f6ec86a7abd2e0b43a2d28ed0b9, 236461903 bytes.
patches:
ef3383c4170318d289d820b2a1fca9b76c79e8e9de31d280f1a3b05f5ceae6a7 0001-Linux-sandbox-broker-answers-for-the-bare-proc-self-.patch
9307ac4cd25814fa0f987fa5cc7ca2cbd9c51b6f7c040cae0052b9afd3dee994 0002-vr-let-SteamVR-s-runtime-read-the-XR-process-s-own-p.patch
81f20a624342a6b9608291f1ea809bf518885473ba0c09eefff402367f6ac5f9 0003-sandbox-allow-getsockopt-SO_PEERCRED-in-the-XR-proce.patch
5cc9a29d039fee650a754b2255127037ec5fa774b99307575c0b6ee4eb985bce 0004-vr-expose-Steam-Frame-controllers-to-WebXR.patch
4ead74d77145edb660f5cd5b48e275fef430b30ba4b91f4e8e6c0dbc3b938b98 0005-xr-don-t-discard-the-shared-buffer-s-depth-stencil-on.patch
4a6305062bfe91a1efd8bd39f039962ce6627af1dc039028f9002dcb260774df 0006-vr-Quest-compatible-Steam-Frame-gamepad.patch
a6cab2719e4a2b460bc66c37019904c73f6044c509a99b0435a2c3bf49420698 0008-xr-controller-vibration-through-OpenXR-haptics.patch
e610c618eacdd1ceb7744cc08c7dc118ffce953b08488885ac44bba9edd74602 0009-xr-Linux-OpenXR-draws-pages-at-their-own-framebuffer.patch
892cfe18bc76ca589a439f18bd828303c244b31ef55a4dee860e8dc10f8b0274 0010-xr-antialiasing-for-Linux-OpenXR-pages.patch
d6e79bea3f3b485cdf7c0142a8233d278ee15fa12ff285a1b0bb2a1e43515633 0011-xr-Linux-OpenXR-doesn-t-wait-for-the-GPU-each-frame.patch
5b518ac5ffc0ae80acf13959bb38ffd5b53b08954425d2da1ea2f65a5b6f4dfb 0012-xr-softer-controller-vibration.patch
9fff20f1226c77099e585a220e3b01c4b5c5405b4b6d86eb8be50fbc7f5f7b40 0013-xr-2x-antialiasing-for-WebXR-on-Linux-arm64.patch
3b1c6b47bdaa459fea7d52ca6acab8bbdea0f65167a26049b71e628af0987d10 0014-media-V4L2-hardware-video-decode-for-WebXR-on-the-Steam-Frame.patch
cddaa8bf91135a34c1c496bc54d6c06cfc13a3a6ef98e825826b6f5580ad0c0e 0015-gamepad-hapticActuators-and-pulse-for-WebXR-controllers.patch
f2b1db5bb9dc75b7ee0ea4545f6b7c2eab626976f134ff362d7911caf678cbfa 0016-xr-short-controller-taps-strong-enough-to-feel.patch
a431365dda2d132725193eaa391e01814863314bf14f2700621905276ab7aa2b 0017-xr-keep-WebXR-controllers-steady-through-the-Steam-menu.patch