HlsDriver
Source:
HlsDriver.h
HlsDriver¶
src/light/drivers/HlsDriver.h:55Inherits:
DriverBase
Driver that publishes the layer as an H.264/HLS stream.
Public Attributes¶
uint8_t scale = 0
: Video pixels per light, 0 = auto (see autoScale).
uint8_t targetFps = 30
: Encode-rate ceiling; the render loop runs faster and extra frames are not encoded.
uint8_t encoderSel_ = 0
: The ffmpeg encoder pick; hardware entries offload the encode (see the control's comment).
Public Methods¶
inline HlsDriver()
virtual inline const char * tags() const override
: Curated emoji tags for the module picker's chip filter — extras beyond the role chip (which the UI derives from role() on its own).
virtual inline void setSourceBuffer(Buffer * buf) override
virtual inline void defineDriverControls() override
: A driver's own controls (its pins, protocol, IP, window, …), added AFTER the correction block.
virtual inline bool affectsPrepare(const char * name) const override
: A pacing or rate change needs a new encode (ffmpeg fixes both at spawn); geometry changes arrive through [prepare()] already.
virtual inline void prepare() override
: Tier-3 of the control-change split (see onControlChanged above): the module (re)allocates / recomputes whatever derived state it owns — an effect's heap, a Layer's mapping LUT, the Drivers output buffer.
virtual inline void release() override
: Clear every shared status string on release — fail buffer, config error, and config warning — so a stopped driver leaves nothing behind (frees the owned failBuf_; retracts the warning the same "clear only MY status" way as the error), then chain to MoonModule::release() so any ScratchBuffer the driver holds frees on disable and children recurse.
virtual inline void tick() override
virtual inline void tick1s() override
Public Static Attributes¶
constexpr const char * kTags = "🖥️"
constexpr const char * kSegmentDir = "/.hls"