SCTE 104/35 Codex
The segmentation descriptor model
10.3.3The segmentation_descriptor is the workhorse of modern SCTE 35, most often attached to a time_signal, though it may also ride on a splice_insert or a splice_null, to mark boundaries such as program starts, chapters, breaks, and ad opportunities. Each descriptor names an event with a segmentation_event_id, states what kind of boundary it is with segmentation_type_id, and usually carries a UPID identifying the content. Many types come as start and end pairs sharing an event id, but some are unpaired. An optional duration hints when a segment should end. A receiver normally waits for the actual end message rather than inferring an end from the duration alone, though some segmentation types do allow a signaled duration to terminate the segment (clause 10.3.3.8). In SCTE 35 2011 a segmentation descriptor could ride only on a time_signal or a splice_null (clause 8.3.3); carriage on a splice_insert was permitted starting in 2012.