Florian Wesch

info-beamer pi 0.9.9 released

Posted Apr 16 2018 by Florian Wesch

info-beamer pi 0.9.9 adds minor improvements and finally allows paused HDMI audio for videos thanks to a firmware fix.

Pausing videos with HDMI audio

The Raspberry Pi firmware had a bug for a long time that was finally fixed in March: The problem was that pausing one video with audio would also pause any other video that uses audio. But only when using HDMI output. Quite odd. There was nothing that could be done by info-beamer to fix this other than begging in the official Raspberry Pi bug tracker.

This firmware bug is finally fixed now and info-beamer pi can now properly pause videos. Make sure you run an up-to-date firmware version newer than 'Mar 21 2018'. You can check your firmware with vcgencmd version:

root@raspberrypi:~# vcgencmd version
Mar 23 2018 16:35:52 
Copyright (c) 2012 Broadcom
version d92349b3d22c277e44d508a2aae6af2b1e5bb224 (clean) (release)

This fix should also be included in the most recent Raspbian kernel package. You can update with

root@raspberrypi:~# apt-get update && apt-get upgrade

followed by a reboot. Additionally an optimization was made to the way pausing is implemented, so you should also update info-beamer pi.

Added util.json_watch

Often you would monitor JSON files for changes and reload them instantly. Previously your code might look like this:

util.file_watch("config.json", function(raw)
   local config = json.decode(raw)
   print(config.value)
end)

This code can now be modified to use the new util.json_watch function:

util.json_watch("config.json", function(config)
    print(config.value)
end)

JSON files with syntax errors will be ignored.

HDMI clock sync disabled for videos

Video playback on HDMI might try to synchronize the output video clock to the video framerate. This might prevent minor jittering during playback for videos with odd framerates. Unfortunately this also resulted in random black screens for some displays.

HDMI clock sync is now disabled by default. If you want to reenable it for some reason, use

INFOBEAMER_HDMI_CLOCK_SYNC=1

Added video:speed(..)

You can now speed up or slow down videos using video:speed. This function should be used with caution as the Pi might be too slow to decode videos at a higher speed. Additionally audio output is only available while running videos close to their original speed.

Removed maximum font size limit

Previously the maximum font size for font:write was 400. This was mostly due to how font rendering is implemented: For performance reasons, info-beamer pi doesn't render each glyph (a character) into its own texture. Instead a font atlas is used. All glyphs of a single font are rendered into one texture. This greatly reduces the number of draw calls required when rendering text and vastly increases font rendering performance. This is how a font atlas looks like once a you've rendered a bit of text:

You can learn more about this in an older blog post. The total space in a texture is limited to 2048x2048 pixels. Since all glyphs share this space, using huge font sizes would quickly use up all available space. In that case info-beamer had to flush the texture and create a new one. This slows down font rendering quite a bit. The previous limit of 400 as maximum font size was there to prevent this from happening too often.

Starting with this version you can render fonts in any size. If the font size is larger than 400, info-beamer would internally render the glyphs with size 400 and then upscale the result to match the requested size. The output might be slighly blurred as a result but you can now render any size.

There is a new environment variable INFOBEAMER_MAX_GLYPH_SIZE that sets the maximum size rendered into the font atlas. The default value is 400. Bigger values will allow info-beamer to render larger glyphs. The downside is that the available space is used up more quickly.

You can also set the value to a negative number. In that case, info-beamer will use the absolute value given but also automatically reduce the maximum glyph size if the available atlas texture space runs out. This prevents programs from slowing down as many large glyphs then can't constantly trash the atlas texture.

Other changes

  • Raised number of audio buffers. This fixes rare playback issues for some video files.
  • Previously it was possible to resource.open_file directories. This made no sense as the resulting openfile object could not be consumed in any way. This version now throws an error if you try to open_file a directory.

Get the new version

info-beamer pi 0.9.9 is now ready for download. Just grab the new version here:

Feedback is always welcome. Have fun!


Read more...


info-beamer.com offers the most advanced digital signage platform for the Raspberry Pi. Fully hosted, programmable and easy to use. Learn more...


Get started for free!

Trying out the best digital signage solution for the Raspberry Pi is totally free: Use one device and 1GB of storage completely free of charge. No credit card required.


Follow @infobeamer on twitter to get notified of new blog posts and other related info-beamer news. It's very low traffic so just give it a try.

You can also subscribe to the RSS Feed RSS feed.


Share this post:

Share using Twitter


Questions or comments?
Get in contact!