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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku TV Ready Technical Reference Manual Version 1.0.3
9
© 2020 Roku ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialRoku 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 ConfidentialYou can also read