BOS 7.x



  • The roHtmlWidget and roUrlTransfer objects now use the same set of CA certificates, which can be modified using roKeyStore.

  • The ConfigureHdmiInput() method can now be used to configure the supported HDCP version reported by the HDMI® input.

  • The BSDatagramSocket object now supports IPv6 multicast and source-specific multicast.

  • The roKeyStore object now supports extending or replacing the default set of CAs on the player.

Bug Fixes

  • 31985 (XTx43, XDx33): The hotplug purple screen issue has been fixed.

  • 31658: Configuring the player for WiFi via on-device setup no longer causes the player to crash.

  • 30409 (XTx43, XDx33): Portrait video no longer exhibits a glitch when a new image is loaded in a separate zone.

  • 31550 (HDx23, LS423): Certain portrait videos no longer exhibit glitches in HTML.

  • 28590: YouTube live streaming playback has been fixed.

  • 31726: Streaming video playback with the G.711 and G.726 audio codecs now works.

  • 31879: BP900 devices now enumerate correctly when connected to a USB C port (i.e. via a USB A to USB C adapter).

  • 31866: The WiFi LED now flashes correctly when a wireless module is connecting to the network.


New Features

  • BP200/BP900 button panels no longer drop button-press events.


  • The SetViewMode() and SetLoopMode() methods on the roVideoPlayer object now accept string arguments.

Bug Fixes

  • 30732: Mosaic mode video windows can now be placed in front of a standard video window.

  • 20545: Scrolling tickers now respect the Safe text region in Ticker zones.

  • 29476: The Background bitmap for Ticker zones now works with scrolling tickers.

  • 31491: Players now correctly display upscaled 4K video input.

  • 31138: (XTx44, XTx43, XDx34, XDx33) HDCP 1.4 input once again works when the HDMI input cable is hotplugged.

  • 31280: (XDx32, HDx22) The BrightSign splash screen no longer appears in the upper-left quadrant of 4K displays.

  • 31222: (XTx44, XDx34) Performance issues with the slick.js animation library have been fixed.

  • 31542: The GetCurrentConfig() method now returns the correct information for USB modems.


New Features

  • (XTx44, XDx34, XTx43, XDx33) Support for the following video modes: 3840x600x60p, 2560x960x60p, 2376x288x60p, 2560x1080x50p, 1920x1200x50p, 1792x1344x60p, 1440x1080x60p


  • The Chromium MemoryPressureMonitor can now be disabled by setting the mpm entry to false in the html section of the registry. This allows JavaScript applications with memory leaks to run longer before crashing.

  • (XTx43, XDx33) The gfxmemlarge setting for HTML pages is now enabled by default when full-resolution 4K graphics are enabled. The player is now also limited to a single video decoder with full-resolution graphics.

Bug Fixes

  • 30476: The player no longer crashes when discovering and controlling devices via UPnP.

  • 30227: The latency of streaming an HDMI encode is once again 1 to 2 seconds.

  • 31029: A playback issue with some M3U8 audio streams has been fixed.

  • 31295: Dolby Vision playback no longer exhibits intermittent stuttering with the 1920x1080x23.967 video mode.

  • 31335: Single-quote characters are now escaped in JavaScript strings containing JSON data.


New Features

  • Support for PKCS8 private key parsing


  • Encrypted playback APIs now support string keys in addition to hex keys.

  • Streaming media can now can be configured for HTTP proxies using the SetProxy() and roNetworkConfiguration.SetProxy() and methods.

  • TheapplyConfig() JavaScript method now accepts objects that lack a full set of parameters (in which case settings associated with undefined parameters will be reset to default). This allows scripts to pass the object returned by getConfig() to applyConfig() in all cases.

  • The networkconfiguration JavaScript object now accepts clientCertificate Boolean values that are false.

Bug Fixes

  • 31138: (XT1144) Players can now output to HDCP 2.2 displays from an HDMI input source that uses HDCP 1.4.

  • 31248: The AddDNSServer() method no longer fails if ResetInterfaceSettings() has been called on the same instance.

  • 31136: roNetworkConfiguration methods can once again be used to clear current wireless settings.

  • 30910: Firmware updates with safe mode now work when the player storage is encrypted.

  • 31210: (XT244, XT1144) The EncryptStorage() method now works with generated keys.

  • 31231: The GetStorageStatus() method now reports the correct status when external storage is disabled.

  • 30968: The AddSurface() method no longer distorts colors with JPEG images.


