General information
SCTE-104 messages or triggers are transmitted as additional data in the VANC (Vertical ANCillary) interval of an SDI signal. ANC Type 2 packets are used, where the packet payload IDs are a pair of Data ID (DID) and Secondary Data ID (SDID). The values DID=41h and SDID=07h for VANC packets indicate that the SCTE-104 message is transmitted in these packets.
A VANC packet with SCTE-104 message data can be placed on any line outside the active part of the frame. In most cases, line 12 of the first field is used for all SD/HD SDI decomposition standards.
SCTE 104 to SCTE 35 section field mapping
List of commands
The SCTE-104 message can contain up to 2^16 different commands, but only a few dozen of this set are actually used. The specific list of actually used commands differs for the two types of messages. The first type is a message that can contain only one command (Single Operation Message).
| opID values for Single Operation Message | ||||
|---|---|---|---|---|
| opID value | Operation Name | Sent By | Sent To | Description |
| 0x0000 (0) | general_response_data() | PAMS Automation Injector |
PAMS Automation Injector |
Used to convey asynchronous information between the devices. There is no data() associated with this message |
| 0x0001 (1) | init_request_data() | Automation | Injector | Initial Message to Injector on predefined port |
| 0x0002 (2) | init_response_data() | Injector | Automation | Initial Response to Automation on the established connection |
| 0x0003 (3) | alive_request_data() | Automation | Injector | Sends an alive message to acquire current status |
| 0x0004 (4) | alive_response_data() | Injector | Automation | Response to the alive message indicating current status |
| 0x0007 (7) | inject_response_data() | Injector | Automation | Response to indicate that the request was received and that Injector is preparing to send message or messages. |
| 0x0008 (8) | inject_complete_response_data() | Injector | Response from Injector when all resultant splice messages are sent. | |
| 0x0009 (9) | config_request_data() | Automation | PAMS | Automation sends PAMS its IP configuration |
| 0x000A (10) | config_response_data() | PAMS | Automation | Responds to Config_Request |
| 0x000B (11) | provisioning_request_data() | PAMS | Automation | PAMS notification of the Injectors provisioned for DPI service |
| 0x000C(12) | provisioning_response_data() | Automation | PAMS | Response from Automation that the message is received and DPI is starting |
| 0x000F (15) | fault_request_data() | Automation | PAMS | Automation discovered communication problem with an Injector |
| 0x0010 (16) | fault_response_data() | PAMS | Automation | Response from PAMS |
| 0x0011 (17) | AS_alive_request_data() | PAMS | Automation | Maintain PAMS to AS communications |
| 0x0012 (18) | AS_alive_response_data() | Automation | PAMS | Maintain AS to PAMS communications |
The second type is a message that can contain one or more commands (Multiple Operation Message). In practice, messages of the second type are mainly used.
| opID values for Multiple Operation Message | ||||
|---|---|---|---|---|
| opID value | Operation Name | Sent By | Sent To | Description |
| 0x0100 | inject_section_data_request() | Automation | Injector | Generates a section directly |
| 0x0101 | splice_request_data() | Automation | Injector | Normally used request to send message or messages |
| 0x0102 | splice_null_request_data() | Automation | Injector | Generates a splice_null operation |
| 0x0103 | start_schedule_download_request_data() | Automation | Injector | Initiates schedule download |
| 0x0104 | time_signal_request_data() | Automation | Injector | Generates a time_signal operation |
| 0x0105 | transmit_schedule_request_data() | Automation | Injector | Initiates schedule transmission |
| 0x0106 | component_mode_DPI_request_data() | Automation | Injector | Adds component mode to a DPI request |
| 0x0107 | encrypted_DPI_request_data() | Automation | Injector | DPI request indicating encryption parameters. |
| 0x0108 | insert_descriptor_request_data() | Automation | Injector | Inserts a generic descriptor image into splice_info_section. |
| 0x0109 | insert_DTMF_descriptor_request_data() | Automation | Injector | Inserts a DTMF descriptor for analog cueing |
| 0x010A | insert_avail_descriptor_request_data() | Automation | Injector | Adds an avail_descriptor to the resulting section. |
| 0x010B | insert_segmentation_descriptor_request_data() | Automation | Injector | Adds a segmentation descriptor to splice_info_section. |
| 0x010C | proprietary_command_request_data() | Automation | Injector | Proprietary command extension. |
| 0x010D | schedule_component_mode_request_data() | Automation | Injector | Component-mode splice times for individual streams within a schedule. |
| 0x010E | schedule_definition_data() | Automation | Injector | Defines one scheduled splice point (avail definition) for building a schedule. |
| 0x010F | insert_tier_data() | Automation | Injector | Inserts tier metadata into splice_info_section. |
| 0x0110 | insert_time_descriptor() | Automation | Injector | Inserts a time descriptor carrying TAI/UTC timestamp fields. |
| 0x0111 | insert_audio_descriptor() | Automation | Injector | Inserts an audio descriptor into resulting section. |
| 0x0300 | delete_ControlWord_data() | Automation | Injector | Removes control word(s) for encryption group. |
| 0x0301 | update_ControlWord_data() | Automation | Injector | Downloads control words for encryption group. |