You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

https://etwiki.sys.comcast.net/display/CE/%5bShared%5d+HDMI-CEC

https://rdkwiki.com/rdk/display/RDK/HDMI+Input

https://www.teamccp.com/confluence/display/CPE/RDK+HDMI+Input+Architecture


The HDMI_CEC API defines the ability to get connected HDMI devices, send messages to those devices, and to be notified when messages are received from HDMI devices

HDMI-CEC is a protocol that provides high-level control functions between audio-visual devices connected over HDMI. CEC is a one-wire bidirectional serial bus based on industry-standard AV.Link protocol to perform control functions. All audio-visual sources are connected directly or indirectly to a display device as the ‘root’ in a tree-like structure.

Feature Summary

  • Hardware support for HDMI-CEC as specified in HDMI 1.4a

    • CEC 4 – Electrical Specification
    • CEC 5 – Signaling and Bit Timings
    • CEC 6 – Frame Description
    • CEC 7 – Reliable Communication Mechanisms
    • CEC 8 – Protocol Extensions
    • CEC 9 – CEC Arbitration
    • CEC 10.1 – Physical Address Discovery
    • CEC 11 – Switch Requirements
  • Send raw or formatted CEC messages on behalf of application
  • Provide received CEC messages to registered application listener
  • Get information about a device connected to HDMI input
  • Autonomously handle subset of CEC messages
  • Provide list of connected CEC capable device to application
  • Send "Feature Abort" response if message is not handled autonomously by RDK and message is not handled by application listener

Device Applicability

This feature applies to the following devices:

  • Hybrid
  • IP

Architecture Overview


Component Impacts

CEC Protocol Library

  • Translate application commands to CEC commands
  • Receive CEC commands and provide to application listeners
  • Autonomously respond to a subset of CEC messages

HDMI-CEC HAL

  • Abstract SoC CEC library from CEC Protocol Library

SoC CEC Driver

  • Serialize and send CEC commands
  • Receive CEC commands and provide to CEC Protocol Library
  • Send EDID to HDMI source

  • Provide HDMI input connect notification

Service Manager

  • Provide HDMI input connect notification via State Observer API.

  • Select select video source

Device Settings HAL

  • Provide HDMI event notification

  • Read/Modify/Write EDID

  • Add dsRegisterHdmiListener

  • Add dsSelectVideoSource

  • Add dsScaleVideoSource

SoC Video Pipeline

  • Source video from HDMI input

Design Details


Methods

NameParametersDescription
setEnabledenabled : booleanEnables or disables CEC
getEnablednoneReturns true if CEC is enabled
setNamename : stringSets the name of the STB device.  The default name is "STB".  It is recommended that the name of the device is set prior to enabling CEC.
getNamenoneReturns the name of the STB device
sendMessage

message : String

The message is a base64 encoded byte array of the raw CEC bytes.  The CEC message includes the device ID for the intended destination.

getCECAddressesnone

return the JSON object <CECAddresses> that is assigned to the local device. It does not contain the <CECAddresses> of other devices on the connected CEC network.

"CECAddresses" : {
"physicalAddress": Array of 4 bytes [byte0, byte1, byte2, byte3],
"logicalAddresses" : Array of <CECLogicalAddress>
}
"CECLogicalAddress" : {
"deviceType" : <string>
"logicalAddress": <integer>
}

The deviceType returned is part or all of devices types optionally set by XRE.

A CEC device can have multiple deviceTypes, if so an array of <CECLogicalAddress> with size more than one is returned.

Default deviceType is Tuner, and its logical Address is either 3, 6, 7, or 10.

In messages sent by XRE, XRE can only use the logicalAddress returned from CECAddresses.

Accepted deviceType are: "Tuner", "Record", "Playback", "AudioSystem", "VideoProcessor", "Switch"

Events

Name

Content

Description

onMessage

message : String

Fired when a message is sent from an HDMI device.  Message is a base64 encoded byte array of the raw CEC bytes.

cecAddressesChangedJSON object <CECAddresses>Notify that address of the host CEC device has changed

 

  • No labels