New Features

  • Support for PKCS8 private key parsing


  • Encrypted playback APIs now support string keys in addition to hex keys.

Bug Fixes

  • Players no longer crash when reading a directory from a broken filesystem.

Known Issues

  • HDCP 1.4 does not work with HDMI input or output that is hotplugged after the player boots up. Connect HDMI input/output cables before boot to ensure correct HDCP 1.4 functionality.

  • (XT1144) Players cannot output to HDCP 2.2 displays from an HDMI input source that uses HDCP 1.4.


New Features

  • Support for HDCP 2.2: This is a Beta feature and not currently recommended for production environments.

  • New SetSyncManager() method, which allows you to enable Genlock via JavaScript

  • New storageinfo JavaScript object, which provides usage information for storage devices

  • New Pause() and Resume() methods on the BSTicker JavaScript object

  • New Raise() and Lower() methods for BrightScript objects that implement the ifWidget interface (roTextWidget, roImageWidget, etc.). This allows for detailed z-order control of the graphics plane.

  • New SetForwardingPolicy() method, which allows you to use the BrightSign player as a router for other networked devices

  • New x-bs-intrinsic-width and x-bs-intrinsic-height attributes for HTML <video> elements: These ensure the aspect ratio of the source video is maintained when scaled to fit the element.

  • New SetHdmiMetadata() method

  • Support for the 1200x1920x60p resolution

  • (XTx44, XTx43, XDx34, XDx33) Support for the 3840x1080x25/30/50/60p resolutions


  • The speed at which data is unzipped to an exFAT-formatted drive has been improved.

  • Players now work with very large (e.g. 4TB) USB storage devices formatted as exFAT.

  • The ConfigureDhcpServer() method now accepts "nameservers", "ip4_gateway", and "domain" parameters for DNS configuration.

  • The roJRE Java runtime environment object has been updated to Java 8.

  • The roNetworkConfiguration object can now be used to configure network interfaces that are not currently present. To do so, specify the network interface by name rather than numeric index.

  • When the DHCP server is enabled on the player, you can now retrieve configuration information from the following DWS URLs: "http://<brightsign-ip>/dhcp-server.html" or "http://<brightsign-ip>/dhcp-server.txt".

  • js modules that are loaded with require() can now use BrightSign JavaScript objects.

  • The Chromium Web Inspector can now perform memory heap dumps to an SD card or SSD device.

  • The roKeyStore object can now be used to register client certificates for streaming media.

  • The SetLocalStorageDir() and SetLocalStorageQuota() settings once again persist after an roHtmlWidget instance is destroyed.

  • The roHtmlWidget object now generates a "download-request" event when Chromium encounters a MIME type it doesn't understand (e.g. a PDF), rather than attempting to download it. The event contains the download URL and the reported MIME type of the file.

  • The Chromium engine can now create a dummy tab to initialize a PDF renderer.

  • The roHtmlWidget storage methods and the CreateDirectory() global function now throw an exception if you attempt to create directories on storage drives that have not been mounted.

  • The rendering speed has been improved for roCanvasWidget instances containing large numbers of text.

  • Streaming video playback now supports AES-CBC decryption.

