Skip to content

HlsDriver

Source: HlsDriver.h

HlsDriver

class HlsDriver
src/light/drivers/HlsDriver.h:55

Inherits: 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"