/** * fc_writer.h — Lightweight framecache slot writer for deltacast-bridge. * * Registers a slot with the framecache HTTP API on signal lock, then writes * raw UYVY422 frames directly into the shared memory ring buffer. * * Compile with -DLEGACY_FIFO to disable shm writes and fall back to the * original named-FIFO path (useful during transition / on nodes without the * framecache container running). */ #pragma once #include #include #ifdef __cplusplus extern "C" { #endif typedef struct fc_writer fc_writer_t; /** * Register a slot with the framecache service and open the shm region for * writing. fc_url is the HTTP base URL, e.g. "http://localhost:7435". * slot_id must be unique per port, e.g. "deltacast-0-3" (device-port). * * Returns writer handle on success, NULL on failure (falls back to FIFO). */ fc_writer_t *fc_writer_open(const char *fc_url, const char *slot_id, uint32_t width, uint32_t height, uint32_t fps_num, uint32_t fps_den); /** * Write one raw UYVY422 frame into the ring buffer. * Non-blocking — slow consumers are skipped, not waited on. * pts_us: presentation timestamp in microseconds (0 if unknown). */ void fc_writer_write(fc_writer_t *w, const uint8_t *data, uint32_t size, uint64_t pts_us); /** * Deregister slot from framecache service and unmap shm. */ void fc_writer_close(fc_writer_t *w); #ifdef __cplusplus } #endif