Skip to content

Releases

LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with VRR, 0.5.0 beta 7

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 18:09

The seventh beta of LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with variable refresh rate (FreeSync), built from main. v0.4.1 stays the stable release.

Changes since beta 6

  • CM v4.0 metadata and L2 trim settings (engine 0.5.0), as the x86 build (libreelec-x86-DV) has them. For a video with only CM v2.9 metadata, "Add CM v4.0 metadata" adds neutral CM v4.0 blocks (L3, L9, L11, L254) to what the display is sent, so it uses its CM v4.0 processing: Off, Without L2 trims only, Always, Auto (a video mastered no brighter than a trigger: the TV peak, or 1000 to 10000 nits) and Auto 2 (while the scene's peak fits the TV peak plus a headroom). "Remove L2 trims" leaves the video's L2 trims out. The picture itself isn't changed. They are in Player / Videos at the Advanced settings level ("Remove L2 trims" at Expert) and in the video settings during playback, where a change applies from the next picture; "TV peak luminance" is entered by hand, and the rules that need it add nothing while it is 0. Player information shows what was sent. With each option the engine's output is identical, byte for byte, to CB1 Master Reference's with the same option.
  • Dolby Vision for films encoded at the picture's size (engine 0.4.2). A film stored without its black bars (3840x2076, say) fell back to HDR10, because the Dolby Vision frame must be the display mode's size. It now goes out in a 3840x2160 frame with the picture in the middle.
  • Player information in three columns. Input (the stream, its colour, its Dolby Vision profile, version and RPU levels), Processing (what the engine does and its GPU time per picture, the static and RPU metadata) and Output (the mode, VRR, the signal, the infoframe, the metadata sent), with meters below, after the panel of the x86 build.
  • Overclocking. LibreELEC / Overclocking (and pi-overclock on the command line) shows the CPU and GPU clocks, temperature, fan and throttling, and offers Mild (CPU 2600 MHz), Moderate (2800 MHz) and High (3000 MHz, GPU 1250 MHz), or custom values in expert mode. "Apply and test" restarts once with the new settings and runs a five-minute stability test: they are kept only if it passes, a hang or a failed test leaves the old settings in place, and a trial that fails from instability can be retried with 12.5 mV more. If three boots in a row don't finish with an overclock, it is turned off. The presets add no voltage. An overclock needs good cooling: on the test Pi, with a small cooler, Mild passed its test and the others reached the temperature limit and were not kept. The GPU overclock of High makes the engine 6 to 7% faster. The page also shows whether the bootloader's SDRAM tuning and NUMA emulation are on (they are with a bootloader from December 2024 or later).
  • Less GPU work under the GUI (engine 0.5.0). While the GUI over a Dolby Vision video doesn't change, its conversion is reused (the OSD's bars cost about 3 ms less a picture: 33.6 to 30.5 ms for a 4K FEL film), and the video under its opaque areas is no longer reconstructed (an opaque panel over most of the picture: 46 to 19 ms). The output is the same, bit for bit. Kodi redraws the GUI up to 12 times a second while a video plays, so a panel that keeps changing, such as Player information, gains little: see Limitations.
  • LibreELEC master of 2026-11-11. Kodi 22.0 RC2 and Mesa 26.3.0, among others. Mesa 26.3's V3D driver asks for more memory behind every buffer than the video decoder's buffers have; engine 0.5.0 handles that (0.4.2 renders nothing with it).

Changes in beta 6

  • The GUI in the Dolby Vision signal. The OSD, menus and dialogs over Dolby Vision video were legible but in wrong colours (green and magenta). Kodi now draws them offscreen and the engine composites them into the Dolby Vision signal, as it does the subtitles, so they show in their own colours with the display still in Dolby Vision. Only the areas the GUI covers are composited (up to four, engine 0.4.0), and while a video plays the GUI is redrawn at most 12 times a second.

  • A faster Dolby Vision engine (0.4.1). The same output, bit for bit, in less GPU time. Per picture on the Pi 5 at stock clocks, against engine 0.4.0:

    Video 0.4.0 0.4.1
    4K profile 7 FEL (1917, Gladiator, Trainspotting) 23.3–29.1 ms 20.9–26.0 ms (about −10%)
    4K profile 7 MEL, 60 fps (Gemini Man) 17.6 ms 12.7 ms (−28%)
    4K profile 5 / 8.1 (Sol Levante) 16.3 ms 12.9 ms (−21%)
    4K profile 8.4 (Sol Levante) 31.5 ms 27.6 ms (−13%)
    4K pillarboxed 4:3 17.2 ms 10.4 ms (−39%)
    4K FEL with the Annex B upscale 33.7–37.1 ms 29.2–32.1 ms (about −13%)

    4K60 MEL now fits its 16.7 ms frame with room to spare. The changes: render areas grown to whole V3D tiles, an interior variant of the second pass without the per-pixel packet and active-area tests, no store of an enhancement layer target nothing reads, a tighter error bound for the exact chroma MMR, a pillarbox's side bars skipped like a letterbox's, and the Annex B upscale's vertical filter moved into the first pass.

Changes in beta 5

  • Updates from the LibreELEC menu. LibreELEC / Updates now offers this repository's builds instead of LibreELEC's, in two channels: DV-13.0 (the releases) and DVbeta-13.0 (these betas). A build checks its own channel for a newer one and, with "Automatic updates" on auto, installs it at the next reboot; on manual it tells you, and you choose a channel and a build there. It no longer asks LibreELEC's update server, so it can't be moved onto an official build without Dolby Vision. Builds are now named by their version (LibreELEC-RPi5.aarch64-13.0-dv-0.5.0-beta.5), which the menu and System info show.
  • Dolby Vision settings in Kodi's settings. Player / Videos has a "Dolby Vision" group (shown with a Dolby Vision display): the enhancement layer and the infoframe, and at the Expert settings level the enhancement layer upscale, chroma MMR and filters. Every video starts with them; the "Dolby Vision" group in the video settings during playback still changes them for that video, and its "Set as default for all media" stores them here. A video with stored video settings (an audio delay, say) used to start with the built-in options instead of your defaults; it now takes these.

