Once the webhook interface carries bumperUrl/bumperDurationMs, build the stitch payload so a bumper is inserted as a non-ad segment (no ad-avail markers), distinct from an ad break.
BLOCKED BY: Eyevinn/lambda-stitch#18 ("Stitch segment that is not a break"), which is still OPEN and not yet shipped. lambda-stitch main currently only supports a breaks[] array; the proposed segments[] array does not exist yet. Do not start until lambda-stitch#18 is merged and the deployed stitch endpoint accepts segments.
Scope once unblocked:
- Extend
StitchPayload in src/plugins/interface.ts with an optional segments?: StitchPayloadBreak[] (matching the shape lambda-stitch#18 lands on).
- In
src/plugins/utils.ts, extend/refactor getVodUrlWithPreroll (or add a sibling helper) so that when a bumper is present it is emitted in segments rather than breaks, while preroll continues to go into breaks (or confirm preroll's correct placement).
- Define and document bumper placement semantics:
pos of the bumper (0 vs. after preroll), and how bumper + preroll + ad breaks combine, per the example payload in lambda-stitch#18.
- Wire
getNextVod in src/plugins/plugin_webhook.ts to pass bumper fields into the payload builder.
- Add tests in
src/plugins/plugin_webhook.test.ts asserting the serialized payload contains the bumper as a segment (not a break) and no ad-avail treatment.
Context: required to resolve EyevinnOSC/community#30.
Split from #47 by daily-backlog-pr triage.
Once the webhook interface carries
bumperUrl/bumperDurationMs, build the stitch payload so a bumper is inserted as a non-ad segment (no ad-avail markers), distinct from an ad break.BLOCKED BY: Eyevinn/lambda-stitch#18 ("Stitch segment that is not a break"), which is still OPEN and not yet shipped. lambda-stitch main currently only supports a
breaks[]array; the proposedsegments[]array does not exist yet. Do not start until lambda-stitch#18 is merged and the deployed stitch endpoint acceptssegments.Scope once unblocked:
StitchPayloadinsrc/plugins/interface.tswith an optionalsegments?: StitchPayloadBreak[](matching the shape lambda-stitch#18 lands on).src/plugins/utils.ts, extend/refactorgetVodUrlWithPreroll(or add a sibling helper) so that when a bumper is present it is emitted insegmentsrather thanbreaks, while preroll continues to go intobreaks(or confirm preroll's correct placement).posof the bumper (0 vs. after preroll), and how bumper + preroll + ad breaks combine, per the example payload in lambda-stitch#18.getNextVodinsrc/plugins/plugin_webhook.tsto pass bumper fields into the payload builder.src/plugins/plugin_webhook.test.tsasserting the serialized payload contains the bumper as a segment (not a break) and no ad-avail treatment.Context: required to resolve EyevinnOSC/community#30.
Split from #47 by daily-backlog-pr triage.