Technical Reference Manual Version 1.0.3 July 2020 - Roku TV Ready Technical Reference Manual Version 1.0.3 - Roku ...
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Roku TV Ready Technical Reference Manual Version 1.0.3 Technical Reference Manual Version 1.0.3 July 2020 1 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Table of Contents Introduction ............................................................................................................................... 6 High Level Overview ........................................................................................................................... 6 Typical Topologies............................................................................................................................... 6 Example Use Cases .............................................................................................................................. 7 Standard CEC Messages ............................................................................................................. 7 System Audio Control ......................................................................................................................... 7 Remote Control Pass Through ............................................................................................................. 7 System Standby .................................................................................................................................. 7 Device OSD Name Transfer ................................................................................................................. 8 Roku TV Ready Messages ........................................................................................................... 8 Initial Handshake ................................................................................................................................ 8 AnnouncePresence ................................................................................................................................................ 10 InitSession.............................................................................................................................................................. 10 AcceptSession ........................................................................................................................................................ 10 Option Synchronization......................................................................................................................10 Option Format ....................................................................................................................................................... 12 SetState ................................................................................................................................................................. 15 ReportState............................................................................................................................................................ 16 Overview of Development Process ........................................................................................... 17 Quick Start guide ...............................................................................................................................17 Updating the Roku TV Ready Development Kit Hardware ..................................................................18 UI Testing Interface ............................................................................................................................18 Setup and Configuration ........................................................................................................................................ 18 Interactive Mode ................................................................................................................................................... 19 Test Mode .............................................................................................................................................................. 20 Testing with RokuTV .............................................................................................................................................. 21 Certification Process................................................................................................................. 22 Overview ...........................................................................................................................................22 Submit Product Proposal....................................................................................................................23 Roku Issues Product ID and Feature Set ID .........................................................................................23 Submit Certification Request and Sample Hardware ..........................................................................23 Roku Performs Certification Testing ...................................................................................................24 Roku Safelists Product .......................................................................................................................24 Testing Procedure .................................................................................................................... 25 Standard CEC Messaging Tests ...........................................................................................................25 Testing Methodology ............................................................................................................................................. 25 Initialization Procedure ......................................................................................................................................... 25 Standby and Power................................................................................................................................................ 25 System Information ............................................................................................................................................... 26 2 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 OSD Name Transfer ............................................................................................................................................... 26 Audio System Settings (And Remote Control Pass-through) ................................................................................. 26 Roku TV Ready Messaging Tests .........................................................................................................28 Testing Methodology ............................................................................................................................................. 28 Handshake ............................................................................................................................................................. 28 Feature set SetState .............................................................................................................................................. 28 Feature set Query .................................................................................................................................................. 28 Feature set SetState full range .............................................................................................................................. 28 Feature set SetState with variable Options Length ............................................................................................... 29 Feature set SetState NOP ...................................................................................................................................... 29 Session Re-initialisation ......................................................................................................................................... 29 Session Re-initialisation after HPD ........................................................................................................................ 29 Session after standby............................................................................................................................................. 30 3 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Change History Version Date Comments v0.1 September 2019 Initial Version § Updated json format for FeatureSet description to add remaining fields and simplify structure; Description of feature sets improved and moved to the Setup and Configuration section v0.2 December 2019 § New web-based UI, including interactive development mode § Removed S/PDIF topology as this is not a requirement for soundbars to participate in the program § Removed Vendor Specific Information test. § Draft certification process § Update to published name "Roku TV Ready" v0.3 January 2020 § Minor editorial changes § Remove requirement for DALS from 1.0 release § Update SetState and ReportState protocol to support backwards compatible feature set enhancements and optional features v1.0 February 2020 § Update set of certification tests § Document the 'soundmode' feature id § Additional clarification added to feature set definition, default values on reset, mapping of option ranges between soundbar v1.0.1 April 2020 and RokuTV § Additional clarification added to feature set definition, v1.0.2 May 2020 conditional displaying of options § Added ability to test UI locally with a RokuTV v1.0.3 July 2020 § Added tests to validate response for empty SetState message 4 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Glossary spec for the list and definition of available commands [Parameter] list of parameters passed with the message. Device Under Test : the device to which the Roku TV Ready Development DUT Kit hardware is connected. HPD HotPlug Detect The collection of options exposed by a device, as described in the section Feature set on Option Synchronization 5 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Introduction High Level Overview Roku TV Ready is a communications standard and API for partners developing soundbars, AVRs and speaker products connected via HDMI-ARC to a Roku TV. Areas addressed include the use of a single remote and the integration of sound settings into the TV user interface for a "better together" user experience. Roku TV Ready is based on the HDMI-CEC standard and uses existing standard CEC messages, extended with a set of Roku TV Ready specific CEC Vendor Commands. A versioned handshake mechanism and rules for signalling unsupported features are used to allow for future enhancements without breaking compatibility with existing devices. To accompany the API, there is a development and test toolkit and a certification process. This document describes the API, how to use the development toolkit, and how to submit a product for certification. Typical Topologies The simplest and possibly most common topology is a soundbar connected to a Roku TV over HDMI-ARC: Variations include having an external player, such as a DVD player, as a source input to a Roku TV: 6 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Example Use Cases • When the user first plugs in a new soundbar to their Roku TV, the devices recognise each other and the user is offered the opportunity to configure them to work together. If the user accepts, the configuration information is exchanged automatically without the need for any further input from the user. • Using the Roku TV remote, the user brings up the sound settings menu and can see and adjust the soundbar options; the Roku TV sends the new settings to the soundbar. • The user uses a third party app to change sound settings on their Soundbar; the UI on the Roku TV reflects the change. • The user changes volume using the Roku TV remote; the Roku TV sends the volume change request to the soundbar which changes the output volume without the user needing to use the soundbar remote. • The user changes volume using the Roku mobile app; the Roku TV sends the volume change request to the soundbar which changes the output volume without the user needing to use the soundbar remote. Standard CEC Messages The following standard CEC messages must be supported. System Audio Control Remote Control Pass Through Soundbars are required to support at least the VolumeUp, VolumeDown and Mute user operations. System Standby 7 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Device OSD Name Transfer Roku TV Ready Messages Messages specific to Roku TV Ready are defined as sub-operations of the standard message, using the Roku OUI 8AC72E. All Roku TV Ready messages have the same CEC prefix: Bytes Meaning Example Values 0 [CEC] Source and destination 0x0F: TV → Broadcast 1 [CEC] Vendor Command with Id 0xA0 2-4 [CEC] OUI 0x8AC72E Initial Handshake When the user first plugs a new Roku TV Ready device in, the Roku TV will initiate the handshake sequence, checking the device against the safelist and the list of known devices and then display the setup screen. When the device is next powered on, the Roku TV will recognize the serial number and re- synchronize the state of the configuration options. 8 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 9 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 AnnouncePresence This message is broadcast by the Roku TV to indicate that Roku TV Ready is available when it detects a compatible device has been plugged in. Any existing Roku TV Ready session should be assumed to have been torn down and no messages other than InitSession should be sent until an AcceptSession message is received. Bytes Meaning Example Values 5 Subopcode 0x10: AnnouncePresence 6 Protocol version 0x02 InitSession This message is sent by a Roku TV Ready device to the Roku TV to request a session. The device details in the message will be used to check that the device is an approved device. Any existing Roku TV Ready session will be torn down and no messages should be sent until an AcceptSession message is received. Bytes Meaning Example Values 5 Subopcode 0x11: InitSession 6 Protocol version 0x02 7 Product ID assigned by Roku 0x01 Unique Device Identification, e.g. serial 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 8-15 number 0x0F AcceptSession This message is sent by the Roku TV to a Roku TV Ready device to indicate that the device is approved. Bytes Meaning Example Values 5 Subopcode 0x12: AcceptSession 6 Protocol version 0x02 7-15 Roku TV device identification for logging purposes Option Synchronization Options are grouped into feature sets. Each device supports exactly one feature set, and the same feature set can be reused across multiple devices. Feature sets are described using the json file format shown in the following section; the same file format is used both to describe the options to the Roku TV Ready Development Kit hardware and when submitting a certification request. 10 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 A feature set can contain a maximum of 18 options, however Roku recommends up to 8 options to fit them on a single screen without the need to scroll. When the user displays the sound settings on the Roku TV, an empty SetState message will be sent to the device. The device must respond with a ReportState message with the current state of all the options. The value 0xF can be used to indicate that an option from the feature set is currently unsupported on the device. This will cause the option to be hidden from the Roku UI. This is useful for options that should only be available if the device is in a certain state, or has optional peripherals like a subwoofer connected. There is one exception to this rule: the mandatory "soundmode" option may not return 0xF, as it always has to be supported. When the user changes an option on the Roku TV, a SetState message will be sent to the device indicating the new value of the changed option and a value of 0xF for all other options that have not changed. The device must respond with a ReportState message with the resulting state of all the options. This allows for both the case where the user's exact choice cannot be achieved and the case where changing one option affects one or more other options. The device must also send ReportState messages when options are changed through some other mechanism, such as the device's native user interface. 11 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Option Format Options are encapsulated in a feature set and described in JSON, and can be edited through the configuration menu of the SDK described in section UI Testing Interface. It is recommended to validate the entered json in the tool before saving it. This feature set definition is also part of the information that is provided to Roku during product certification. The "id" of the feature is used internally in the software, the "title" is the text presented to the user, and the "hint" is the description of the feature. The feature "hint" is currently not displayed to the user. The option "title" is the text that is presented to the user as the selectable option, and "hint" is the text that is presented to the user as a detailed description of the option. Field Character limit "title" 15 "hint" 46 The feature set id is a unique number that is allocated by Roku as part of the certification process, please see that section for further details. As an example, let us use a soundbar exposing the following two features: "Night mode", which can be Off or On "Sound mode", which can be Normal, Party or Cinema Roku allocates a feature set id, "4" in this example. The features are described with a json file: 12 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 { "4": [ { "id": "soundmode", "title": "Sound Mode", "hint": "Select a sound profile", "options": [ { "id": "normal", "title": "Normal", "hint": "Standard profile for normal listening" }, { "id": "party", "title": "Party", "hint": "Bass boost for party time" }, { "id": "cinema", "title": "Cinema", "hint": "Optimised for big cinema sound" } ] }, { "id": "night_mode", "title": "Night Mode", "hint": "Limits loudness of volume", "options": [ { "id": "off", "title": "Off", "hint": "Do not limit volume" }, { "id": "on", "title": "On", "hint": "Limit volume of loud noises" } ] } ] } Mandatory Feature Every feature set must have a feature with the ID "soundmode". This feature will be treated as the primary audio option for the device and will be promoted to a quick access location in the Roku TV user interface, on the “Options” screen. On the "Options" screen the default Roku title of "Sound Mode" will be used. When the feature is presented alongside the remaining feature set in the "Sound Settings" screen, the title defined in the feature set will be used. The title of the feature may be different from "Sound Mode", but it is crucial that the ID is "soundmode". The SDK test suite will generate an error if this feature is not present in the feature set json. 13 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Option Order & Defaults The options of a feature are presented to the user in a carousel selector which allows left/right navigation, and it wraps around. When the user resets the Sound Settings in the Roku UI, all features will be defaulted to the option at index 0. For example, a feature like "Bass Level" may have the options (-2, -1, 0, +1, +2). To avoid -2 being the default option after a reset, we recommend defining the option order as (0, +1, +2, -2, -1). This way 0 is the default option and pressing the left key in the UI will wrap around to -1. The system resetting to the options at index 0 for all features shall yield a valid configuration, no mutual exclusivity for options at index 0 is permitted. Option Range Each option is communicated in a nibble (4 bits), giving 15 options as 0xF is a reserved value for “unsupported on this device”. For products which have a broader option range, they shall be adapted to a maximum of 15 options. For numerical options, Roku UI requires that they are defined with increments of 1 to give a continuous sequence. As an example: Original option range (51) RokuTV Ready range (max 15) -25 -7 -20 -6 -16 -5 -12 -4 -9 -3 -6 -2 -3 -1 0 0 3 +1 6 +2 9 +3 12 +4 16 +5 20 +6 25 +7 14 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 SetState This message is sent by the Roku TV to a Roku TV Ready device to change a subset of the options in a feature set. Each option in the feature set is represented in sequence by the next nibble, giving 15 possible values for each option. the value 0xF is reserved to mean 'unchanged'. A short form of the message containing only the first byte can be sent to request the current state. Implementations must ignore and discard any unexpected trailing nibbles, irrespective of what value they contain. If a message contains fewer option values than expected, implementations must accept the message and treat the missing values as-if they were present and set to 0xF. When SetState is used by the Roku TV to poll the current state of the device, then the message will be empty, ending at byte 5. The device must respond with a ReportState, providing the currently used feature set ID and state of all options. Bytes Meaning Example Values 5 Subopcode 0x30: SetState 6 Feature set ID, allocated by Roku 0x01: Example feature set with 3 options 0xF1 0xF0: • option 0 → unchanged • option 1 → set to 1 • option 2 → unchanged • Last nibble ignored. 7-15 Option values, packed into one nibble per value 0xF1 • option 0 → unchanged • option 1 → set to 1 • option 2 → unchanged 15 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 ReportState This message is sent by a Roku TV Ready device to the Roku TV to report the current state of all the options in a feature set, either in response to a SetState message, or as a result of a change through some other means such as the device's own user interface. Option values are represented as described for SetState. ReportState messages may not be sent with
Roku TV Ready Technical Reference Manual Version 1.0.3 Overview of Development Process Most development and testing can be done using the hardware supplied with the development kit. It consists of a modified Raspberry Pi 3 accessible over HTTP, that emulates an HDMI sink supporting Roku TV Ready over its existing HDMI connector. The kit runs a test suite that covers all areas of the Roku TV Ready specification, provides UI based and automation ready configuration and testing interfaces, and provides detailed error logs and certification results over HTTP. An interactive mode is also available for more general development and testing. A CEC sniffer may also be useful to track down issues in the use of the protocol. Quick Start guide 1. Connect the Roku TV Ready Development Kit hardware to your local dhcp enabled network (the network you plan to access it from). It will automatically acquire the hostname RokuCWxxx, where xxx is the last three octets of the device mac address. 2. Connect your DUT (Device Under Test) over an HDMI cable ready for testing, if required via the provided CEC message sniffer. 3. Use a standard web browser to visit http://.local to access testing UI (see below for details). 17 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Updating the Roku TV Ready Development Kit Hardware To update an existing device, for example from v0.1 to v0.2, you will need: § The new image from Roku § An SD Card writer The following instructions assume that a Linux command line terminal is available; alternative tools are available for other operating systems. 1. Power off the Roku TV Ready Development Kit hardware 2. Locate the micro SD card at the lower rear of the device and gently remove it 3. Place the card in an SD card writer, using an adaptor if required 4. Check the device ID of the SD card writer; lsblk is a useful tool for this. These instructions will assume it is /dev/sdc; this step is very important as using the wrong device in the next instruction could lead to data loss. 5. Assuming that the new image from Roku is located at ~/Downloads/sd_card_v02.img and the SD card writer is at /dev/sdc, issue the instruction dd if=~/Downloads/sd_card_v02.img of=/dev/sdc 6. Put the sd card back in the Roku TV Ready Development Kit hardware, with the connectors facing up and re-power the device 7. Use a standard web browser to visit http://.local to access the new UI (see below for details). UI Testing Interface Setup and Configuration The Home Page offers access to both the test and interactive modes, via the buttons at the top left. 18 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 The Configure button allows the device to be configured with the CEC parameters for the DUT and the feature set exposed by the DUT. It also allows the current time to be configured on the device, which does not affect the test results, but is used in time-stamping any logs produced and may be useful when looking at logs later. Interactive Mode The interactive mode allows individual CEC and Roku TV Ready messages to be sent and received. The buttons on the left are used for sending messages to the DUT and the console on the right shows a log of what has been sent and received. For testing the feature set, the UI reads the feature set description json and displays appropriate options to choose from. Note that entering interactive mode may take a few seconds as it re-asserts the HPD line to ensure that the session is starting in a clean state. To use the feature set messages, it is first necessary to perform a Roku TV Ready handshake: § Press the "Announce Presence" button and wait for the DUT to response with an InitSession message § Then press the "Accept Session" button § The DUT should now be ready to send and receive feature set messages. 19 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Test Mode The test mode allows a set of tests to be selected and run. When the tests have finished, a summary list of results is displayed, together with access to the logs. The Error log includes the result of each test, with more detailed information about the nature of any failures. The Debug log includes more information about the sequence of messages for the entire test run. When requesting help from Roku, please be sure to include both logs, a copy of your feature set json file and the configuration parameters that you have set. 20 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Testing with RokuTV Testing with a RokuTV instead of the RDK provides the actual RTV UI experience and shall be done as an end-2-end test before final certification. Please send your RokuTV Device ID to rokutvready@roku.com to get your TV on a FW build with additional debug features. For SDK v1.0.0 to v1.0.2 it is possible to test compatibility & UI with a RokuTV, once the device information and feature set have been published by Roku to a configuration server. From SDK version 1.0.3 onwards, it’s possible to test the device with a Roku TV locally, with the device information and feature set hosted on the RDK. Steps to configure Roku Tv Ready Development Kit on SDK 1.0.3 onwards: • Connect your TV and Roku Tv Ready Development Kit to the same network. • On the RDK: 1. Configure → Branding info configure the Brand name and Help URL. 2. Configure → CEC/RCW config enter the product ID assigned by Roku for your device 3. Configure → Feature Sets configure the feature-set you want to test • On the RokuTV: 1. Access the "Roku Tv Ready Secret Screen" by pressing [5xHome, Up, Right, Up, Right, Up, Right] on the TV remote. Note this screen will be available only if your TV is on the test FW described at the beginning of this section. 2. Use the Set SDK Host Option and enter the IP of your RDK, in the format http:// 3. Now restart the TV and connect the device to the HDMI-ARC port. You should be prompted with the Roku TV Ready setup. If you have changed information on the SDK you may need to go to the secret screen to "Clear cache". The TV stores which device is already set up, so if you want to go through the setup again you will have to "Clear cache" in the Secret Screen and go to the Home Screen and re-plug the soundbar. The "Update device list" entry shows the Roku TV Ready devices connected to the TV. 21 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Certification Process This document and the accompanying development kit will have been received as a result of reaching an evaluation agreement with Roku. Before launching any products, a license agreement must be in place. Overview 22 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Submit Product Proposal The following form should be completed and sent to RokuTVReady@roku.com Product Name Model Name / Number Is this a new product or an update to an New / existing product? Update Likely availability date for Roku Certification testing Please list the intended sound settings and the possible values for each The list of sound settings and values will enable Roku to evaluate whether a new feature set ID will be needed and anticipate any likely integration problems. Roku Issues Product ID and Feature Set ID Each new product will be issued with a unique product ID and it is required that the product identifies itself over Roku TV Ready using this identifier. Depending on the feature set to be exposed, Roku will specify the feature set ID to be used. This may be a new feature set ID, or may be an existing feature set ID used by the same product family. Submit Certification Request and Sample Hardware Certification submission is initiated by pressing the "Start Cert Submission" button in the Roku TV Ready Development Kit. This will run all the necessary tests and collect the logs and configuration data. In addition, it will prompt for the information that will be needed to safelist the product, including the final product name and help URL. 23 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 The tool will create a compressed file containing all the information which can be downloaded from the tool and sent to RokuTVReady@roku.com. Roku will need at least one sample hardware unit to test, which must be clearly labelled with the allocated Product ID. The shipping address will be advised in response to the certification request. Roku Performs Certification Testing Roku will complete certification testing within six weeks and will generate a test report. Any failures will be explained, and corrective action identified. Roku Safelists Product Approved products will be safelisted to enable compatibility with all deployed Roku TV platforms within one week (or a mutually agreed date) of the completion of testing. 24 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Testing Procedure Standard CEC Messaging Tests Testing Methodology The CEC tests all involve the Roku TV Ready Development Kit issuing a command and validating a response. In the event a CEC service is initiated by the DUT e.g. these messages will be ignored and will not be tested by this procedure. All standard Request→Receive tests have a defined timeout before the test is considered failed. All tests will be preceded by an initialization process as outlined below, and will be cancelled if this process fails. This is to confirm devices correctly assign and report their physical address on HPD assert. Initialization Procedure Before any tests are run the DUT must successfully initialize the CEC interface as follows. As per the CEC standard, a sink device is able to pulse the Hot Plug Detect line low at any time, for a minimum of 100 milliseconds, and force a read of its EDID data structure over the HDMI DDC lines. The DUT is then expected to reassign its physical address based on the EDID, reassign its logical address and report this through the CEC bus with . The initialization test is hence as follows: 1. The HPD line is initially high, it is pulled low for 5 seconds, and then reasserted to high. 2. The device is expected to read the EDID structure over DDC, extract its physical address, reassign its logical address and broadcast . 3. The value of the physical address reported will be verified against the test configuration. 4. Failure to complete either reading the EDID or will result in the cancellation of all future tests, as these will not be valid. Standby and Power The purpose of this test is to confirm that it is possible for a Roku TV to control the power state of the DUT, the test is as follows: 1. is sent, is expected and used to confirm the DUT is in the 'On' power state. 2. is directly addressed to the DUT. 3. The DUT is given 10 seconds to go into standby, before is sent, is expected, and the power-state of the DUT must be 'Standby'. 4. ['Power'] is directly addressed to the DUT. 5. The DUT is given seconds to go into power on, before is sent, is expected, and the power-state of the DUT must be 'On'. 25 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 System Information The purpose of this test is confirm basic information needed for Roku TV Ready to operate can be obtained from the DUT, the test is as follows: 1. is sent, is expected, with an attached version reference of (at least) '1.4'. 2. is sent, is expected with [physical address] matched to the one provided during the initialization procedure. OSD Name Transfer The purpose of this test is to confirm the name of the DUT can be read and displayed in the Roku TV UI during Roku TV Ready Setup and on the Roku TV home screen. The test is as follows: 1. is sent, is expected, with the attached [OSD Name] matching that specified in the configuration dialog. Audio System Settings (And Remote Control Pass-through) The purpose of this test is to confirm the DUT is compatible with the Audio requirements of Roku TV Ready. These requirements are such that: • The audio mode of the DUT can be configured and controlled by a Roku TV. • The audio status can be read, and the volume of the DUT controlled by a Roku TV. • The DUT must support LPCM, and may support other formats such as AC3 AAC and DDPLUS. The tests are as follows: 26 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 System Audio Mode 1. is sent, is expected, the [Status] parameter is discarded. 2. ['0.0.0.0']is sent, is expected, with the [mode] parameter required to be 'on'. 3. [''] is sent (with a null [Physical address] parameter), is expected, with the [mode] parameter required to be 'off'. Remote Pass-through 1. is sent, is expected, and the [status] parameter is recorded. 2. ['Volume Up'] is sent, is expected, and must contain a volume reading of one higher than the initially recorded status. 3. is sent. Note press and hold operation is not currently tested, but must be supported and may be tested in the future. Audio Formats 1. [0]['LPCM'] is sent, is expected, with a 3 byte LPCM descriptor as the [short audio descriptor] parameter. The exact contents are not checked, only the requirement for LPCM support. N.B. HDMI Spec allows for a if the audio format is not supported, this will be explicitly rejected. 2. [0]['AAC'] [0]['AC3'] [0]['DDPLUS'] is sent, is expected, with at least one [Short Audio Descriptor] attached. All supported formats are recorded for debugging purposes. 27 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Roku TV Ready Messaging Tests Testing Methodology The Roku TV Ready tests all involve the Roku TV Ready Development Kit issuing a command and validating a response. All standard Request→Receive tests have a defined timeout before the test is considered failed. Handshake The purpose of this test is to test the Roku TV Ready hand shake. This test will be run before any and all other Roku TV Ready tests. 1. AnnouncePresence is sent, to which the DUT must respond with InitSession 2. AcceptSession is then sent, which the DUT must accept without any errors 3. An empty SetState is then sent, to which the DUT must respond with ReportState Feature set SetState The purpose of this test is to confirm synchronization of settings works correctly 1. An empty SetState message is sent; a ReportState message is expected and the values are saved. 2. A SetState message is sent, with one option changed. A ReportState response is expected. Each feature value is checked that it is within the range defined by the feature set description. Feature set Query The purpose of this test is to confirm if the device is able to report the current feature set reliably to Roku TV. 1. An empty SetState message is sent. A ReportState response is expected. Each feature value is checked that it is within the range defined by the feature set description. 2. Wait for 5 sec and try again. 3. Repeat steps 1-2 for 5 times to ensure reliability. Feature set SetState full range The purpose of this test is to confirm synchronization of settings works correctly across all the specified settings range 1. A SetState message is sent with one option changed. A ReportState response is expected. Each feature value is checked that it is within the range defined by the feature set description. 2. Step 2 is repeated for the entire range of the feature set specification. 28 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Feature set SetState with variable Options Length The purpose of this is to check if the DUT is able to handle SetState messages of varying length properly. 1. A SetState is sent with just one option value and a 0xF trailing nibble. A ReportState is expected with correct length. 2. A SetState is sent with just two option values. A ReportState is expected with correct length. 3. This is repeated with up to N+2 option values, where N is the number of options in the feature set. Feature set SetState NOP The purpose of this test is to confirm that a SetState message with no-op values results in no changes to the feature set. 1. An empty SetState message is sent; a ReportState message is expected and the values are saved. 2. A SetState message is sent with all options set to the nop (0xF) value; a ReportState message is expected with the same values as the previous ReportState message. Session Re-initialisation The purpose of this test is to ensure the DUT is able re-initialise session upon receiving AnnouncePresence. 1. Pre condition is that a Roku Tv Ready session has already been established. 2. AnnouncePresence is sent, to which the DUT must respond with InitSession. 3. AcceptSession is then sent, which the DUT must accept without any errors. 4. An empty SetState is then sent, to which the DUT must respond with ReportState. Session Re-initialisation after HPD The purpose of this test is to ensure the DUT is able re-initialise Roku Tv Ready session after HPD assert. 1. The HPD line is asserted. 2. The DUT reads EDID data, extracts its physical address and broadcasts . 3. AnnouncePresence is sent, to which the DUT must respond with InitSession. 4. AcceptSession is then sent, which the DUT must accept without any errors. 5. An empty SetState is then sent, to which the DUT must respond with ReportState. 29 © 2020 Roku Confidential
Roku TV Ready Technical Reference Manual Version 1.0.3 Session after standby The purpose of this test is to confirm that the DUT is able to accept Roku TV Ready commands after coming out of standby. 1. Roku TV Ready handshake is completed and the DUT responds to SetState as above. 2. is directly addressed to the DUT. 3. The DUT is given 10 seconds to go into standby, before is called, is expected, and the power-state of the DUT must be 'Standby'. 4. ['Power'] is directly addressed to the DUT. 5. The DUT is given seconds to go into power on, before is called, is expected, and the power-state of the DUT must be 'On'. 6. An empty SetState message is sent; a ReportState message is expected and the values are saved. 7. A SetState message is sent with all options set to the nop (0xF) value; a ReportState message is expected with the same values as the previous ReportState message. 30 © 2020 Roku Confidential
You can also read