feat(whip): wire WHIPHandler into API — struct field, MergedHooks, NewWHIPHandler, serverConfig, cleanup
Some checks failed
ci / vet + build (push) Failing after 5m0s
ci / race tests (push) Has been skipped
ci / WebRTC smoke (5-viewer fanout) (push) Has been skipped
ci / WebRTC latency p95 gate (push) Has been skipped

This commit is contained in:
Zac Gaetano 2026-05-09 16:46:49 -04:00
parent 7f545962f6
commit 4ac63ddfc6

View file

@ -76,6 +76,7 @@ type api struct {
srtserver srt.Server srtserver srt.Server
webrtcsub *appwebrtc.Subsystem webrtcsub *appwebrtc.Subsystem
webrtchandler *appwebrtc.Handler webrtchandler *appwebrtc.Handler
whiphandler *appwebrtc.WHIPHandler
metrics monitor.HistoryMonitor metrics monitor.HistoryMonitor
prom prometheus.Metrics prom prometheus.Metrics
service service.Service service service.Service
@ -632,9 +633,10 @@ func (a *api) start() error {
if werr != nil { if werr != nil {
a.log.logger.core.Warn().WithError(werr).Log("WebRTC subsystem disabled: construction failed") a.log.logger.core.Warn().WithError(werr).Log("WebRTC subsystem disabled: construction failed")
} else { } else {
a.restream.SetHooks(webrtcSub.Hooks()) a.restream.SetHooks(webrtcSub.MergedHooks())
a.webrtcsub = webrtcSub a.webrtcsub = webrtcSub
a.webrtchandler = appwebrtc.NewHandler(webrtcSub, 0) a.webrtchandler = appwebrtc.NewHandler(webrtcSub, 0)
a.whiphandler = appwebrtc.NewWHIPHandler(webrtcSub, 0)
} }
} }
@ -1036,6 +1038,7 @@ func (a *api) start() error {
RTMP: a.rtmpserver, RTMP: a.rtmpserver,
SRT: a.srtserver, SRT: a.srtserver,
WebRTC: a.webrtchandler, WebRTC: a.webrtchandler,
WHIP: a.whiphandler,
JWT: a.httpjwt, JWT: a.httpjwt,
Config: a.config.store, Config: a.config.store,
Sessions: a.sessions, Sessions: a.sessions,
@ -1382,6 +1385,10 @@ func (a *api) stop() {
a.webrtchandler.Close() a.webrtchandler.Close()
a.webrtchandler = nil a.webrtchandler = nil
} }
if a.whiphandler != nil {
a.whiphandler.Close()
a.whiphandler = nil
}
if a.webrtcsub != nil { if a.webrtcsub != nil {
a.webrtcsub.Close() a.webrtcsub.Close()
a.webrtcsub = nil a.webrtcsub = nil