SCTE 104/35 Codex
Pre-roll timing
12.3Pre-roll is the Injector's lead time from when it injects the SCTE 35 section to the actual splice point, giving downstream equipment time to react. It is separate from two other timings. First, the request itself can be delivered to the Injector well ahead of time over the link. Second, a multiple_operation_message carries a timestamp() that sets when the Injector processes those operations, either immediately for time_type 0 or at an exact UTC, VITC, or GPI moment for a deferred trigger. Only once the message is processed and the section injected does pre_roll_time apply, as the delay from that injection to the splice point. In a splice_request the pre_roll_time is given in milliseconds, and this interface sets a minimum non-zero value of 4000 milliseconds to match SCTE 35 and SCTE 67 guidance. A pre-roll of zero on a normal splice request causes the Injector, outside Component Mode, to set splice_immediate_flag in the resulting SCTE 35 section, producing an immediate splice. Zero is intended for the immediate splice_insert_type operations; a spliceEnd_normal request is expected to carry a non-zero pre-roll rather than zero. That is a separate control from timestamp() immediate mode (time_type 0), which governs when the request itself is processed. Pre-roll is ignored entirely for the immediate and cancel splice_insert_type operations. In the 2004-2014 editions the minimum pre-roll is clause 11.3 rather than 12.3.