SCTE 104/35 Codex
This codex models a curated subset of SCTE 104's operations, focused on the message structures the parser decodes. See the official standard for the complete opID table.
Sections
- 7.2.2Single Operation Message
- 7.2.3Multiple Operation Message
- 7.3Operation Types
- 8.1.1init_request
- 8.1.2init_response
- 8.2.1alive_request
- 8.2.2alive_response
- 8.3.1splice request
- 8.4.2encrypted_DPI request
- 8.4.3update_ControlWord request
- 8.4.4delete_ControlWord request
- 8.5.1component mode DPI request
- 8.6.1general_response message
- 8.6.2inject_response message
- 8.6.3inject_complete response
- 8.7.1start schedule download request
- 8.7.2schedule_definition_data
- 8.7.3schedule component mode request
- 8.7.4transmit_schedule request
- 8.8.1time signal request
- 8.8.2splice null request
- 8.8.3inject section data request
- 8.8.4insert_avail_descriptor request
- 8.8.5insert_descriptor request
- 8.8.6insert_DTMF_descriptor request
- 8.8.7insert_segmentation_descriptor request
- 8.8.8proprietary_command request
- 11.4time() Definition
- 11.5timestamp() Definition
- 13.0Result Codes
single_operation_message()
7.2.2| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| opID | 16 | uimsbf | 7.2.2.1 | ||
| messageSize | 16 | uimsbf | 7.2.2.1 | ||
| result | 16 | uimsbf | 7.2.2.1 | ||
| result_extension | 16 | uimsbf | 0xFFFF unless conveying additional result information | 7.2.2.1 | |
| protocol_version | 8 | uimsbf | 0x00 | 7.2.2.1 | |
| AS_index | 8 | uimsbf | 7.2.2.1 | ||
| message_number | 8 | uimsbf | 7.2.2.1 | ||
| DPI_PID_index | 16 | uimsbf | 7.2.2.1 | ||
| data() | varies | structure | 7.2.2.1 |
multiple_operation_message()
7.2.3| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| Reserved | 16 | uimsbf | 0xFFFF | 7.2.3.3 | |
| messageSize | 16 | uimsbf | 7.2.3.3 | ||
| protocol_version | 8 | uimsbf | 0x00 | 7.2.3.3 | |
| AS_index | 8 | uimsbf | 7.2.3.3 | ||
| message_number | 8 | uimsbf | 7.2.3.3 | ||
| DPI_PID_index | 16 | uimsbf | 7.2.3.3 | ||
| SCTE35_protocol_version | 8 | uimsbf | 0x00 | 7.2.3.3 | |
| timestamp()invokes timestamp | varies | structure | 7.2.3.3 | ||
| num_ops | 8 | uimsbf | 7.2.3.3 | ||
| opID | 16 | uimsbf | for (i=0; i<num_ops; i++) | 7.2.3.3 | |
| data_length | 16 | uimsbf | for (i=0; i<num_ops; i++) | 7.2.3.3 | |
| data() | varies | structure | for (i=0; i<num_ops; i++); length = data_length | 7.2.3.3 |
time()
11.4| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| seconds | 32 | uimsbf | 11.4.1 | ||
| microseconds | 32 | uimsbf | 11.4.1 |
timestamp()
11.5| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| time_type | 8 | uimsbf | 11.5.1 | ||
| UTC_seconds | 32 | uimsbf | if time_type == 1 | 11.5.1 | |
| UTC_microseconds | 16 | uimsbf | if time_type == 1 | 11.5.1 | |
| hours | 8 | uimsbf | if time_type == 2 | 11.5.1 | |
| minutes | 8 | uimsbf | if time_type == 2 | 11.5.1 | |
| seconds | 8 | uimsbf | if time_type == 2 | 11.5.1 | |
| frames | 8 | uimsbf | if time_type == 2 | 11.5.1 | |
| GPI_number | 8 | uimsbf | if time_type == 3 | 11.5.1 | |
| GPI_edge | 8 | uimsbf | if time_type == 3 | 11.5.1 |
init_request_data()
8.1.1No fields are listed for this structure.
init_response_data()
8.1.2No fields are listed for this structure.
alive_request_data()
8.2.1| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| time()invokes time | 64 | structure | optional; required when the multiple_operation_message() timestamp() time_type is non-zero | 8.2.1.1 |
alive_response_data()
8.2.2| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| time()invokes time | 64 | structure | optional; required when the multiple_operation_message() timestamp() time_type is non-zero | 8.2.2.1 |
splice_request_data()
8.3.1| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| splice_insert_type | 8 | uimsbf | 0x01-0x05 (0x00 reserved) | 8.3.1.1 | |
| splice_event_id | 32 | uimsbf | 8.3.1.1 | ||
| unique_program_id | 16 | uimsbf | 8.3.1.1 | ||
| pre_roll_time | 16 | uimsbf | 8.3.1.1 | ||
| break_duration | 16 | uimsbf | 8.3.1.1 | ||
| avail_num | 8 | uimsbf | 8.3.1.1 | ||
| avails_expected | 8 | uimsbf | 8.3.1.1 | ||
| auto_return_flag | 8 | uimsbf | 8.3.1.1 |
encrypted_DPI_request_data()
8.4.2| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| encryption_algorithm | 8 | uimsbf | 8.4.2.1 | ||
| CW_index | 8 | uimsbf | 8.4.2.1 |
update_ControlWord_data()
8.4.3| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| CW_index | 8 | uimsbf | 8.4.3.1 | ||
| CW_A | 64 | uimsbf | 8.4.3.1 | ||
| CW_B | 64 | uimsbf | 8.4.3.1 | ||
| CW_C | 64 | uimsbf | 8.4.3.1 |
delete_ControlWord_data()
8.4.4| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| CW_index | 8 | uimsbf | 8.4.4.1 |
component_mode_DPI_request_data()
8.5.1| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| component_tag | 8 | uimsbf | for (i=0; i<N; i++) | 8.5.1.1 | |
| component_preroll | 16 | uimsbf | for (i=0; i<N; i++) | 8.5.1.1 |
general_response_data()
8.6.1No fields are listed for this structure.
inject_response_data()
8.6.2| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| message_number | 8 | uimsbf | 8.6.2.1 |
inject_complete_response_data()
8.6.3| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| message_number | 8 | uimsbf | 8.6.3.1 | ||
| cue_message_count | 8 | uimsbf | 8.6.3.1 |
start_schedule_download_request_data()
8.7.1| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| num_provider_avails | 8 | uimsbf | 8.7.1 | ||
| provider_avail_id | 32 | uimsbf | for (i=0; i<num_provider_avails; i++) | 8.7.1 |
schedule_definition_data()
8.7.2| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| splice_schedule command | 8 | uimsbf | 8.7.2.1 | ||
| splice_event_id | 32 | uimsbf | 8.7.2.1 | ||
| time()invokes time | 32 | structure | 8.7.2.1 | ||
| unique_program_id | 16 | uimsbf | 8.7.2.1 | ||
| auto_return | 8 | uimsbf | 8.7.2.1 | ||
| break_duration | 16 | uimsbf | 8.7.2.1 | ||
| avail_num | 8 | uimsbf | 8.7.2.1 | ||
| avails_expected | 8 | uimsbf | 8.7.2.1 |
schedule_component_mode_request_data()
8.7.3| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| component_tag | 8 | uimsbf | for (i=0; i<N; i++) | 8.7.3.1 | |
| time()invokes time | varies | structure | for (i=0; i<N; i++) | 8.7.3.1 |
transmit_schedule_request_data()
8.7.4| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| cancel | 8 | uimsbf | 8.7.4.1 |
time_signal_request_data()
8.8.1| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| pre-roll_time | 16 | uimsbf | 8.8.1.1 |
splice_null_request_data()
8.8.2No fields are listed for this structure.
inject_section_data_request()
8.8.3| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| SCTE35_command_length | 16 | uimsbf | 8.8.3.1 | ||
| SCTE35_protocol_version | 8 | uimsbf | 8.8.3.1 | ||
| SCTE35_command_type | 8 | uimsbf | 8.8.3.1 | ||
| SCTE35_command_contents() | varies | structure | length = SCTE35_command_length | 8.8.3.1 |
insert_avail_descriptor_request_data()
8.8.4| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| num_provider_avails | 8 | uimsbf | 8.8.4.1 | ||
| provider_avail_id | 32 | uimsbf | for (i=0; i<num_provider_avails; i++) | 8.8.4.1 |
insert_descriptor_request_data()
8.8.5| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| descriptor_count | 8 | uimsbf | 8.8.5.1 | ||
| descriptor_image() | varies | structure | for (i=0; i<descriptor_count; i++) | 8.8.5.1 |
insert_DTMF_descriptor_request_data()
8.8.6| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| pre-roll | 8 | uimsbf | 8.8.6.1 | ||
| dtmf_length | 8 | uimsbf | 8.8.6.1 | ||
| DTMF_char | 8 | uimsbf | for (i=0; i<dtmf_length; i++) | 8.8.6.1 |
insert_segmentation_descriptor_request_data()
8.8.7| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| segmentation_event_id | 32 | uimsbf | 8.8.7.1 | ||
| segmentation_event_cancel_indicator | 8 | uimsbf | 8.8.7.1 | ||
| duration | 16 | uimsbf | 8.8.7.1 | ||
| segmentation_upid_type | 8 | uimsbf | 8.8.7.1 | ||
| segmentation_upid_length | 8 | uimsbf | 8.8.7.1 | ||
| segmentation_upid | N*8 | uimsbf | length = segmentation_upid_length | 8.8.7.1 | |
| segmentation_type_id | 8 | uimsbf | 8.8.7.1 | ||
| segment_num | 8 | uimsbf | 8.8.7.1 | ||
| segments_expected | 8 | uimsbf | 8.8.7.1 | ||
| duration_extension_frames | 8 | uimsbf | 8.8.7.1 | ||
| delivery_not_restricted_flag | 8 | uimsbf | 8.8.7.1 | ||
| web_delivery_allowed_flag | 8 | uimsbf | 8.8.7.1 | ||
| no_regional_blackout_flag | 8 | uimsbf | 8.8.7.1 | ||
| archive_allowed_flag | 8 | uimsbf | 8.8.7.1 | ||
| device_restrictions | 8 | uimsbf | 8.8.7.1 |
proprietary_command_request_data()
8.8.8| Field | Bits | Type | Constraint | Condition | Clause |
|---|---|---|---|---|---|
| proprietary_id | 32 | uimsbf | 8.8.8 | ||
| proprietary_command | 8 | uimsbf | 8.8.8 | ||
| proprietary_data() | varies | structure | for (i=0; i<data_length-5; i++) | 8.8.8 |