Dolby Vision defaults saved with "Set as default for all media" in an earlier build aren't carried over: set them again in Player / Videos.

Changes in beta 4

  • The display's own modes no longer compete with the VRR ones. A display lists its modes next to the VRR modes, often at the same size and rate: on one monitor, 3840x2160 at 59.94 Hz with a 593.4 MHz clock beside the 59.95 Hz VRR mode on the 594 MHz timing. A desktop or a playback rate that matched the display's mode made the switch a full mode change, with the display blanking. While "Variable refresh rate" is on, Kodi now leaves out each such mode; turning it off brings them back. The display's modes below its VRR range (24, 25, 30 Hz on most displays) stay.

Changes in beta 3

  • A "Variable refresh rate" setting in System / Display, shown when the display supports VRR and on by default. Turning it off goes back to the ordinary modes and switches, and takes effect immediately.
  • A desktop resolution a VRR mode shares now uses the VRR mode. A 1080p 60 Hz desktop on a 120 Hz display picked the ordinary 60 Hz mode, so playback from it still changed the mode; it now picks the 60 Hz VRR mode and switches without blanking.

Changes in beta 2

The VRR modes of each size are now derived from its fastest mode within the display's range that the Pi can send (1080p120 and 2160p60 on an LG B4), not from its 60 Hz mode. From a 1080p120 desktop, refresh switches are now seamless (beta 1 changed the mode), and 23.976 fps at 1080p now gets its 47.96 Hz VRR mode. A 60 Hz VRR mode is added where the base is faster.

What's new

Variable refresh rate. With a FreeSync display, refresh rate switches during playback no longer blank the screen. The Pi 5's HDMI output follows the length of the vertical front porch frame by frame, so:

  • the kernel (vc4) reads the display's FreeSync range from its EDID, reports vrr_capable, and adds modes for 23.976–60 Hz within that range that only differ in their front porch from the fastest mode of each size it can send (1080p120, 2160p60 on an LG B4);
  • with VRR_ENABLED, it switches between those modes without a modeset, and sends AMD's FreeSync SPD infoframe;
  • Kodi sets VRR_ENABLED and, with "Adjust display refresh rate" on, picks those modes at the video's frame rate or twice it: 24p plays at 47.96 Hz, 25p at 50 Hz, 30p at 59.95 Hz.

Turning Dolby Vision on or off still changes the mode, so a Dolby Vision film starts with one short blank, straight at its final rate, and keeps Dolby Vision and VRR together. HDR10 at 4K goes out as 12-bit YUV 4:2:2.