Bug Fixes

  • 30269: The HDMI input signal no longer becomes distorted after switching away from a presentation that displays portrait HDMI Input (at 1080x1920x60p/i) and back to it.

  • 30405: Remote Snapshot now works with presentations that display both HDMI input and a second video source.

  • 30437: Synchronization works between slave units running 7.x firmware and a master unit running 6.x firmware. Note that the reverse configuration (a 7.x master controlling 6.x slaves) is not supported.

  • 30708: Video Timecode events no longer trigger twice during a video that has been paused/played.

  • 30774: Support for BT.2020 CL output has been disabled. This fixes a purple-tint issue associated with the 3940x2160 output on certain Sony displays.

  • 30271: PNG files with excessively large metadata sections no longer cause players to crash.

  • 30136: (HO523) IR input via the blue 3.5mm jack now works correctly.

  • 30686: The roVirtualKeyboard functionality has been fixed.

  • 30696: The mechanisms for disabling external storage have been fixed.

  • 30767: Bit errors in a DVB subtitle track no longer cause it to stop working after a certain amount of time.

  • 30931: Issues with the region size or region ID of DVB subtitles no longer cause a crash.

  • 29991: Node.js applications can now write files and create directories on SSDs that are formatted with the ext4 file system.

  • 30942: Fixed roHtmlWidget download-performance issues when using a proxy that accepts HTTP connections but can get either HTTP or HTTPS URLs.

  • 30352: Players no longer crash intermittently when using HTML to play streaming video containing numerous subtitles.

  • 30824: HTML <video> elements now correctly support "file:" URIs containing "%20" encoded spaces.

  • 30656: When using the pre-routed audio mode, the PlayFile() method no longer returns true if there are no audio decoders available to play a track.

  • 30477: The player log no longer generates "No mapping for key 330" messages whenever a touch event is received from certain HID touchscreens.

  • 30812: Crash dumps generated by the player will now report the correct time and date (though this is not guaranteed in all instances).

  • 30825: Taking frequent screen captures no longer causes a crash.

  • 30231: Attempting to output USB audio from an HDMI input source no longer causes the player to crash.

  • 30232: USB audio glitches no longer occur when system memory is heavily taxed.

  • 30161: Players now correctly read character strings from the NephSystem N380 RFID reader/writer.

  • 30666: The roAssetFetcher and roSyncPool objects once again work when assets lack the <size>

  • 30033: The roAssetFetcher object now correctly resumes large file downloads after a power cycle (in-progress downloads are written to storage every 15 minutes).

  • 30137: Enabling the WiFi interface no longer creates the possibility that Ethernet VLANs will be disconnected when the player reboots.

  • 30107: Passing an empty associative array to the ConfigureDHCPServer() method now correctly disables the DHCP server.


New Features

  • Support for AES-CBC-encrypted audio/video files


  • HTML pages now support CSS perspective transforms with intersecting quads.

  • A security patch has been implemented for CVE-2017-1000410.

Bug Fixes

  • 29959: PES video files containing audio no longer fail to play.

  • 29788: Genlock is now frame accurate with drop-frame video modes (e.g. 59.94p).



  • Passing an invalid transform value to the SetTransform() method no longer causes a crash.

Bug Fixes

  • 29811: Some rotated/transposed videos no longer fail to appear during the first play through.

  • 26070:(XT1143) The audio/video of the HDMI input no longer slowly drifts out of sync with some HDMI sources.

  • 28592:(XT1143) Hot plugging an HDMI input source or changing its resolution no longer causes its audio to be dropped.

  • 29792: (LS423) The fix for Hama SD cards is now applied during a Safe Mode firmware update as well.

  • 29734: HTML IFrames with CSS animation now render correctly when the page is rotated.

  • 29783: (XT1143) Switching from compressed audio to PCM audio on the HDMI input no longer causes audio to be dropped.

  • 29773: There are no longer intermittent lockups when attempting to enumerate Bluetooth characteristics.



  • The roAssetFetcher object will now resume downloads that have been interrupted by a player reboot.

