MediaInput Cluster
Cluster ID: 0x0507 |
Endpoint: Media endpoint (TV, AV receiver, etc.)
MediaInput manages the external input sources of a device — HDMI, USB, component, optical, and other audio/video input interfaces. Users can query available input sources, check which one is selected, switch to a specific source, and customize input source names. It is one of the core Clusters for media devices such as smart TVs and AV receivers.
The MediaInput Cluster defines a NameUpdates (NU) Feature.
When enabled, the controller can customize input source names via the RenameInput command
(e.g., renaming "HDMI 2" to "PS5"). When disabled, input source names are fixed by the device and cannot be modified.
Commands
The MediaInput Cluster has 4 commands. SelectInput switches the input source, ShowInputStatus / HideInputStatus control the OSD display of input source information, and RenameInput allows users to customize input source names (requires the NU feature). Click a command ID in the table below to jump to its detailed description.
| ID | Name | Description | Required Feature |
|---|---|---|---|
0x00 |
SelectInput | Switch to a specified input source | None |
0x01 |
ShowInputStatus | Show input source info on screen | None |
0x02 |
HideInputStatus | Hide input source info from screen | None |
0x03 |
RenameInput | Rename a specified input source | NU |
SelectInput — Switch Input Source (0x00)
Switches the device to the specified input source. Index must match the Index value
of an InputInfoStruct in InputList; otherwise the device returns an error.
On success, the CurrentInput attribute updates to the specified Index value.
| Parameter | Type | Description |
|---|---|---|
| Index | uint8 | Index of the target input source; must exist in InputList |
Usage Scenarios
The user selects "HDMI 1" on the phone app. The app reads InputList to get the Index value of that input source,
then sends the SelectInput command. The TV switches to the corresponding HDMI input, and CurrentInput updates accordingly.
ShowInputStatus — Show Input Source Info (0x01)
Requests the device to display current input source information on screen (OSD overlay), similar to pressing the "Info" button on a remote. No parameters required. The displayed content and duration are determined by the device.
Usage Scenarios
The user wants to verify which input source the TV is on. Sending this command via the app causes the TV to display input source information on screen (e.g., "HDMI 1 - Living Room Set-Top Box").
HideInputStatus — Hide Input Source Info (0x02)
Requests the device to hide the input source information display on screen. No parameters required. If no input source information is currently displayed, this command has no effect.
Usage Scenarios
After ShowInputStatus pops up the information, the user finds it distracting and sends this command via the app to close the OSD overlay.
RenameInput — Rename Input Source (0x03)
Sets a custom name for the specified input source. After modification, the Name field of the corresponding entry in InputList updates.
This command requires the device to have the NU (NameUpdates) feature enabled.
| Parameter | Type | Description |
|---|---|---|
| Index | uint8 | Index of the input source to rename; must exist in InputList |
| Name | string | New name for the input source |
// RenameInput command example
// Rename the input source at Index=2 to "PS5"
{
"Index": 2,
"Name": "PS5"
}
// After execution, the Name of Index=2 in InputList becomes "PS5"
Usage Scenarios
The user connected a game console to HDMI 2, but the default "HDMI 2" label is not intuitive.
By sending RenameInput via the app, the input source at Index=2 is renamed to "PS5".
Afterwards, the Name of that entry in InputList becomes "PS5", and the UI displays the new name.
Attributes
The MediaInput Cluster has 2 attributes. Click an attribute ID in the summary table below to jump to its detailed description.
| ID | Name | Type | Description |
|---|---|---|---|
0x0000 |
InputList | list<InputInfoStruct> | List of all input sources on the device |
0x0001 |
CurrentInput | uint8 | Index of the currently selected input source |
Input Source State (0x0000, 0x0001)
Describes the device's currently available input source list and the currently selected input source.
| ID | Name | Type | Description |
|---|---|---|---|
0x0000 |
InputList | list<InputInfoStruct> | All available input sources declared by the device. Each element is an InputInfoStruct. The list reflects the device's actual physical and virtual input interfaces, with each Index value being unique. When a user modifies a name via RenameInput, the corresponding entry's Name updates |
0x0001 |
CurrentInput | uint8 | The index of the currently selected input source. This value always points to an InputInfoStruct.Index in InputList. Changed via the SelectInput command, or by the user switching via the remote |
Controllers should subscribe to changes in the CurrentInput attribute to sync the app UI when the user switches input sources via the remote or device panel.
Likewise, if the device supports the NU feature, subscribe to InputList changes to get the latest input source names.
Struct Definitions
The MediaInput Cluster uses one structure to describe input source information.
InputInfoStruct
Describes the complete information for an input source, including index, type, name, and description.
| Field | Type | Description |
|---|---|---|
| Index | uint8 | Unique index of the input source, used to identify it in SelectInput and RenameInput commands |
| InputType | InputTypeEnum | Interface type of the input source (see enum below) |
| Name | string | Display name of the input source, e.g., "HDMI 1", "PS5". Can be modified via RenameInput when the NU feature is enabled |
| Description | string | Supplementary description of the input source, e.g., "Living Room Set-Top Box". Provided by the device for UI display |
InputTypeEnum
Defines the physical interface type of input sources. Contains 12 enum values covering common audio/video input interfaces. Controllers can use this to display corresponding icons or categories in the UI.
Feature Bitmap
The MediaInput Cluster declares optional capabilities the device supports via FeatureMap (0xFFFC):
Most smart TVs and AV receivers should enable this feature — users typically want to rename "HDMI 1" to something more meaningful (e.g., "Set-Top Box," "PS5"). If the device's input source names are factory-fixed and cannot be modified, do not enable NU.
Example Data
Read results of the MediaInput Cluster from a smart TV — currently selected HDMI 1, with 4 input sources:
{
// --- Current Input Source ---
"0x0001": 1, // CurrentInput = 1 (currently selected HDMI 1)
// --- Input Source List ---
"0x0000": [ // InputList
{
"Index": 0,
"InputType": 0, // Internal (built-in tuner)
"Name": "TV Tuner",
"Description": "Built-in digital TV tuner"
},
{
"Index": 1,
"InputType": 4, // HDMI
"Name": "HDMI 1",
"Description": "Living room set-top box"
},
{
"Index": 2,
"InputType": 4, // HDMI
"Name": "HDMI 2",
"Description": "Game console"
},
{
"Index": 3,
"InputType": 10, // USB
"Name": "USB",
"Description": "USB media playback"
}
]
}
When displaying the input source switching UI, controllers should first read InputList (0x0000) to get the complete list,
then read CurrentInput (0x0001) to highlight the currently selected item.
Different icons can be displayed for different interface types based on InputType (e.g., HDMI icon, USB icon, etc.)
to improve user recognition.
Common Scenarios
Scenario 1: App Switches TV Input Source
- Read
InputList (0x0000)to get all input sources (Index, Name, InputType, Description) - Read
CurrentInput (0x0001)to highlight the currently selected input source - Display the input source list in the UI with icons based on InputType
- When the user taps the target input source, send
SelectInput (0x00)with Index set to that input source's index value - Subscribe to
CurrentInputattribute changes; update the UI after confirming the switch succeeded
Scenario 2: User Customizes Input Source Name
- Check the device's
FeatureMap (0xFFFC)to confirm it supports NU (Bit 0 = 1) - Read
InputList (0x0000)and display the input source list - User long-presses an input source (e.g., Index=2, current name "HDMI 2"), triggering a rename input dialog
- User enters the new name "PS5" and sends
RenameInput (0x03)with Index=2, Name="PS5" - Subscribe to
InputListchanges; refresh the UI after confirming the name update
Note: If FeatureMap does not include the NU feature, the UI should not show the rename option, and sending the RenameInput command will be rejected by the device.