Linux 7.4 (Raspberry Pi's rpi-7.4.y, 7.4.0-rc2), with the Dolby Vision patches rebased, and a fix for a 7.4 bug that crashes vc4 at boot when the kernel is built with GCC 16: since the devm_kzalloc_flex() conversion, the ASoC runtime starts with its component count at the array size, so no component of a sound card is probed.

Use

Flash the .img.gz, or copy the .tar to /storage/.update/ and reboot. From beta 1–4 or v0.4.0 you can also update from the menu: in LibreELEC / Updates set "Automatic updates" to manual, turn on "Show custom channels", enter raw.githubusercontent.com/dangerouslaser/libreelec-rpi-dv/main as custom channel 1, choose the DVbeta-13.0 channel and install 0.5.0-beta.7. From beta 5 on, the channels are built in: beta 5 and 6 find this build in their DVbeta-13.0 channel.

  • Turn on FreeSync, VRR or Adaptive-Sync for the Pi's input in the display's settings. Many displays ...
Read more

LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with VRR, 0.5.0 beta 6

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 10:56

Superseded by v0.5.0-beta.7: CM v4.0 metadata and L2 trim settings, Dolby Vision for films encoded at the picture's size, Player information in three columns, overclocking, and Kodi 22.0 RC2 with Mesa 26.3.0.

The sixth beta of LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with variable refresh rate (FreeSync), now built from main, which carries Linux 7.4 and VRR from here on. v0.4.1 stays the stable release.

Changes since beta 5

  • The GUI in the Dolby Vision signal. The OSD, menus and dialogs over Dolby Vision video were legible but in wrong colours (green and magenta). Kodi now draws them offscreen and the engine composites them into the Dolby Vision signal, as it does the subtitles, so they show in their own colours with the display still in Dolby Vision. Only the areas the GUI covers are composited (up to four, engine 0.4.0), and while a video plays the GUI is redrawn at most 12 times a second.

  • A faster Dolby Vision engine (0.4.1). The same output, bit for bit, in less GPU time. Per picture on the Pi 5 at stock clocks, against engine 0.4.0:

    Video 0.4.0 0.4.1
    4K profile 7 FEL (1917, Gladiator, Trainspotting) 23.3–29.1 ms 20.9–26.0 ms (about −10%)
    4K profile 7 MEL, 60 fps (Gemini Man) 17.6 ms 12.7 ms (−28%)
    4K profile 5 / 8.1 (Sol Levante) 16.3 ms 12.9 ms (−21%)
    4K profile 8.4 (Sol Levante) 31.5 ms 27.6 ms (−13%)
    4K pillarboxed 4:3 17.2 ms 10.4 ms (−39%)
    4K FEL with the Annex B upscale 33.7–37.1 ms 29.2–32.1 ms (about −13%)

    4K60 MEL now fits its 16.7 ms frame with room to spare. The changes: render areas grown to whole V3D tiles, an interior variant of the second pass without the per-pixel packet and active-area tests, no store of an enhancement layer target nothing reads, a tighter error bound for the exact chroma MMR, a pillarbox's side bars skipped like a letterbox's, and the Annex B upscale's vertical filter moved into the first pass.

Changes in beta 5

  • Updates from the LibreELEC menu. LibreELEC / Updates now offers this repository's builds instead of LibreELEC's, in two channels: DV-13.0 (the releases) and DVbeta-13.0 (these betas). A build checks its own channel for a newer one and, with "Automatic updates" on auto, installs it at the next reboot; on manual it tells you, and you choose a channel and a build there. It no longer asks LibreELEC's update server, so it can't be moved onto an official build without Dolby Vision. Builds are now named by their version (LibreELEC-RPi5.aarch64-13.0-dv-0.5.0-beta.5), which the menu and System info show.
  • Dolby Vision settings in Kodi's settings. Player / Videos has a "Dolby Vision" group (shown with a Dolby Vision display): the enhancement layer and the infoframe, and at the Expert settings level the enhancement layer upscale, chroma MMR and filters. Every video starts with them; the "Dolby Vision" group in the video settings during playback still changes them for that video, and its "Set as default for all media" stores them here. A video with stored video settings (an audio delay, say) used to start with the built-in options instead of your defaults; it now takes these.

Dolby Vision defaults saved with "Set as default for all media" in an earlier build aren't carried over: set them again in Player / Videos.

Changes in beta 4

  • The display's own modes no longer compete with the VRR ones. A display lists its modes next to the VRR modes, often at the same size and rate: on one monitor, 3840x2160 at 59.94 Hz with a 593.4 MHz clock beside the 59.95 Hz VRR mode on the 594 MHz timing. A desktop or a playback rate that matched the display's mode made the switch a full mode change, with the display blanking. While "Variable refresh rate" is on, Kodi now leaves out each such mode; turning it off brings them back. The display's modes below its VRR range (24, 25, 30 Hz on most displays) stay.

Changes in beta 3

  • A "Variable refresh rate" setting in System / Display, shown when the display supports VRR and on by default. Turning it off goes back to the ordinary modes and switches, and takes effect immediately.
  • A desktop resolution a VRR mode shares now uses the VRR mode. A 1080p 60 Hz desktop on a 120 Hz display picked the ordinary 60 Hz mode, so playback from it still changed the mode; it now picks the 60 Hz VRR mode and switches without blanking.

Changes in beta 2

The VRR modes of each size are now derived from its fastest mode within the display's range that the Pi can send (1080p120 and 2160p60 on an LG B4), not from its 60 Hz mode. From a 1080p120 desktop, refresh switches are now seamless (beta 1 changed the mode), and 23.976 fps at 1080p now gets its 47.96 Hz VRR mode. A 60 Hz VRR mode is added where the base is faster.

What's new

Variable refresh rate. With a FreeSync display, refresh rate switches during playback no longer blank the screen. The Pi 5's HDMI output follows the length of the vertical front porch frame by frame, so:

  • the kernel (vc4) reads the display's FreeSync range from its EDID, reports vrr_capable, and adds modes for 23.976–60 Hz within that range that only differ in their front porch from the fastest mode of each size it can send (1080p120, 2160p60 on an LG B4);
  • with VRR_ENABLED, it switches between those modes without a modeset, and sends AMD's FreeSync SPD infoframe;
  • Kodi sets VRR_ENABLED and, with "Adjust display refresh rate" on, picks those modes at the video's frame rate or twice it: 24p plays at 47.96 Hz, 25p at 50 Hz, 30p at 59.95 Hz.

Turning Dolby Vision on or off still changes the mode, so a Dolby Vision film starts with one short blank, straight at its final rate, and keeps Dolby Vision and VRR together. HDR10 at 4K goes out as 12-bit YUV 4:2:2.

Linux 7.4 (Raspberry Pi's rpi-7.4.y, 7.4.0-rc2), with the Dolby Vision patches rebased, and a fix for a 7.4 bug that crashes vc4 at boot when the kernel is built with GCC 16: since the devm_kzalloc_flex() conversion, the ASoC runtime starts with its component count at the array size, so no component of a sound card is probed.

Use

Flash the .img.gz, or copy the .tar to /storage/.update/ and reboot. From beta 1–4 or v0.4.0 you can also update from the menu: in LibreELEC / Updates set "Automatic updates" to manual, turn on "Show custom channels", enter raw.githubusercontent.com/dangerouslaser/libreelec-rpi-dv/main as custom channel 1, choose the DVbeta-13.0 channel and install 0.5.0-beta.6. From beta 5 on, the channels are built in: beta 5 finds this build in its DVbeta-13.0 channel.

  • Turn on FreeSync, VRR or Adaptive-Sync for the Pi's input in the display's settings. Many displays advertise FreeSync while it is off; the Pi's refresh rate changes then make the display resynchronise, and it blanks at every switch.
  • Keep "Adjust display refresh rate" on (Player / Videos). An empty whitelist, or one with the 4K modes, works.
  • To turn VRR off, switch off System / Display / "Variable refresh rate" in Kodi, or add vc4.vrr=0 to cmdline.txt on the boot partition to turn it off in the kernel.

Tested

Beta 6, on a Raspberry Pi 5 with an LG B4:

  • updated from beta 5 with the .tar: it boots Linux 7.4.0-rc2 with engine 0.4.1;
  • in Kodi, 4K profile 7 FEL (Power Rangers, 1917), 4K60 profile 7 MEL (Gemini Man) and 4K profile 8.4 (Sol Levante) play as Dolby Vision with no pictures dropped in output, also with the OSD open on the FEL film;
  • engine 0.4.1 gives output identical to 0.4.0 on the engine's 32 reference checks;
  • the OSD over Dolby Vision in its own colours with the TV in Dolby Vision (checked on the TV with the development build of this change).

Beta 5, on a Raspberry Pi 5 with an LG B4:

  • updated from beta 4 with the .tar: Dolby Vision profile 7 FEL plays as Dolby Vision with VRR at 47.9 Hz;
  • the Player / Videos settings reach playback (the infoframe on the HDMI output, the MMR mode and the upscale in the engine), also for a file with stored video settings, survive a restart, and grey out when Dolby Vision isn't an allowed HDR format;
  • the update check finds the running build in its channel and offers a newer one, and the menu's channels and builds list this repository's releases; a release's .tar downloads from GitHub on the Pi.

Beta 1–4, on a Raspberry Pi 5 with an LG B4 (FreeSync 40–120 Hz on HDMI 2):

  • SDR 24p: 60 → 48 Hz and back at 4K with no blanking, and 120 → 48 Hz and back from a 1080p120 desktop, both with no gap in the Pi's vblanks and the TV following;
  • Dolby Vision profile 7 FEL: Dolby Vision and VRR at 47.96 Hz together; rate changes inside VRR (40–60 Hz) keep Dolby Vision;
  • HDR10: PQ with VRR at 47.96 Hz, 12-bit 4:2:2;
  • "Variable refresh rate" off: the ordinary 1080p24 mode for 24p, the generic SPD and VRR off on the TV; back on: VRR at 120 Hz again;
  • a 1080p 60 Hz desktop: the 60 Hz VRR mode, and 60 → 48 → 60 Hz with no gap;
  • a 4K 59.94 Hz desktop: the 59.95 Hz VRR mode instead of the display's 593.4 MHz one, and 59.95 → 48 → 59.95 Hz with no gap;
  • vc4.vrr=0: the ordinary modes, the generic SPD, and VRR off on the TV.

Limitations

  • The kernel is a 7.4 release candidate.
  • FreeSync only: displays with HDMI 2.1 VRR but no FreeSync block aren't driven with VRR. Only the LG B4 was tested.
  • With the OSD open, 4K FEL played about 16 of 24 pictures a second with engine 0.4.0 (compositing and drawing the GUI take the GPU over its budget). Engine 0.4.1 is faster, but this hasn't been measured again.
  • Field-coded H.264 MVC (3D camcorder recordings) crashes Kodi when it is deinterlaced.

LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with VRR, 0.5.0 beta 5

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 01:50

Superseded by v0.5.0-beta.6: the GUI in the Dolby Vision signal in its own colours, and a faster engine.

The fifth beta of LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with variable refresh rate (FreeSync), built from the kernel-7.4 branch. Dolby Vision, subtitles in the Dolby Vision signal and 3D work as in v0.4.0, which stays the stable release.

Changes since beta 4

  • Updates from the LibreELEC menu. LibreELEC / Updates now offers this repository's builds instead of LibreELEC's, in two channels: DV-13.0 (the releases) and DVbeta-13.0 (these betas). A build checks its own channel for a newer one and, with "Automatic updates" on auto, installs it at the next reboot; on manual it tells you, and you choose a channel and a build there. It no longer asks LibreELEC's update server, so it can't be moved onto an official build without Dolby Vision. Builds are now named by their version (LibreELEC-RPi5.aarch64-13.0-dv-0.5.0-beta.5), which the menu and System info show.
  • Dolby Vision settings in Kodi's settings. Player / Videos has a "Dolby Vision" group (shown with a Dolby Vision display): the enhancement layer and the infoframe, and at the Expert settings level the enhancement layer upscale, chroma MMR and filters. Every video starts with them; the "Dolby Vision" group in the video settings during playback still changes them for that video, and its "Set as default for all media" stores them here. A video with stored video settings (an audio delay, say) used to start with the built-in options instead of your defaults; it now takes these.

Dolby Vision defaults saved with "Set as default for all media" in an earlier build aren't carried over: set them again in Player / Videos.

Changes in beta 4

  • The display's own modes no longer compete with the VRR ones. A display lists its modes next to the VRR modes, often at the same size and rate: on one monitor, 3840x2160 at 59.94 Hz with a 593.4 MHz clock beside the 59.95 Hz VRR mode on the 594 MHz timing. A desktop or a playback rate that matched the display's mode made the switch a full mode change, with the display blanking. While "Variable refresh rate" is on, Kodi now leaves out each such mode; turning it off brings them back. The display's modes below its VRR range (24, 25, 30 Hz on most displays) stay.

Changes in beta 3

  • A "Variable refresh rate" setting in System / Display, shown when the display supports VRR and on by default. Turning it off goes back to the ordinary modes and switches, and takes effect immediately.
  • A desktop resolution a VRR mode shares now uses the VRR mode. A 1080p 60 Hz desktop on a 120 Hz display picked the ordinary 60 Hz mode, so playback from it still changed the mode; it now picks the 60 Hz VRR mode and switches without blanking.

Changes in beta 2

The VRR modes of each size are now derived from its fastest mode within the display's range that the Pi can send (1080p120 and 2160p60 on an LG B4), not from its 60 Hz mode. From a 1080p120 desktop, refresh switches are now seamless (beta 1 changed the mode), and 23.976 fps at 1080p now gets its 47.96 Hz VRR mode. A 60 Hz VRR mode is added where the base is faster.

What's new

Variable refresh rate. With a FreeSync display, refresh rate switches during playback no longer blank the screen. The Pi 5's HDMI output follows the length of the vertical front porch frame by frame, so:

  • the kernel (vc4) reads the display's FreeSync range from its EDID, reports vrr_capable, and adds modes for 23.976–60 Hz within that range that only differ in their front porch from the fastest mode of each size it can send (1080p120, 2160p60 on an LG B4);
  • with VRR_ENABLED, it switches between those modes without a modeset, and sends AMD's FreeSync SPD infoframe;
  • Kodi sets VRR_ENABLED and, with "Adjust display refresh rate" on, picks those modes at the video's frame rate or twice it: 24p plays at 47.96 Hz, 25p at 50 Hz, 30p at 59.95 Hz.

Turning Dolby Vision on or off still changes the mode, so a Dolby Vision film starts with one short blank, straight at its final rate, and keeps Dolby Vision and VRR together. HDR10 at 4K goes out as 12-bit YUV 4:2:2.

Linux 7.4 (Raspberry Pi's rpi-7.4.y, 7.4.0-rc2), with the Dolby Vision patches rebased, and a fix for a 7.4 bug that crashes vc4 at boot when the kernel is built with GCC 16: since the devm_kzalloc_flex() conversion, the ASoC runtime starts with its component count at the array size, so no component of a sound card is probed.

Use

Flash the .img.gz, or copy the .tar to /storage/.update/ and reboot. From beta 1–4 or v0.4.0 you can also update from the menu: in LibreELEC / Updates set "Automatic updates" to manual, turn on "Show custom channels", enter raw.githubusercontent.com/dangerouslaser/libreelec-rpi-dv/main as custom channel 1, choose the DVbeta-13.0 channel and install 0.5.0-beta.5. From this build on the channels are built in.

  • Turn on FreeSync, VRR or Adaptive-Sync for the Pi's input in the display's settings. Many displays advertise FreeSync while it is off; the Pi's refresh rate changes then make the display resynchronise, and it blanks at every switch.
  • Keep "Adjust display refresh rate" on (Player / Videos). An empty whitelist, or one with the 4K modes, works.
  • To turn VRR off, switch off System / Display / "Variable refresh rate" in Kodi, or add vc4.vrr=0 to cmdline.txt on the boot partition to turn it off in the kernel.

Tested

Beta 5, on a Raspberry Pi 5 with an LG B4:

  • updated from beta 4 with the .tar: Dolby Vision profile 7 FEL plays as Dolby Vision with VRR at 47.9 Hz;
  • the Player / Videos settings reach playback (the infoframe on the HDMI output, the MMR mode and the upscale in the engine), also for a file with stored video settings, survive a restart, and grey out when Dolby Vision isn't an allowed HDR format;
  • the update check finds the running build in its channel and offers a newer one, and the menu's channels and builds list this repository's releases; a release's .tar downloads from GitHub on the Pi.

Beta 1–4, on a Raspberry Pi 5 with an LG B4 (FreeSync 40–120 Hz on HDMI 2):

  • SDR 24p: 60 → 48 Hz and back at 4K with no blanking, and 120 → 48 Hz and back from a 1080p120 desktop, both with no gap in the Pi's vblanks and the TV following;
  • Dolby Vision profile 7 FEL: Dolby Vision and VRR at 47.96 Hz together; rate changes inside VRR (40–60 Hz) keep Dolby Vision;
  • HDR10: PQ with VRR at 47.96 Hz, 12-bit 4:2:2;
  • "Variable refresh rate" off: the ordinary 1080p24 mode for 24p, the generic SPD and VRR off on the TV; back on: VRR at 120 Hz again;
  • a 1080p 60 Hz desktop: the 60 Hz VRR mode, and 60 → 48 → 60 Hz with no gap;
  • a 4K 59.94 Hz desktop: the 59.95 Hz VRR mode instead of the display's 593.4 MHz one, and 59.95 → 48 → 59.95 Hz with no gap;
  • vc4.vrr=0: the ordinary modes, the generic SPD, and VRR off on the TV.

Limitations

  • The kernel is a 7.4 release candidate.
  • FreeSync only: displays with HDMI 2.1 VRR but no FreeSync block aren't driven with VRR. Only the LG B4 was tested.
  • v0.4.0's limitations still apply (the GUI over Dolby Vision is in wrong colours, field-coded H.264 MVC crashes Kodi when deinterlaced).

LibreELEC 13 for the Raspberry Pi 5 with Dolby Vision, 0.4.1

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 01:57

LibreELEC 13 (development build) for the Raspberry Pi 5, with standard (TV-led) Dolby Vision output from Kodi and stereoscopic 3D playback. This release adds updates from the LibreELEC menu and Dolby Vision settings in Kodi's settings.

A Vulkan engine on the Pi's GPU reconstructs each Dolby Vision picture from the hardware decoder's frames and the RPU, and sends it with its metadata in the HDMI tunnel frame; the TV does the display mapping. It needs a TV that takes standard Dolby Vision over HDMI.

What's new in 0.4.1

  • Updates from the LibreELEC menu. LibreELEC / Updates now offers this repository's builds instead of LibreELEC's, in two channels: DV-13.0 (the releases, like this one) and DVbeta-13.0 (the pre-releases: Linux 7.4 with variable refresh rate). A build checks its own channel for a newer one and, with "Automatic updates" on auto, installs it at the next reboot; on manual it tells you, and you choose a channel and a build there. It no longer asks LibreELEC's update server, so it can't be moved onto an official build without Dolby Vision. Builds are now named by their version (LibreELEC-RPi5.aarch64-13.0-dv-0.4.1), which the menu and System info show.
  • Dolby Vision settings in Kodi's settings. Player / Videos has a "Dolby Vision" group (shown with a Dolby Vision display): the enhancement layer and the infoframe, and at the Expert settings level the enhancement layer upscale, chroma MMR and filters. Every video starts with them; the "Dolby Vision" group in the video settings during playback still changes them for that video, and its "Set as default for all media" stores them here. A video with stored video settings (an audio delay, say) used to start with the built-in options instead of your defaults; it now takes these.

Dolby Vision defaults saved with "Set as default for all media" in 0.4.0 aren't carried over: set them again in Player / Videos.

The Dolby Vision engine is unchanged (0.3.0), and so are the kernel (6.18.60) and the 3D playback.

Downloads

File What
LibreELEC-RPi5.aarch64-13.0-dv-0.4.1.img.gz The image to flash (SD card or USB drive)
LibreELEC-RPi5.aarch64-13.0-dv-0.4.1.tar The same system as an update: copy it to /storage/.update/ and reboot
pi-dv-engine-0.3.0.tar.xz The engine's source, as built into the image

Each has a .sha256 file.

Updating from 0.4.0 or earlier from the menu: in LibreELEC / Updates set "Automatic updates" to manual, turn on "Show custom channels", enter raw.githubusercontent.com/dangerouslaser/libreelec-rpi-dv/main as custom channel 1, choose the DV-13.0 channel and install 0.4.1. From 0.4.1 on the channels are built in.

Using it

  • Dolby Vision:
    • Display mode: the mode must be the video's size. Turn on "Adjust display refresh rate", with 4K modes for 4K streams.
    • Allowed formats: Dolby Vision must be among the player's "Allowed HDR dynamic metadata formats".
    • Settings: the defaults are in Player / Videos / Dolby Vision; during playback, the video settings' "Dolby Vision" group switches the output and changes the options for that video.
  • 3D:
    • Playback mode: set "Playback mode of stereoscopic 3D video" (Player / Videos) to "Preferred mode".
    • Stereoscopic 3D mode: leave it disabled (System / Display), with its preferred mode "Same as movie".
    • Refresh rate: turn on "Adjust display refresh rate".
    • Desktop: the 3D modes are 1080p, which Kodi only switches to from a 1920x1080 desktop. With that desktop, 4K Dolby Vision streams need the 4K modes in the whitelist.

Testing

On the Pi 5 with an LG B4:

  • updated from 0.5.0 beta 5 with the .tar: boots on 6.18.60; Dolby Vision Profile 7 FEL plays as Dolby Vision; a Blu-ray 3D MVC MKV plays in 3D;
  • the Player / Videos settings reach playback (the infoframe on the HDMI output, the MMR mode and the upscale in the engine), also for a file with stored video settings, survive a restart, and grey out when Dolby Vision isn't an allowed HDR format;
  • the update check finds the running build in its channel and offers a newer one, and the menu's channels and builds list this repository's releases; a release's .tar downloads from GitHub on the Pi.

Limitations

  • The GUI over Dolby Vision (menus, the OSD) is legible but in wrong colours. Subtitles are in their own colours.
  • 3D camcorder recordings (field-coded H.264 MVC) crash Kodi when they are deinterlaced.
  • H.264 MVC is decoded in software.
  • Annex B with subtitles: with the Annex B upscale on 4K FEL, a subtitle on screen takes the GPU over the 24p budget.
  • Not supported: dual-track Profile 7 (the EL in a separate stream).
  • Development build: based on LibreELEC.tv master 65960db, with a 6.18.60 kernel and Mesa 26.2.5.

Source

  • This repository at tag v0.4.1: LibreELEC.tv with Vulkan for the RPi5, the kernel's Dolby Vision HDMI connector property, the engine's package, FFmpeg's H.264 MVC decoder and a fix for the Pi's HEVC decoder, the Kodi patches (Dolby Vision, the 3D series, the Dolby Vision settings) and the update channel. The README lists them.
  • The engine: pi-dv-engine-0.3.0.tar.xz, GPL-2.0-or-later.
  • Everything else: as LibreELEC builds it, under each project's own licence.

Dolby Vision engine 0.5.0 (source)

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 18:09

The source of the Dolby Vision engine, pi-dv-engine 0.5.0 (GPL-2.0-or-later), which the LibreELEC tree's pi-dv-engine package downloads. It is not a LibreELEC build: the images are in the v0.x releases.

New in 0.5.0 (same API 3, libpi_engine.so.3, with two new calls):

  • CM v4.0 metadata and L2 trims (pi_engine_set_dm, pi_engine_dm_status): neutral CM v4.0 blocks (L3, L9, L11, L254) added to a CM v2.9 stream's display-management metadata (off, streams without L2 trims, always, or by the Auto rules against the TV's peak), and the stream's L2 trims left out. Metadata only: the picture is unchanged. The output with each option is identical, byte for byte, to CB1 Master Reference's with the same option.
  • Less work under an overlay. An overlay passed again with the same drawing reuses its conversion, and from its second picture on the picture under its opaque areas is neither reconstructed nor read. The output is unchanged, bit for bit.
  • Mesa 26.3. Its V3D driver adds read-ahead padding to every buffer's memory requirement, which a video decoder's buffers have no room for, so 0.4.2 renders nothing with it. 0.5.0 binds those buffers as they are. Output unchanged on Mesa 26.2.5 and 26.3.0.

Dolby Vision engine 0.4.2 (source)

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 12:17

The source of the Dolby Vision engine, pi-dv-engine 0.4.2 (GPL-2.0-or-later), which the LibreELEC tree's pi-dv-engine package downloads. It is not a LibreELEC build: the images are in the v0.x releases.

New in 0.4.2: an output may be taller than the stream (same API 3, libpi_engine.so.3). A stream encoded at the picture's size, such as a 1.85:1 film at 3840x2076, renders into a 3840x2160 tunnel frame with the picture in its middle, black bars above and below and the active area (L5) placed, so it plays in Dolby Vision instead of falling back to HDR10 (with the LibreELEC tree's Kodi patch 0053). Output for streams of the frame's own size is unchanged, bit for bit.

Dolby Vision engine 0.4.1 (source)

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 10:45

The source of the Dolby Vision engine, pi-dv-engine 0.4.1 (GPL-2.0-or-later), which the LibreELEC tree's pi-dv-engine package downloads. It is not a LibreELEC build: the images are in the v0.x releases.

New in 0.4.1: faster, with bit-identical output and the same API (3, libpi_engine.so.3). Per picture on the Pi 5 at stock clocks, against 0.4.0: 4K dual-layer (FEL) films about 10% faster (1917 29.1 → 26.0 ms), single-layer and MEL 20–28% (Gemini Man 4K60 17.6 → 12.7 ms, now within its 16.7 ms frame), pillarboxed 4:3 pictures about 39%, and the Annex B EL upscale about 13%.

Dolby Vision engine 0.4.0 (source)

Choose a tag to compare

@dangerouslaser dangerouslaser released this 11 Nov 02:58

The source of the Dolby Vision engine, pi-dv-engine 0.4.0 (GPL-2.0-or-later), which the LibreELEC tree's pi-dv-engine package downloads. It is not a LibreELEC build: the images are in the v0.x releases.

New in 0.4.0: an overlay can be composited in up to four areas (API 3, libpi_engine.so.3), so a GUI's top and bottom bars cost their own area rather than the screen between them.

LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with VRR, 0.5.0 beta 4

Choose a tag to compare

@dangerouslaser dangerouslaser released this 10 Nov 20:41

Superseded by v0.5.0-beta.5: updates from the LibreELEC menu, and the Dolby Vision options in Player / Videos.

The fourth beta of LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with variable refresh rate (FreeSync), built from the kernel-7.4 branch. Dolby Vision, subtitles in the Dolby Vision signal and 3D work as in v0.4.0, which stays the stable release.

Changes since beta 3

  • The display's own modes no longer compete with the VRR ones. A display lists its modes next to the VRR modes, often at the same size and rate: on one monitor, 3840x2160 at 59.94 Hz with a 593.4 MHz clock beside the 59.95 Hz VRR mode on the 594 MHz timing. A desktop or a playback rate that matched the display's mode made the switch a full mode change, with the display blanking. While "Variable refresh rate" is on, Kodi now leaves out each such mode; turning it off brings them back. The display's modes below its VRR range (24, 25, 30 Hz on most displays) stay.

Changes in beta 3

  • A "Variable refresh rate" setting in System / Display, shown when the display supports VRR and on by default. Turning it off goes back to the ordinary modes and switches, and takes effect immediately.
  • A desktop resolution a VRR mode shares now uses the VRR mode. A 1080p 60 Hz desktop on a 120 Hz display picked the ordinary 60 Hz mode, so playback from it still changed the mode; it now picks the 60 Hz VRR mode and switches without blanking.

Changes in beta 2

The VRR modes of each size are now derived from its fastest mode within the display's range that the Pi can send (1080p120 and 2160p60 on an LG B4), not from its 60 Hz mode. From a 1080p120 desktop, refresh switches are now seamless (beta 1 changed the mode), and 23.976 fps at 1080p now gets its 47.96 Hz VRR mode. A 60 Hz VRR mode is added where the base is faster.

What's new

Variable refresh rate. With a FreeSync display, refresh rate switches during playback no longer blank the screen. The Pi 5's HDMI output follows the length of the vertical front porch frame by frame, so:

  • the kernel (vc4) reads the display's FreeSync range from its EDID, reports vrr_capable, and adds modes for 23.976–60 Hz within that range that only differ in their front porch from the fastest mode of each size it can send (1080p120, 2160p60 on an LG B4);
  • with VRR_ENABLED, it switches between those modes without a modeset, and sends AMD's FreeSync SPD infoframe;
  • Kodi sets VRR_ENABLED and, with "Adjust display refresh rate" on, picks those modes at the video's frame rate or twice it: 24p plays at 47.96 Hz, 25p at 50 Hz, 30p at 59.95 Hz.

Turning Dolby Vision on or off still changes the mode, so a Dolby Vision film starts with one short blank, straight at its final rate, and keeps Dolby Vision and VRR together. HDR10 at 4K goes out as 12-bit YUV 4:2:2.

Linux 7.4 (Raspberry Pi's rpi-7.4.y, 7.4.0-rc2), with the Dolby Vision patches rebased, and a fix for a 7.4 bug that crashes vc4 at boot when the kernel is built with GCC 16: since the devm_kzalloc_flex() conversion, the ASoC runtime starts with its component count at the array size, so no component of a sound card is probed.

Use

Flash the .img.gz, or copy the .tar to /storage/.update/ and reboot.

  • Turn on FreeSync, VRR or Adaptive-Sync for the Pi's input in the display's settings. Many displays advertise FreeSync while it is off; the Pi's refresh rate changes then make the display resynchronise, and it blanks at every switch.
  • Keep "Adjust display refresh rate" on (Player / Videos). An empty whitelist, or one with the 4K modes, works.
  • To turn VRR off, switch off System / Display / "Variable refresh rate" in Kodi, or add vc4.vrr=0 to cmdline.txt on the boot partition to turn it off in the kernel.

Tested

On a Raspberry Pi 5 with an LG B4 (FreeSync 40–120 Hz on HDMI 2):

  • SDR 24p: 60 → 48 Hz and back at 4K with no blanking, and 120 → 48 Hz and back from a 1080p120 desktop, both with no gap in the Pi's vblanks and the TV following;
  • Dolby Vision profile 7 FEL: Dolby Vision and VRR at 47.96 Hz together; rate changes inside VRR (40–60 Hz) keep Dolby Vision;
  • HDR10: PQ with VRR at 47.96 Hz, 12-bit 4:2:2;
  • "Variable refresh rate" off: the ordinary 1080p24 mode for 24p, the generic SPD and VRR off on the TV; back on: VRR at 120 Hz again;
  • a 1080p 60 Hz desktop: the 60 Hz VRR mode, and 60 → 48 → 60 Hz with no gap;
  • a 4K 59.94 Hz desktop: the 59.95 Hz VRR mode instead of the display's 593.4 MHz one, and 59.95 → 48 → 59.95 Hz with no gap;
  • vc4.vrr=0: the ordinary modes, the generic SPD, and VRR off on the TV.

Limitations

  • The kernel is a 7.4 release candidate.
  • FreeSync only: displays with HDMI 2.1 VRR but no FreeSync block aren't driven with VRR. Only the LG B4 was tested.
  • v0.4.0's limitations still apply (the GUI over Dolby Vision is in wrong colours, field-coded H.264 MVC crashes Kodi when deinterlaced).

LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with VRR, 0.5.0 beta 3

Choose a tag to compare

@dangerouslaser dangerouslaser released this 10 Nov 19:04

Superseded by v0.5.0-beta.4: a display mode of the same size and rate as a VRR mode could still make a switch a full mode change.

The third beta of LibreELEC 13 for the Raspberry Pi 5 on Linux 7.4 with variable refresh rate (FreeSync), built from the kernel-7.4 branch. Dolby Vision, subtitles in the Dolby Vision signal and 3D work as in v0.4.0, which stays the stable release.

Changes since beta 2

  • A "Variable refresh rate" setting in System / Display, shown when the display supports VRR and on by default. Turning it off goes back to the ordinary modes and switches, and takes effect immediately.
  • A desktop resolution a VRR mode shares now uses the VRR mode. A 1080p 60 Hz desktop on a 120 Hz display picked the ordinary 60 Hz mode, so playback from it still changed the mode; it now picks the 60 Hz VRR mode and switches without blanking.

Changes in beta 2

The VRR modes of each size are now derived from its fastest mode within the display's range that the Pi can send (1080p120 and 2160p60 on an LG B4), not from its 60 Hz mode. From a 1080p120 desktop, refresh switches are now seamless (beta 1 changed the mode), and 23.976 fps at 1080p now gets its 47.96 Hz VRR mode. A 60 Hz VRR mode is added where the base is faster.

What's new

Variable refresh rate. With a FreeSync display, refresh rate switches during playback no longer blank the screen. The Pi 5's HDMI output follows the length of the vertical front porch frame by frame, so:

  • the kernel (vc4) reads the display's FreeSync range from its EDID, reports vrr_capable, and adds modes for 23.976–60 Hz within that range that only differ in their front porch from the fastest mode of each size it can send (1080p120, 2160p60 on an LG B4);
  • with VRR_ENABLED, it switches between those modes without a modeset, and sends AMD's FreeSync SPD infoframe;
  • Kodi sets VRR_ENABLED and, with "Adjust display refresh rate" on, picks those modes at the video's frame rate or twice it: 24p plays at 47.96 Hz, 25p at 50 Hz, 30p at 59.95 Hz.

Turning Dolby Vision on or off still changes the mode, so a Dolby Vision film starts with one short blank, straight at its final rate, and keeps Dolby Vision and VRR together. HDR10 at 4K goes out as 12-bit YUV 4:2:2.

Linux 7.4 (Raspberry Pi's rpi-7.4.y, 7.4.0-rc2), with the Dolby Vision patches rebased, and a fix for a 7.4 bug that crashes vc4 at boot when the kernel is built with GCC 16: since the devm_kzalloc_flex() conversion, the ASoC runtime starts with its component count at the array size, so no component of a sound card is probed.

Use

Flash the .img.gz, or copy the .tar to /storage/.update/ and reboot.

  • Turn on FreeSync or VRR for the Pi's input in the TV's settings.
  • Keep "Adjust display refresh rate" on (Player / Videos). An empty whitelist, or one with the 4K modes, works.
  • To turn VRR off, switch off System / Display / "Variable refresh rate" in Kodi, or add vc4.vrr=0 to cmdline.txt on the boot partition to turn it off in the kernel.

Tested

On a Raspberry Pi 5 with an LG B4 (FreeSync 40–120 Hz on HDMI 2):

  • SDR 24p: 60 → 48 Hz and back at 4K with no blanking, and 120 → 48 Hz and back from a 1080p120 desktop, both with no gap in the Pi's vblanks and the TV following;
  • Dolby Vision profile 7 FEL: Dolby Vision and VRR at 47.96 Hz together; rate changes inside VRR (40–60 Hz) keep Dolby Vision;
  • HDR10: PQ with VRR at 47.96 Hz, 12-bit 4:2:2;
  • "Variable refresh rate" off: the ordinary 1080p24 mode for 24p, the generic SPD and VRR off on the TV; back on: VRR at 120 Hz again;
  • a 1080p 60 Hz desktop: the 60 Hz VRR mode, and 60 → 48 → 60 Hz with no gap;
  • vc4.vrr=0: the ordinary modes, the generic SPD, and VRR off on the TV.

Limitations

  • The kernel is a 7.4 release candidate.
  • FreeSync only: displays with HDMI 2.1 VRR but no FreeSync block aren't driven with VRR. Only the LG B4 was tested.
  • v0.4.0's limitations still apply (the GUI over Dolby Vision is in wrong colours, field-coded H.264 MVC crashes Kodi when deinterlaced).