Bug Fixes

  • 29425: Presentations that use Enhanced Synchronization and are published via Local File Networking no longer crash.

  • 29397: Setting the audio properties of a presentation to Mixed Audio PCM / Compressed no longer causes HDMI audio silence. This behavior only occurred on some displays.

  • 29528: The player no longer crashes when attempting to display an HTML page containing a PNG image that exceeds maximum image-size limits.

  • 29387: Hotplugging HDMI output while playing HDMI input no longer causes occasional crashes.

  • 29401: The following curl vulnerabilities have been patched: CVE-2017-8816 (NTLM auth buffer overflow) and CVE-2017-8818 (SSL buffer overrun).

  • 29693: (XTx43, XDx33) Players now support 4K H.265 videos that have been encoded using Apple Compressor version 4.4.

  • 29150: The SetPowerSaveMode() BrightScript-JavaScript method now works.

  • 29391: Attempting to create an roMediaStreamer pipeline containing an "undefined" GStreamer component no longer causes the player to crash.

  • 29322: There have been a number of fixes to the stream matching rules for the preferred audio, video, and subtitles methods:

    • Greater-than rules are no longer applied as greater-than-or-equal-to.

    • The "," and ";" characters can now be escaped.

    • Patterns no longer match shorter target search terms (e.g. "codec=A" no longer matches "codec=AAC" and "codec=AC3").



  • The Dropbear SSH client/server has been updated to version 2017.75.

  • The roAssetPool object now offers the MoveFileIntoPool() method

  • Rather than rebooting the player, setting a new video mode now causes the application to restart.

  • Embedded credentials that are supplied in a proxy URL are now honored.

  • HTML mouse/touch events are now disabled by default.

  • (XTx43, XDx33) The time it takes to tune to video-only streams encoded by the player has been reduced.

  • Series 3 players now support all MPCDI levels.

  • Players now support enabling secondary functions on GPIO pins.

  • NodeJS can now be enabled without writing to the player registry.

  • The roHtmlWidget object now contains the port initialization parameter, which allows the BrightScript message port to be set at the point of object creation.

  • The roHtmlWidget object now allows for injecting JavaScript via the javascript_injection initialization parameter and InjectJavaScript()

  • The MapFilesFromAssetPool() method now supports multiple asset pools.

  • The visibility of the BSTicker widget is now updated when the visibility of the parent HTML widget changes (via Hide()/Show() calls).

  • The roHtmlWidget object can now be configured to accept invalid/unknown certificates with an HTTPS URL.

  • The roHtmlWidget object now has SetProxy() and SetProxyBypass() These allow you to set the Proxy auto-config (PAC) for HTML URLs.

  • BrightSign-specific attributes can now be set individually in HTML <video> elements rather than being contained in the brightsign-properties

  • The GetStreamInfo() method now returns additional information about video streams.

  • The GetStreamStatistics() method now returns PCR data.

  • The roBrightPackage object now supports .zip files larger than 2GB.

  • The roHttpServer object now supports HTTPS.

  • The roKeyStore object now supports multiple CA certificates in a PEM file.

  • The ifWidget BrightScript interface now offers SetAlpha() and GetRectanlge()

  • If a video player fails to decode any frames at the beginning of playback, it now sends a MediaEnded

  • Passing a timestamp value of "" or "0" to the SetSyncParams() method now clears synchronization properties.

  • The roAssetPool, roSyncPool, and roAssetCollection objects now support the following SHA2 algorithms: SHA224, SHA256, SHA384, and SHA512.

  • Players now support Safe Mode firmware updates from storage devices that are encrypted using the EncryptStorage() method.

  • Using the AddSwapFile() method with an SSD now enables a larger JavaScript heap by default.

  • The CurrentPosition() method (available on the roAppendFile, roCreateFile, roReadFile, and roReadWriteFile objects) now returns a double value rather than an integer. This allows for correct return values with files that are larger than 2GiB.

  • The new "usb-first" registry setting allows USB-to-serial adapters to appear as port 0.

  • Players can now configure their NTP server setting from a DHCP response.

  • The GetUSBTopology() method now returns JSON by default. This output also contains the friendly ID (fid) by default as well.

