BOS 6.x
6.2.147.9
Bug Fixes
29154: The LS423 no longer reports supporting the 1V8 voltage level for microSD cards. This resolves incompatibility issues with Hama microSD cards.
6.2.147.2
Improvements
The WPA2 implementation has been patched to account for KRACK vulnerabilities.
6.2.147
New Features
Support for color emojis in HTML
Support for IGMPv3 Source Specific Multicast streaming
802.1Q (VLAN) support
(XTx43) PoE Type 1 support
Support for ELO devices with the 2515-07 touch controller
Full support for the 1920x540x60p video mode
Support for WebSQL and the Filesystem API
New roNetworkConfiguration.ConfigureDHCPServer() method, which allows you to set up a DHCP server on the Ethernet port
New roDeviceCustomization.EncryptStorage() method, which allows you to encrypt the contents of storage devices connected to a player.
Improvements
Support has been reinstated for the following URL streaming parameters: latency, vcdbsize, acdbsize, timeout, and jitter.
(XTx43, XDx33) Players now automatically output BT.2020 when a 4K monitor reports supporting it over EDID.
Interactive Menu states now support transparency in icons/buttons.
You can now format storage devices as exFAT in the Diagnostics tab of the Diagnostic Web Server (DWS).
Clicking on the usage meter of a storage device in the DWS now also yields information about the file system in use.
New "usb_first" registry setting allows you to set the USB port as serial port 0. This is useful when using a USB-to-serial adapter for RS232 functionality on a Series 3 model.
The roVideoPlayer.PlayFile() BrightScript method and brightsign-properties HTML attribute now support jitter values.
When parsing media streams (e.g. with SetPreferredAudio()), you can now select the stream by program using the prog parameter.
HTML <audio> tags now support the JavaScript SetSyncParams method and the preferredaudio attribute.
(XTx43, XDx33) It's once again possible to have two rotated HTML videos with an area totaling more than 1080p. This will generate a warning in the log and may cause video artifacts.
The roAudioPlayer object now supports the SetPreferredAudio() method.
New SetMaximumReceiveBytesPerSecond() method allows you to rate limit file downloads. This method is available on the roUrlTransfer, roAssetFetcher, and roSyncPool objects
New SetMaximumSendBytesPerSecond() method allows you to rate limit file uploads. This method is available on the roUrlTransfer object.
Bug Fixes
Enhanced Audio zones work again.
(XDx43, XDx33) Players now correctly output 10-bit video (rather than downgrading it to 8 bit).
HLS streams are now less likely to stutter at startup.
Ticker zone text is no longer clipped when using certain fonts.
(LS423) Video rotation is now supported up to 1920x1080x30p.
(XTx43, XDx33) 1080i HDMI® input that is upscaled to 4K now displays correctly.
3G modem support has been fixed.
Secure Boot (Safe Mode) now works with firmware update files on exFAT-formatted storage devices.
Clicking on the usage meter of a USB storage drive in the Diagnostic Web Server (DWS) no longer returns a 404 page.
The DWS storage tab now correctly reports the characteristics of a storage device after it has been formatted using the DWS.
WiFi packet capture on the DWS now works.
Playback of HDMI Input from cable/satellite boxes no longer exhibits intermittent audio dropout issues.
DVB Subtitles are now displayed with streaming video playback.
Streaming from the same multicast IP address with multiple players no longer causes playback to fail.
Enhanced synchronization now works with audio-only MP4 files.
Passing a string value (rather than an integer) to the StreamFadeIn parameter of the brightsign-properties HTML attribute no longer causes the player to crash (though this practice is still not recommended).
A player will no longer crash/hang if it makes an AJAX request containing null or incorrect credentials to a URL that requires authentication.
Seamless looping no longer fails with HTTP streams.
Non-HTTP streams once again fade in by default.
(XTx43) An encode/stream of the HDMI input no longer becomes corrupted over time.
(XTx43, XDx33) Re-encoding a stream and streaming it out no longer fails after a period of time.
Players no longer fail to display HTML video that doesn't have explicit dimensions.
Attempting to play back non-HWZ video in Mosaic Mode no longer causes a crash.
The security_params initialization parameter for roHtmlWidget has been fixed.
Calling SetURL() more than once on an roHtmlWidget instance no longer causes the load-finished event to be returned twice.
The roVirtualMemory.AddSwapFile() method no longer fills up all memory on the drive if you attempt to create a swap file larger than 4GiB.
When parsing media streams (e.g. with SetPreferredAudio()), the firmware now selects the PCR and PMTs correctly.
Players will no longer crash when closing a video window containing video with CEA subtitles.
roBtClientManager can now correctly writes BLE characteristic strings that are greater than 184 characters long.
The Eddystone-UID beacon format now supports the tx_power field.
Switching from standard WiFi client mode to access-point mode and back no longer causes players to become unresponsive to ARP requests.
The roNetworkConfiguration.GetCurrentConfig() method no longer causes memory leaks.
(XTx43) Players now correctly echo the power allocation received in LLDP packets from power sourcing equipment (PSE).
(XTx43) Players now correctly report themselves over LLDP as a class 4 powered device (PD).
Players at boot now wait longer for the DHCP server before using the link-local address.
6.2.94
New Features
Support for the exFAT file system
Support for the EIZO DuraVision FDF2121WT touchscreen
Node.js support
Support for the PEAPv0/MSCHAPv2 wireless protocol
Improvements
Like earlier models, Series 3 models now light the busy (Bsy) LED during successful boot initialization.
Buttons in the Control tab of the Diagnostic Web Server (DWS) now have descriptions.
The properties of an roHtmlWidget object can now be configured at initialization with an roAssociativeArray.
HTML pages now support HLS streaming playback.
New BSVideoMode.SetPowerSave() method allows you to send compatible monitors into standby mode via JavaScript.
The SetWebDatabaseQuota() method can now accept values greater than 0xfffffff. It can also accept either a string or an integer.
Setting the src of a <video> element to an empty string now releases the video decoder from that element.
Output from console.log is now passed to the console in Web Inspector.
The roNetworkConfiguration object offers the following new methods: SetDNSServers(), ResetInterfaceSettings(), and ResetHostSettings().
New SetMtu() method allows you to set the maximum transmission unit (MTU) for the network interface. Note that the roNetworkConfiguration.GetCurrentConfig() method currently does not return the MTU setting.
The roTCPStream object now supports connecting to IPv6 addresses.
It's now possible to view kernel output via Telnet.
Bug Fixes
(XTx43, XDx33) HTML 4K video playback no longer fails when it is preceded by dual HD video decode.
A scrolling ticker will no longer repeat the last item from a Live Data feed.
Playback no longer drops the last few frames from the end of an RTSP stream.
Calling ForceGPURasterization(false) on an roHtmlWidget instance now correctly disables GPU rasterization.
Adding too many strings to a BSTicker instance (64 or more, depending on the length of the strings) now results in a 0 (false) return, rather than a crash.
Attempting to access the JavaScript date/time using a worker thread no longer causes the player to crash.
Using the autoplay attribute with HTML <video> elements no longer causes resizing issues with the HTML widget rectangle.
Creating and destroying large numbers of HTML <video> elements no longer causes black frames to be displayed before the videos start.
The roBtManager object now accepts the tx_power value for Eddystone-URL beacons.
The roMediaStreamer object now generates an end-of-stream event when a local file finishes streaming.
The GetCurrentConfig() method now continually updates the wifi_signal parameter after the initial measurement.
The timeout for IPv4 link-local addresses has been changed back to 30 seconds (the same as on firmware 6.0.x).
The roSnmpAgent object now correctly sets custom OIDs.
6.2.63
New Features
(XTx43, XDx33) Support for the following video modes: 2048x1152x60p, 2560x1080x60p, 2560x1440x60p/30p, 2560x1600x60p, and 3440x1440x60p/50p/30p
Support for streamed .wav audio files
Improvements
(4Kx42) Boot up time has been reduced.
(4Kx42) Changes to the background color of a screen are now reflected in streams of the display.
HTML <video> elements now support blob URL sources. This allows playback of files that are stored locally using FileAPI or IndexDB.
(HDx23, LS423) Models with a single video decoder are now better able to handle swapping among active HTML <video> elements.
There is no longer a delay when playing a stream that contains DVB teletext.
(XTx43, XDx33) The background color of a presentation is now reflected in an encode/stream of the display.
(XTx43, XDx33) The H.264 video encoder has been improved to High profile with B-frames.
You can now disable support for external storage devices (i.e. microSD and USB) by adding internal_only : true to the storage section of the registry.
The roDeviceInfo.HasFeature() method now supports the "HEVC decode" parameter.
Switching between MPEG-2 video streams is now much more responsive.
The performance of the scrolling ticker has been improved. The improvements will be more noticeable on XDx32 and HDx22 models.
Players no longer crash when attempting to play a stream with an unsupported protocol.
(XTx43/XDx33) The performance of rotated/transposed HTML video has been improved.
(HDx23, LS423) The render time for large numbers of graphics zones has been reduced.
The "Please Insert Card" splash-screen instructions have been clarified.
A player will now attempt to set its clock immediately upon connecting to a network.
(XTx43, 4Kx42, XDx32) The Diagnostic Web Server now reports Type 2 PoE that has been negotiated over LLDP.
Bug Fixes
Players no longer crash intermittently when playing .ogg video streams.
(XTx43) The 1920x1200 video mode has been fixed.
(4Kx42) Graphics elements now exhibit the correct framerate when encoding the display to a file.
(HDx23, LS423) Players no longer encounter OOM errors when there are multiple HTML <video> elements in the DOM.
(HDx23, LS423) Interlaced HTML video now displays at the correct size when HWZ mode is disabled. Note that playing interlaced video with HWZ mode disabled is not a recommended use case.
(XTx43, XDx33) Streaming the display now works with 4K video modes.
(XTx43, XDx33) The initial state of the graphics layer is now correctly represented in streams of the display.
Static Domain Name configurations are now applied to WiFi/3G connections.
(HDx23, LS423) It's now possible to perform a firmware update from Rescue Mode via USB.
(XT1143) Live Video (HDMI input) states now work with portrait-mode presentations.
(XTx43, XDx33) 4096x2160 video modes now display correctly.
(XTx43, XDx33) 10-bit 4K video modes at 75p now display correctly.
(HDx23, LS423) The 1280x720x24p and 1280x720x23.976p video modes now work.
(XT1143) 10-bit 4K video modes from the HDMI input now display correctly.
(XT1143) Video from HDMI input now respects volume settings.
(XT1143) HDMI input sources will now correctly downgrade to HDCP 1.x when playing HDCP 2.x video.
(XTx43, XDx33) Players now recognize the Iguanaworks IR controller on startup.
(HDx23, LS423) Inserting and removing a microSD card quickly no longer causes the player to crash.
(XDx32) It's now possible to perform a firmware update from Rescue Mode via USB.
(XDx32) Switching between 2D and 3D modes has been fixed.
(XT1142) Live Video (HDMI In) states now work with portrait-mode presentations.
(4K1142, XD1132) Video from HDMI input no longer stutters when the input is initialized.
(XDx32) Seagate SRD00F1 storage drives work with XDx32 players again.
6.2.45
Improvements
The interface for uploading/deleting files on the Diagnostic Web Server has been improved.
The SetPreferredVideo() and SetPreferredAudio() methods on the roVideoPlayer object now support streaming video.
The roHtmlWidget object now supports the following audio-configuration methods:
SetPcmAudioOutputs(a As Object) As Boolean
SetMultichannelAudioOutputs(a As Object) As Boolean
SetCompressedAudioOutputs(a As Object) As Boolean
HTML pages now support video playback from the Logitech ZC3XX USB camera.
A player will now automatically substitute its physical address into the message payload of the following CEC messages: ActiveSource, InactiveSource, SetStreamPath, SystemAudioModeRequest, RequestCurrentLatency, InactiveSource, SystemAudioModeRequest.
The roCecInterface object now supports the GetPhysicalAddress()
A player will now send a CEC user message even if it hasn't yet negotiated a logical address.
Bug Fixes
Overloading a multi-touch screen (for example, by having four hands press it at once) no longer causes touch input to lock up for several minutes.
Displaying multiple scrolling tickers no longer causes them to flicker.
Rather than causing the player to crash, attempting to display more than 10 scrolling tickers (or nine if there is a mouse cursor) now simply doesn't work.
(XTx43) The player will no longer crash when attempting to display more than 12 Mosaic Mode video zones.
The OpenGL glTexImage2D() function now works when you pass it an unsized depth component.
Continuously loading HTML pages that contain non-HWZ video no longer causes an eventual crash.
(HDx23) An HTML page with several non-HWZ videos listed in its DOM will no longer run out of memory after a few minutes.
The GetOpacity() and SetOpacity() methods on the roVideoPlayer object have been fixed.
6.2.39
Known Issues / Limitations
YouTube live streams do not work currently (however, non-live streams are supported).
The latency parameter no longer affects latency when appended to a streaming URL (though playback will still work). To configure streaming latency, use the new SetProperties() method in BrightScript or "brightsign-properties" attribute in the HTML <video> tag.
Overloading a multi-touch screen (for example, by having four hands press it at once) causes touch input to lock up for several minutes.
The OpenGL glTexImage2D() function does not work if you pass it an unsized depth component.
New Features
Support for the XTx43, XDx33, HDx23, and LS423 models
On-screen device setup
Support for HDCP 2.2 (on HDMI output only)
New Factory Reset option in the Control tab of the DWS
New SetProperties() and GetProperties() methods for the roVideoPlayer object, as well as a new "brightsign-properties" attribute for the HTML <video> These allow you to specify various video attributes (streaming latency, z-order, rotation, etc.) using a single string or associative array.
New SetUserAgentSuffix() and GetUserAgent() methods for the roHtmlWidget object
Improvements
The framerate of HTML 2D canvas animations has been improved.
The new low_latency parameter for RTSP streams allows you to achieve much lower latency than normal, but at reduced maximum bitrates: "rtsp://example/media.amp?low_latency".
The file and directory ordering in the Storage tab of the DWS has been improved. For example, files are now listed in alphanumeric order, making it easier to locate the newest device screenshots.
(XTx43) The DWS now reports whether the player is using Type 1 (12.5W) or Type 2 (25W) PoE.
If the file-system check is taking a long time at startup, the splash screen will display "Checking FileSystems…".
New Enable2DCanvasAcceleration() method allows you to improve 2D canvas animation, but there is a risk of GPU OOM errors if there are too many elements on the screen. This feature can be enabled in HTML by calling canvasElement.getContext("2d", {accelerated2d:true}).
GPU rasterization is now enabled by default: You don't need to call ForceGPURasterization(true) to enable this feature any longer.
HTML <video> video elements now support EncryptionKey and EncryptionAlgorithm attributes for decoding encrypted files and streams.
A JavaScript "error" event is now triggered for an HLS or UDP stream when the URL is incorrect or data cannot be retrieved from the server.
The BSCECReceiverEvent JavaScript object now supports the getBytes() method, which allows you to retrieve CEC data as an ArrayBuffer.
New GetStorageStatus() method allows you to determine the current status of a storage device, even if it is not mounted/formatted yet.
The roStreamQueue object now supports the SetPreferredVideo() and SetPreferredAudio()
(XTx43/XDx33) Players will now output HDR video if you hot plug an HDR-compatible display while playing HDR content.
Holding the SVC button while the player boots up will now always prevent the autorun from executing.
Pressing the Reset button now results in a reboot even if the GPIO control port has not been opened via roControlPort.
Bug Fixes
(XTx43, XDx33) Video zones and Background Image zones can once again be displayed simultaneously.
If a video stream is paused and then restarted, attempting to pause it a second time now works.
Tickers now correctly render all characters in long UTF-8 strings.
Screenshots now correctly represent display output when it contains 1080i video playback.
(XTx43/XDx33) Bitrate spikes in 4K playback are now handled more smoothly.
Tapping a multi-touch screen several times in a short span of time no longer causes the player to crash.
The SetLocalStorageQuota() method has been fixed.
HDMI input now works on HTML pages when HWZ mode is disabled.
The player no longer reboots if you use HTML to play a streaming URL that contains commas.
Attempting to display an HTML page that uses the Web Audio API, which BrightSign players do not currently support, no longer causes the player to crash.
Video playback will no longer stop if load() is called on an HTML video tag at the same time playback of the previous video stops.
HTML <select> elements now work correctly with up/down keyboard presses.
The Enter keypress event for HTML forms has been fixed.
The player will no longer crash if you destroy an roHtmlWidget while interacting with an HTML pop-up window.
The player will no longer crash if you assign, then remove, mosaic mode from a video decoder and attempt to play video.
The player will no longer crash if you attempt to quit a non-TS stream containing multiple audio channels.
Using SetPlaybackSpeed(0) to pause video playback for more than 150 seconds no longer generates an erroneous media end event.
Players will no longer crash when attempting to play HLS streams consisting of raw audio segments only.
Passing a 0,0 rectangle to SetSafeTextRegion() no longer causes the player to crash.
The ProtectAssets() method no longer blocks for a long period of time when there are multiple asset-pool threads operating simultaneously.
Reusing an SQL statement with roSqlite no longer causes the player to crash.
6.1.76
Limitations
(4Kx42) USB3 Super Speed (XHCI) support has been disabled.
(4Kx42, XDx32) DTCP encryption/decryption support has been disabled.
New Features
Support for storage devices with sizes up to 1TB
Multi-touch support for the NEC OVL-V463 touch screen
New roBtManager and BSBtManager objects, which allow players to transmit using USB BLE beacons
WebRTC support for HTML widgets
Improvements
(4Kx42) The Diagnostic Web Server (DWS) now reports when a connected 4K display supports the following HDR protocols: BT2020 RGB, BT2020 YCbCr, SDR EOTF, ST2084 EOTF.
The Log page on the Diagnostic Web Server (DWS) now contains a link below the log output for saving crash dumps.
The Diagnostic Web Server now displays the WiFi signal if the player is connected to a wireless network.
The roRtspStream object is no longer required to play a video stream; streaming URLs can now be played directly using the PlayFile() method, as shown in the following example:
v.PlayFile({url:"http://172.30.1.37/file.ts"})The roVideoPlayer object now generates event 30 (MediaError_NotStarted) when a video fails to start. For backwards compatibility, event 16 (MediaError) is generated as well.
New allow_seamless parameter for SetLoopMode() makes it possible to configure video playback to loop non-seamlessly in all cases, as shown in the following example:
v.SetLoopMode({enable:true,allow_seamless:false})(4Kx42) The GetEdidIdentity() method now returns the following values related to 4K HDR support: bt2020_rgb_support, bt2020_ycc_support, hdr_st2084_support, sdr_eotf_support, hdr_eotf_support.
(4Kx42) New OverrideHDMIDynamicMastering() method allows you to override the HDR mode set by the video content.
The AsyncMethod() method now accepts the output_object parameter, which enables processing of a downloaded HTTP body before passing it to an object.
New roKeyStore object allows you to add client certificates to HTML widgets.
(4Kx42) The EnableSecurity() method now accepts an associative array with websecurity and camera_enabled keys. This allows a webpage access to a USB camera connected to the player.
Players now ignore the "viewport" parameter in the <meta> tag of an HTML page. This behavior is equivalent to desktop browsers.
The SetHWZDefault() method now accepts "on" and "off" values when there are other parameters in the string. In this case, "on" is equivalent to "z-index:1" and "off" is equivalent to
"z-index:0".The GetStreamInfo() method now returns the framerate of the current video.
(XDx30) The maximum instantaneous bitrate for Media Server RTSP streams has been increased.
PTP packets are now marked as DSCP EF (46).
Bug Fixes
HDMI-input playback via HTML has been fixed.
Playback of portrait-mode HD video (1080x1920) has been fixed.
(4Kx42) MJPEG video windows now display correctly with 4K video modes.
(4Kx42) Players now correctly output the max luminosity of HDR 4K videos.
(4Kx42) HTML pages that download numerous high-resolution images no longer cause the player to crash.
HTML pages are now responsive to mouse inputs at the edges of the page.
Playing an HTML video that has 44.1kHz audio no longer causes the screen to go blank momentarily. This issue would occur the first time after presentation start or after playing a video with 48kHz audio.
RTSP streaming video now plays correctly when preceded by an HTTP streaming video.
Time-server configuration no longer fails if the specified URL for the NTP server contains a trailing slash (e.g. "ntp://time.brightsignnetwork.com/").
When downgrading firmware versions on a player, the progress bar is once again displayed on screen.
The Logitech Wireless Presenter R400 works with BrightSign players again.
DVB subtitles now display correctly.
Multichannel AAC is supported again.
HDMI-input audio passthrough no longer fails on some Blu-Ray players when switching from a disc with ATMOS audio to a disc with DTS audio.
HDMI-input passthrough of Dolby Digital Plus audio no longer exhibits breakups with some Sony and Marantz Blu-ray players.
HWZ-enabled <video> elements now support scale() and translate() CSS animations.
Clearing the src of an HTML <video> element now stops playback of HDMI input.
A long HTML video in a playlist will no longer play twice periodically.
JavaScript now correctly generates an ended() event when a network dropout causes an HWZ HTML <video> element to stop streaming.
Widgets generated using AngularJS now respect the SetTransform() orientation of the parent HTML widget.
If a video zone displaying HDMI input causes Mosaic Mode resources to be over-allocated, the player will return the appropriate response in JavaScript/BrightScript (rather than crashing).
A Mosaic Mode video window will now display correctly when it has an odd width and/or height and is located at the edge of the screen.
Players no longer crash when taking a screenshot of a video that is scaled down by a factor greater than 16.
The GetStreamInfo() method now correctly reports the VideoColorDepth of video files that have a 10-bit color depth.
The Diagnostic Web Server now appropriately sets the TTL when querying remote PTP servers.
6.1.37
Known Issues
Seamless looping doesn't work with MOV/MP4 HTTP streams.
BrightWall synchronization drifts over time when playing multicast video.
New Mosaic Mode API lacks Z-ordering control.
YouTube playback is broken when video is preceded by an advertisement.
Video positioning for portrait-mode HTML video does not work with HWZ disabled. When HWZ is enabled, positioning will be broken for the first play through only.
When downgrading from this firmware version, the progress bar will fail to display on screen.
New Features
(4Kx42) Support for HDR video (CEA HDR10)
Support for HTML Media Source Extensions (e.g. YouTube live streams)
Left-to-right scrolling support for Ticker zones (the direction is determined automatically by the language of the text added to the ticker)
Support for the Acer UT220HQL multi-touch monitor
Support for the Unitec USB touch foil
Fade-in/fade-out support for roVideoPlayer and roAudioPlayer objects
roStreamQueue object, which allows you to play a list of video files as if they are seamlessly looping
image-rendering:optimizeSpeedBs CSS property, which improves performance for pages that scale a large number of images at runtime
fade:always parameter for the "hwz" attribute. This specifies that videos within an HTML <video> element should fade in when they begin.
SetMaxBitrate() method
roNetworkDiscovery object, which allows for zeroconf discovery among BrightSign players on a local network
AddGetFromFolder() method, which provides an easy way to serve up an index of files to clients
Support for client HTTPS certificates via theSetClientCertificate() method
SetCookie(), SetCookieFile(), and GetCookies() methods for the roUrlTransfer object
Bug Fixes
TrueType fonts with negative vertical ink positions no longer appear clipped. If you’re creating text fields using BrightAuthor, you will need to set the Font Size to Fixed point size, rather than Automatic, for this fix to work.
The HTML Data and HTML Storage segmentation options in Edit > Preferences > Storage have been fixed.
HTML playlists that include both local and multicast video no longer fail to play local videos after the first cycle.
(XDx30) Certain HTML presentations no longer encounter OOM errors and crash.
The modified CSS of an HTML presentation now correctly takes effect once that presentation is republished. Previously, the CSS would only change after rebooting the player.
MP4 videos with fading now play correctly on HTML pages.
A player will now correctly auto-play an html file located in the root folder of the storage. This only occurs if the root folder does not contain an autorun.brs file.
Closed captions no longer have scaling issues.
(4Kx42) Switching from 8-bit video to 10-bit video within the same video window no longer causes the window to go black.
Audio playback no longer fails with some .MOV videos that are generated on cameras.
(4K1142, XD1132, XD1230) Video playback no longer becomes jerky after switching from HDMI input to a video file and back again.
(4K1142) Hot-plugging HDMI output no longer prevents HDMI input from being displayed.
Screenshots now work with portrait-mode video that is set to scale-to-fit.
(4Kx42, XDx32) Players now successfully encode 44.1 KHz audio.
(4Kx42, XDx32) LLDP PoE power negotiation has been fixed.
(XDx32, XDx30) The WiFi/Ethernet indicator LED now remains on after the player connects to a network.
Running Network Diagnostics from the Diagnostic Web Server no longer causes the player to crash.
The Remove Password option on the Diagnostic Web Server can now be used to remove the default password.
Portrait-mode HTML video now displays correctly when offset and stretched.
Calling Hide()/Show() on an HTML video now correctly hides/shows the closed captions as well.
Rotated multi-screen HTML video playback works again.
A <div> with an opacity:0 attribute no longer creates a ghost image if it is initially drawn off screen.
The HTML "viewport" tag no longer causes incorrect page layout.
The SetAppCacheSize(), SetLocalStorageQuota(), and SetWebDatabaseQuota() methods on the roHtmlWidget object have been fixed.
HTML pages no longer fail to load image files containing parentheses.
ThePreloadFile() method once again sets all videos to wait at the first frame for playback.
Enhanced Synchronization (BrightWall) now uses the first PTS value in a video file, rather than the PCR value. This fixes synchronization issues that occurred with some video files.
A player with its video mode set to "auto" will no longer reboot if a display is hot-plugged via HDMI but does not offer EDID information.
(4K242, XD232) Calling HasFeature(“GPIO”) now correctly returns True.
(HDx22) The SetAudioDelay() method now returns a value quickly.
Passing an Integer as a Boolean to the roHtmlWidget.EnableSecurity() method now works again.
Improvements
(4Kx42, XDx32) The framerate of animations when displaying a single, full-screen page has been improved.
HTML video now supports seeking.
Search engines are no longer allowed to index the contents of an unsecured Diagnostic Web Server instance.
The Video tab of the Diagnostic Web Server now displays whether HDR is enabled or disabled.
The Storage tab of the Diagnostic Web Server now provides information about the SD card, including the vendor, speed class, and serial number.
When more than one storage device is attached to a player, the Diagnostic Web Server now provides access to all of them.
You can now download a recently generated crash dump from the Diagnostic Web Server.
An improved Mosaic Mode API has been implemented via the SetDecoderMode() BrightScript method and BSVideoMode.SetDecoderMode() JavaScript method. Note that this functionality is still in development and may exhibit some instability.
The GetHdmiOutputStatus() method now returns an "EOTF" entry, which specifies whether the video output is HDR or SDR.
(4K1142, XD1132) The ConfigureHdmiInput() method can now enable pass through of the following audio codecs: TruHD, MLP, DTS, DTSHD.
It is now possible to play 10-bit 4K (H.265) video streams from the network.
New GetEvents() method allows you to retrieve timecode events added to an roVideoPlayer or roAudioPlayer
The roHtmlWidget object now supports 270-degree portrait rotation via the SetTransform() method.
(4Kx42, XDx32) The cache for decoded images has been increased from 16MB to 32MB.
New SetMouseRotation()method allows you to configure mouse inputs for different screen-rotation configurations.
The roCanvasWidget object now supports image rotation.
The BSMessagePort JavaScript object now supports nested dictionaries.
New IsPresent() method allows you to determine if a keyboard is connected to the player.
When a BSSerialPort JavaScript object is used to open a serial port, any previous BSSerialPort instance using the same port is disconnected.
NewClose() JavaScript method allows you to manually disconnect from a serial port without destroying the object instance.
When a new BSIRReceiver JavaScript object is created, any previous BSIRReceiver instance is disconnected.
New Close() JavaScript method ensures the IR transceiver hardware is released by the object.
A soft reboot on the player now causes a full power cycle for USB devices.
The ReadAsciiFile() method no longer attempts to read files larger than 8MB in order to prevent OOM crashes.
New GetRecoveryUrl() method allows you to retrieve the current recovery URL stored in the registry (which can be set via a script or DHCP Option 43).
New GetWiFiESSID() method returns the currently configured ESSID (whether the player is currently connected to the wireless network or not).
New SetWiFiPassphraseAndObfuscate() method allows you to set the WiFi passphrase and then retrieve the obfuscated version of that passphrase.
6.0.51
New Features
"audiodelay" parameter for the encoder: streaming component
Bug Fixes
(4Kx42 only) Players are again able to connect with the Iguanaworks IR transceiver.
Playing a streaming .ts video more than once using a rotated HTML page no longer causes a blank screen or video corruption.
If an HTML page uses local image assets, those files are now correctly cached to decrease load times.
(4Kx42, XDx32, XDx30 only) GNU Unifont support has been fixed.
(4Kx42 only) The 3840x2160x50/59.94/60p video modes no longer exhibit a single line of blank pixels on the right side of the screen.
Rotated 1080p HDMI input no longer exhibits video corruption.
(4K1142 only) HDMI input now works with devices that output 4k60p with the YCbCr 4:2:2 or 4:2:2 color space.
(4K1142 only) The player no longer gets stuck on a green screen if a hotplug event occurs on the HDMI output when the HDMI input is being displayed.
Touch events at the edges of the screen no longer occasionally fail to register.
Players now support newer versions of the ELO ET4201L touch screen.
Video corruption no longer occurs after switching from a HDMI input at 1080i60/59.94 to a video file and then back again.
(HDx22 only) Setting the "latency" parameter of a video stream to approximately 5000ms or greater no longer causes playback issues.
The default audio/video synchronization of encoder: component streams has been improved.
The "display:none" CSS attribute now works with <video> elements that have HWZ enabled.
A <video> element that has HWZ enabled will no longer be visible if it is outside the HTML widget dimensions.
Calling "transform:rot90" on a non-HWZ <video> element now rotates it by 90 degrees, rather than 180 degrees.
The JavaScript Play() function now plays correctly after the video <src> changes.
The roHtmlWidget.FlushCachedResources() method has been fixed. This method has not worked in any of the previous 6.0 releases.
Improvements
Players will now play media files from a uSD or MSATA storage device if it does not contain a presentation file (autorun.brs).
If an HDMI monitor is connected to the player after it boots up (i.e. an HDMI hotplug event occurs), the player will reboot and switch to the preferred video mode of that monitor if it's different from the current mode. This only occurs if the Force Resolution box has not been checked or if there is no BrightAuthor presentation on the card.
If a storage drive is in use, the Format Storage option in the Diagnostic Web Server (DWS) no longer allows attempts to format it.
The following objects now support decryption of encrypted image files: roImageWidget, roCanvasWidget, roVideoPlayer, roClockWidget, roTextWidget.
The changes to the "auto" video mode in firmware 6.0.41 have been reverted: A player set to "auto" now uses the highest resolution mode reported by both the monitor and player, rather than using the preferred mode (DTD) reported by the monitor.
The speed at which roCanvasWidget rectangles can be redrawn has been improved.
The CEA-608 and CEA-708 subtitle standards are now supported with rotated video as well.
The StoreEncryptionKey() and StoreObfuscatedEncryptionKey() methods (available on the roVideoPlayer, roAudioPlayer, and roAudioPlayerMx objects) now support the "AesCtrHmac" algorithm.
6.0.41
Important: In this build, 4Kx42 players are unable to connect with the Iguanaworks IR transceiver. Furthermore, 4K1142 players cannot accept 4K60p HDMI input from devices that output this resolution at YCbCr 4:2:0 and/or 4:2:0 only (i.e. a significant number of 4K output devices). These issues will be fixed in the next firmware release.
New Features
(4Kx42, XDx32, XDx30 only) New Format Storage option in the Diagnostics tab of the Diagnostic Web Server (DWS)
New Hide() and Show() methods for the roVideoPlayer object
New roHtmlWidget.ForceGpuRasterization() method
New roVideoMode.SetImageThreshold() method. This method allows you to increase the image size limit beyond 2048x1080, at the risk of depleting the graphics memory and causing a crash.
Bug Fixes
Background Image zones that are part of Portrait Mode presentations no longer appear distorted.
(XDx32, XDx30, HDx22 only) HTML playback of YouTube content no longer fails.
Video playback no longer fails when transitioning from an HTML page containing two videos to a Live Video state.
The firmware-update progress bar is no longer drawn off-screen if the player is connected to a 4K monitor.
Players will no longer lock up if the network connection times out during HLS streaming playback.
Players no longer exhibit intermittent crashes when switching from an MJPEG or RTSP stream to another MJPEG stream.
Streaming playback no longer fails with the Samsung SNO6011-R H.264 IP camera.
HTML videos that have HWZ disabled will no longer exhibit intermittent corruption when the video width is not a multiple of 32.
Issues with the IndexedDB implementation for HTML pages have been fixed.
Players no longer crash after several days of frequently cycling through HTML pages.
The JavaScript console no longer periodically fails to load.
HTML pages that use the BSSyncManager JavaScript object no longer exhibit occasional synchronization issues when pausing video.
Calling Hide() and then Show() on an roHtmlWidget instance no longer freezes animations. Similarly, if the page has not loaded completely when Hide() is called, it will now continue to load after Show() is called.
Calling Hide() on an roHtmlWidget instance before calling SetUrl() now correctly hides the page.
HTML <video> elements that have been muted before the page is loaded now mute correctly.
HTML pages no longer fail to display .gif images with large file sizes.
The HTML rendering engine now correctly handles transparency in .png images that use the LUT8 pixel format.
The roTextWidget.Hide() method now always works when displaying a scrolling ticker (i.e. text mode 3).
The ?loop parameter, which can be appended to roMediaStreamer.SetPipeline URLs, has been fixed.
If a script calls roVideoPlayer.StopClear() on an HLS stream and then starts a new HLS stream, the last frame of the first HLS stream will no longer be displayed when starting the second.
The roMediaServer object can once again stream .mp4 files in response to HTTP requests from clients.
Attempting to create an roMediaStreamer/roMediaServer pipeline between a file and a segmented HLS stream, or between a file source and file destination competent, no longer causes the player to crash.
Switching between HLS streams no longer causes intermittent playback hang ups.
Players no longer lock up when attempting to play from a stream URL that lists its first two sources as non-IPv4 addresses.
The default set of SNMP MIBs found in firmware 5.1.x have been reinstated.
(4Kx42, XDx32 only) The continuity counters of PAT and PMT PIDs now increment correctly in TS streams generated by the video encoder.
The roVideoMode.GetConfiguredMode() method now returns the current video mode once the SetMode() method is called. Calling GetConfiguredMode() before SetMode() will return Invalid because "auto" mode is the default state.
Destroying an unused roSqliteInterface instance no longer causes a crash.
Improvements
You can now use the Upload to this directory option in the Diagnostic Web Server (DWS) to upload multiple files at a time to player storage.
HTML <video> elements now show a blank frame (rather than no frame at all) when HDCP/DTCP authentication fails.
Touchscreen pinch zooming has been disabled for HTML <video> elements to match behavior in firmware 5.1. It will be reinstated in a future release.
HLS streams that are written to file via the roMediaStreamer object can now be encrypted and decrypted.
New BSTicker.Shutdown() JavaScript method allows you to immediately destroy a ticker widget.
The roVideoPlayer object will now generate EVENT_UNDERFLOW (26) events every few seconds if it detects underflow errors with a video stream (underflow errors are usually caused by latency settings that are too low).
(4K1142 only) Support for the YCbCr 4:2:2 and YCbCr 4:4:4 modes have been disabled on HDMI input because the player was exhibiting color distortion with the YCbCr 4:2:2 input mode. We will re-enable these modes once the YCbCr 4:2:2 input mode is fixed.
A player that has its video mode set to "auto" will now accept the preferred mode (DTD) of an attached monitor if this mode is supported by the player. Previously, a player set to "auto" would always use the highest resolution mode reported by both the screen and player, which may be different from the preferred mode of the screen.
New roCecInterface.UseInitiatorAddressFromPacket() method allows a script to set a custom initiator address for CEC.
It is now possible to play MPEG-DASH streams that use the "baseURL" segment type.
The player will no longer crash if you attempt to write data that is not UTF-8 or ASCII into the registry. This means that the registry now only accepts valid UTF-8 or ASCII data.
6.0.25
New Features
Support for writing HLS streams to file via the roMediaStreamer object
Support for the NEC32 IR protocol (via the roIRReceiver and roIRTransmitter objects). This allows BrightSign players to work with Apple TV remotes.
Bug Fixes
It is now possible to remove password authentication for the DWS when performing the player-setup process again.
The View Mode > Letterboxed and Centered and Fill Screen and Centered zone properties now work with portrait-mode video.
HTML <video> elements will no longer be misaligned if the zone containing the HTML has X,Y coordinates other than 0,0.
Background Image zones that are rotated no longer exhibit image corruption.
Live Text states will no longer incorrectly render an image when it has pixel height that is not a multiple of 16.
It is once again possible to rotate HTML <video> elements that are playing local files.
The fade effect when switching between multicast channels has been fixed.
The UpTime() global function no longer returns incorrect values after the player has been running for more than approximately 25 days. This function also now returns a double value instead of a float.
(4Kx42 only) The process of enabling and then disabling Telnet or SSH no longer causes indefinite CPU resource consumption.
Attempting to reduce the dimensions of a rotated video window no longer causes video corruption.
Stopping an roMediaStreamer instance that is streaming HDMI Input no longer causes the displayed HDMI Input from going blank as well. This bug only occurred when the HDMI Input was being displayed before the encoding process began.
Closed-caption text no longer jitters slightly when new text is scrolling onto the screen.
HTML widgets now report an up-to-date default User Agent string.
Audio track selection now works correctly when using the SetAudioOutput() method in combination with the SetPreferredAudio()/SetPreferredVideo() methods.
Improvements
(4Kx42, XDx32, XDx30 only) Both HTML and non-HTML presentations now support GNU Unifont. This means that you no longer need to specify a font for non-Latin text to display correctly (though you can still assign custom fonts as needed).
The latency for GStreamer streams has been reduced.
Changes to the preferredcaptions and viewmode attributes for HTML <video> elements now take effect immediately.
The Web Inspector now has scroll bars.
The new roVideoPlayer.ConfigureHdmiInput() method allows you to control the EDID values on the HDMI Input.
The new roVideoMode.GetAvailableModes() method allows you to retrieve an array of all available video modes on the player.
The GetHDMIInputStatus() and GetHDMIOutputStatus() methods on the roVideoMode object now return Boolean values, rather than integers, for appropriate parameters.
6.0.20
New Features
Hardware-accelerated image decoding for HTML
Support for 96kHz and 192kHz audio output
Bug Fixes
(XDx32) Dolby Digital 5.1 audio now plays correctly when it is passed through the HDMI input on the XD1132
(4Kx42) The firmware-update screen now appears again during the firmware-update process. Note that this bug only applied to firmware version 6.0.9, and will only be fixed after the firmware-update process from 6.0.9 is complete.
Remote Snapshots now correctly represent the opacity (alpha-blending) of videos.
HTML video that has HWZ disabled ("hwz=off") now works.
HTML video that uses WebGL now works.
CSS opacity animations now work with <video> elements.
Rapidly resizing a video window in HTML no longer causes a crash.
HTML video windows with background transparency no longer mask images directly behind them.
Video sourced from an HDMI input now works with multiscreen HTML pages.
(HDx22) HTML pages with viewport settings in the <meta> tag no longer have a chance of crashing the player.
The SetAppCacheDir() and SetWebDatabaseDir() methods on the roHtmlWidget object now work again.
The roHtmlWidget object now respects proxy settings specified using the SetProxy() and SetProxyBypass() methods on the roNetworkConfiguration object.
Key mappings are now correct for USB keyboards that are used with HTML pages.
(4Kx42) Streaming video to a device over several network switches no longer results in video corruption.
Creating an roImagePlayer instance no longer causes the screen to go blank.
roUrlTransfer no longer fails if the server sends a non-fatal alert during handshake.
The player no longer crashes if roHttpServer.AddGetFromEvent() is not passed user data.
When a static string is assigned to a member of an associative array within a Run() call, the string no longer becomes de-allocated on exit from Run().
Improvements
The HTML rendering engine now uses low-res tiles before loading the full-size images. This improves the performance of some carousel-style pages.
When an HTML <video> element is reused, there is no longer a brief black screen before the next video is played.
Seamless looping is now supported for HTTP MP4/MOV streams.
HTML pages that specify the "X-Frame-Options" header are now be allowed if you call EnableSecurity(false) on the roHtmlWidget instance.
Source-specific multicast streaming (IGMP v3) is now supported for GStreamer UDP/RTP.
The performance of GStreamer RTSP has been improved.
The roXMLElement.Parse() method now works much faster when handling text that contains a large number of entities.
New roPtp object allows you to retrieve information about the network PTP state of the player.
New roNetworkTimeEvent object and roSystemTime.GetLastNetworkTimeResult() method allow you to retrieve information about the last attempt to set the time via the network.
Players now contain two custom LLDP TLV fields: subtype 0 contains the player model number (e.g. "4K1142"); subtype 1 contains the player serial number (e.g. "X3H47U000046"). These custom fields have an organizationally unique identifier (OUI) of 90:ac:3f.
New roVideoMode.GetTxHdcpStatus() method allows you to retrieve the current HDCP status of the HDMI connection.
The roVideoMode.GetHdmiOutputStatus() method now returns additional information: audio_bits_per_sample, audio_format, audio_channel_count, and audio_sample_rate.
The roVideoMode.GetConfiguredMode() method now returns the additional dropframe parameter.
The roVideoPlayer.GetStreamInfo() method now returns additional information: AudioSampleRate, Source, AudioChannelCount, VideoColorDepth, VideoHeight, VideoFormat, AudioDuration, VideoWidth, VideoAspectRatio, AudioFormat, and VideoDuration.
6.0.9
New Features
Support for the new VB Touch FB series of touch sensors.
New viewmode attribute for HTML <video> tags. This attribute accepts the following values: "scale-to-fill", "scale-to-fit", and "scale-to-fill-and-crop".
Support for 128-bit AES CTR decryption of audio/video files via the roVideoPlayer object.
Support for USB modems that appear as standard serial ports (including the Pantech UML290 3G modem)
Support for 4096x2160 at the following frame rates: 25p, 30p, 50p and 60p
Support for USB devices that have multiple serial ports
Bug Fixes
HTML video now plays correctly when it switches from a local file to a streaming source.
Rotated HDMI-In video no longer has a chance of going blank when the player is rebooted or the resolution is changed.
1080i60 video now displays correctly when output at a 75p resolution (e.g. 1280x1024x75p, 1280x800x75p).
Players no longer fail to display CSS fonts from HTML pages that are hosted remotely.
Progress bars for HTML <video> elements now display correctly and can be used for playback seeking.
HTML pop-up menus now respect the current zoom level of the page.
Live Text states once again use the system font if no font is specified.
HTML <video> elements that stream RTP video no longer flicker at the beginning of playback.
RTSP/RTP video streams that use padding bytes no longer exhibit corruption in the lower-right corner of the screen.
Players no longer encounter errors when attempting to connect to MJPEG streams that require authorization (e.g. IP cameras).
USB audio has been fixed.
Closed captions now work with videos that are stretched across multiple screens.
The roAudioOutput.SetAudioDelay() method has been fixed.
HTML <video> elements that have HWZ enabled now respect CSS styling for opacity.
HTML <select> tags for dropdown menus now render properly.
JavaScript errors are now less likely to occur when attempting to call a function variable.
Passing an object to the roSerialPort.SendLine() method no longer causes the player to crash when exiting the BrightScript debugger.
The player will no longer lock up if you attempt to exit the BrightScript debugger while running multiple tickers.
The GetCurrentFileSizeMegaBytes() and GetCurrentFileTransferredMegabytes() methods available on the roAssetFetcherProgressEvent object now correctly reports using megabytes, rather than bytes.
The roCanvasWidget object now properly handles image source rectangles that are not the entire image.
The roSyncManager object now correctly supports the ifUserData interface.
The player now advertises a correct set of LLDP capabilities.
Improvements
Remote Screenshot images now include closed captions and Ticker zones.
When playing a BrightWall or Enhanced Synchronization presentation, the player can now use .ts files with PTS offsets greater than zero.
Players now support Sound Sample Description version 2 for .mov and .sowt files.
Closed captions now work with stretched multiscreen video.
The roMediaServer objects now support streaming of .mp4 files via HTTP.
The carrier frequency on the IR input/output is now configurable.
HTML <audio> elements now support the same audio-routing attributes as <video> elements (see the HTML Developer's Guide for more details).
The Pause() and Resume() methods on the roVideoPlayer object now work with streaming video.
New roVideoPlayer.GetDuration() method allows you to retrieve the duration of the file that is currently being played.
New roVideoPlayer.GetPlaybackPosition() method allows you to retrieve the amount of time a video file or IP stream has been playing.
Instead of crashing the player, the roVideoPlayer.SetPlaybackSpeed() method now fails when you attempt to use it with an audio-only track.
The roVideoMode.SetMode() string now accepts a "preferred" parameter that allows the player to fall back to a supported video mode if the configured mode is not supported by the display.
New GetActiveMode() and GetConfiguredMode() methods on the roVideoMode object allow you to retrieve more information about current and configured video modes.
New ForceHDCPOn() method on roVideoMode object allows you to force the video output to always be encrypted using HDCP.
The SetVolume() method on the roAudioPlayer and roVideoPlayer objects can now accept decibel values.
The new roAudioOutput.SetTone() method allows you to modify the treble and bass of audio outputs.
The Pause() and Resume() methods on the roVideoPlayer object now work with RTSP streaming video.
New roVideoPlayer.GetPlaybackPosition() method allows you to retrieve the amount of time a video file or IP stream has been playing.
During playback of an IP stream, calling the roVideoPlayer.Stop() method now leaves the last frame on screen. This behavior is consistent with file playback.
The roVideoMode.SetMode() string now accepts a "preferred" parameter that allows the player to fall back to a supported video mode if the configured mode is not supported by the display.
New GetActiveMode() and GetConfiguredMode() methods on the roVideoMode object allow you to retrieve more information about current and configured video modes.
The Diagnostic Web Server (DWS) is now enabled by default. It is available on port 80 and uses the player serial number as the default password. If the DWS was explicitly disabled in a previous version, it will remain disabled.
The ifUserData interface has been added to the following BrightScript objects: roVideoMode, roVideoPlayer, roAudioPlayer, roKeyboard, roMediaServer, roCecInterface, roControlPort, roMimeStream, roRtspStream, roRtspStreamEvent, roSnmpAgent, roSnmpEvent, roStorageHotplug, roStorageAttached, roStorageDetached, roMediaStreamer, roTimer, roTimerEvent, roMimeStreamEvent.
The ifStringOps interface has been removed from the roStorageAttached, roStorageDetached, and roSnmpEvent objects.
The ifStringOps have been removed from the following BrightScript event objects: roHdmiEdidChanged, roHdmiInputChanged, roScreenshotComplete, roIRRemotePress, roGpioButton, roQuadravoxButton, roTouchCalibrationEvent.
New roDeviceCustomization.FactoryReset() method allows you to perform a factory reset at the script level.
New roDeviceCustomization.WriteSplashScreen() method allows you to customize the boot splash screen using an image file.
New roDeviceInfo.GetLoadStatistics() method allows you to retrieve performance information related to the Linux kernel.
New FirmwareIsAtLeast() and BootFirmwareIsAtLeast() methods for roDeviceInfo provide scripts a reliable way to test against the current firmware version numbers.
New roTextWidget.SetSeparator() method allows you to change the string-separator symbol for scrolling tickers.
The EnableEncodings() method is now available for the roAssetFetcher and roSyncPool objects. HTTP compression is also enabled by default for the roUrlTransfer, roAssetFetcher, and roSyncPool objects.
New roVideoMode.GetHdmiOutputSettings() method allows you to check the current status of the HDMI output.
New GetStreamInfo() and GetStreamStatistics() methods for roVideoPlayer allow you to retrieve information about an IP stream that is currently being played.
New roHdmiOutputChanged event object, which is generated by the roVideoMode object, allows scripts to respond to hotplug events on the HDMI output.
New roTouchScreen.SetCalibrationRanges() method allows you to customize the dimensions of the touch area (rather than using the dimensions given by the touchscreen over USB). This method is useful if your touch setup is not using the entirety of the video output.
New roNetworkConfiguration.EnableLeds() method allows you to enable or disable Ethernet LED activity.
New SetProxyBypass() method for roNetworkConfiguration, roUrlTransfer,and roAssetFetcher allow you specify cases when a player should bypass a configured proxy.
New GetProxyBypass() method for roNetworkConfiguration allows you to retrieve the current proxy bypass listing set using the SetProxyBypass() method.
New roSerialPort.SetFlowControl() method allows you to enable or disable RTS/CTS handshaking over the serial port.
New GetBufferByteArray() and GetBufferMetadata() methods are available for the roImageBuffer object.
You can now use a fully qualified path (e.g. "SD:/libraries/mylib.brs") for the BrightScript LIBRARY statement.
File objects that implement the ReadByte() method now only return a negative value if the EOF is reached or if there is an error condition.
Passing multiple arguments to the CreateObject function when the object does not expect any arguments will now always cause a runtime error.
Attempt to print a string greater than 16K bytes long no longer results in an assertion failure. Instead, the string is truncated.