8c7abbc4e8
release / build runtime Docker image (push) Failing after 1s
release / build source tarball (push) Successful in 5s
build / cmake build (CUDA 12.4, Ubuntu 22.04) (push) Successful in 1m40s
build / ffmpeg filter patch (out-of-tree) (push) Successful in 1m22s
test-u4-runner / u4 runner smoke test (push) Has been cancelled
Protocol bump V2→V3:
+ shm header: cudaIpcEventHandle_t slot_event_handles[CUFRAMES_MAX_RING]
+ producer creates ring_size events (вместо одного global)
+ producer.do_publish records event[slot] (вместо pub->event)
+ consumer opens all slot events при subscribe
+ consumer waits event[slot_idx] specifically (вместо global producer_event)
Backward compat:
- Legacy pub->event сохранён + ipc_event_handle export'ится — v0.2 consumers
видят его и работают по-старому (с post-sync verify hack из 517107d).
- v0.3 consumer auto-detects proto_version >= 3, fallback к legacy если
cudaIpcOpenEventHandle на slot fail (graceful degradation).
Effect (15-sec sample на Phase 7 single-cam, motion):
v0.1 production: dup runs 34.7%, max 14 frames (560ms freeze)
v0.2.1 fix: dup runs 10%, max 6, 0 back-jumps detected
v0.3 per-slot: dup runs 1.9%, max 5, 3 back-jumps (likely encoder
static-content artifacts, not real race)
Размер shm header: 7424 → 8448 bytes (+1024 для slot_event_handles).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>