Bug Fixes

  • 25788: 3D video playback has been fixed.

  • 29288: Playback of SD video from the HDMI input no longer exhibits corruption at 4096x2160 video modes.

  • 27256: Video that reports its seekable end range as NaN no longer freezes on the last frame of playback in HTML.

  • 29089: Playing a second HTTPS video stream no longer causes the player to crash.

  • 28275: The SFTP implementation on the player has been fixed.

  • 29026: Using advanced audio routing with multicast streaming playback no longer causes a crash.

  • 29140: Problems with 44.1kHz USB audio output have been fixed.

  • 28862 (Device Setup): If the player detects a corrupt card, it will display an appropriate message on screen rather than running Device Setup.

  • 27079 (Device Setup): Setting a static IP address on the Change Ethernet Settings or Change Wireless Settings page will now immediately save the new network settings (i.e. rebooting a player after completing this page will cause it to come up with the new settings).

  • 26526 (Device Setup): Simple File Network and Local File Network configurations are no longer wiped from the player if a blank SD card is inserted after the Device Setup process is completed.

  • 29180: The GetStreamInfo() method (and related operations in HTML/JavaScript) now correctly detects CAE608/CAE708 subtitle tracks. It also provides sufficient information about the tracks to differentiate among them.

  • 27714: When simultaneously displaying and encoding/streaming HDMI input, both outputs now contain audio.

  • 27931: Unresponsive multi-touch HTML event issues have been resolved.

  • 26798:(XTx43, XDx33) Video windows that have a width less than 1920 or height less than 1088 but have a total screen area larger than HD video (e.g. 2400x240) will now be played by the 4K video decoder rather than being treated as unsupported.

  • 26815: Playback of interlaced H.265 video no longer appears squeezed horizontally.

  • 28464: A number of issues with variant HLS streams have been fixed.

  • 28776: Right-to-left languages now scroll correctly across screens in a multiscreen ticker.

  • 27525: Clock zones now display the date in portrait mode.

  • 27957: Emojis are now displayed on the slave screens of a multiscreen ticker.

  • 27436: Players now correctly display the firmware-update splash screen during the firmware-update process. This fix applies to firmware updates from 7.0.24 to other versions.

  • 29027: Players once again pass through TrueHD and DTSHD audio codecs.

  • 27505: The Node.js https module can now successfully download files from HTTPS servers.

  • 28340: The HTML rendering engine can now retrieve pages from servers that use the .local hostname with mDNS.

  • 28858: The language property returned by the HTML rendering engine now conforms to ISO-639.

  • 28737: The CanPlayType() JavaScript method now correctly reports H.265 and VP9 support.

  • 28707: HTML <video> elements are now correctly removed when .remove() is called during a CSS transform.

  • 28951: HTML <video> elements once again mute compressed audio to HDMI and SPDIF by default.

  • 25014: HTML <select> elements no longer flicker in portrait mode.

  • 28198: The BSSyncManager JavaScript object no longer drops events that occur before the onsyncevent is received.

  • 28308: Repeatedly creating and destroying roSyncManager instances will no longer lead to a crash.

  • 28545: The PlayStaticImage() method now works when streaming the display.

  • 29227: Setting a portrait video to non-seamless lopping with the SetLoopMode() method no longer causes the video to freeze after the first iteration.

  • 28733: The roMediaStreamer object now provides an accurate PCR with UDP and RTP streams.

  • 28130: The AddSwapFile() method now works with exFAT storage devices.

  • 27270: The auth_passwrd parameter returned by the GetAssetList() method is now spelled auth_password.

  • 27569: The system log no longer incorrectly reports the audio sampling rate of streaming MP3

Known Issues with Beta Release

  • Players that are simultaneously playing and streaming transport streams will experience playback issues.



New Features

  • New JavaScript API: A substantial BrightScript functionality is now available through a new set of JavaScript objects.

  • Full-resolution graphics: XTx43 models can render graphics at resolutions up to 3840x2160x30p.

  • Encoding upgrade: XTx43 models support encode framerates up to 60p.

  • Quad-HD decode: XTx43 models support simultaneous decode of four HD video streams.

  • Genlock support via roSyncManager

  • Java 8 support (via roJRE)

  • HTML graphics improvements: The Qt compositor has been replaced with a dedicated GL compositor.

  • Advanced audio routing: Support for fine-grained mixing of PCM sources with audio outputs

  • Revamped ticker API

  • HLS streaming improvements: Support for alternate audio and variant playlists in HLS streams.

  • WebGL video support


  • The WPA2 implementation has been patched to account for KRAK vulnerabilities.

  • Series 3 players now support all MPCDI levels.

  • NodeJS can now be enabled without writing to the player registry.

  • The roBrightPackage object now supports .zip files larger than 2GB.

  • The roHttpServer object now supports HTTPS.

  • HTML <video> elements now default to the "scale-to-fill" video mode (i.e. videos scale to fit the aspect ratio of a <video> element). This fixes issues seen when adjusting the aspect ratio of a video window with CSS.

Known Issues with Beta Release

  • Playback of HDMI input often lacks audio on the first attempt after bootup.

  • Players that are simultaneously playing and streaming transport streams will experience playback issues.

  • Attempting to use the PlayStaticImage() method when streaming the presentation display will cause a crash.