All notable changes to this project will be documented in this file.
- feat: add docker matrix build to support arm64
- fix(webm): split seqnum tracking for A/V, muffle discont logs
- build(docker): remove QEMU setup from publish Docker workflow
- fix: panic when stopping a mediasoup adapter recording
- fix: unnecessary init of LK adapter fields when using mediasoup
- build(docker): bump golang from 1.24 to 1.25
- feat: add getRecordings API
- feat: add support for opaque session metadata
- feat: new Histogram metric
livekit_connect_duration_seconds - feat: new Histogram metric
livekit_subscribe_duration_seconds
- feat: new Histogram metric
request_duration_seconds - feat: new counter metric
session_errors_total - fix: command processing is inefficient and causes lockups, rework it
- fix: don't emit stop event for sessions that have not started
- test: add double (trailing) start/stop tests to server.go
- test: regression test for stop events for non-started sessions
- feat(livekit): generation of rtpdump files for recorded tracks
- fix(mediasoup): stop event triggered by flowing=false if adapter is closed
- feat: boot sequence health check and Prometheus health metrics
- feat: report readiness via sd_notify
- build: upgrade to Pion v4 (fixes periodic freezes/tuple restarts)
- feat(livekit): add Prom counters for reconnects and sub failures
- fix(livekit): guarantee cleanup on start recording failures
- fix(livekit): fix deadlock with jitterbuffer usage
- fix(livekit): handle track subscription failures
- fix(livekit): use tokens for connecting to a room
- fix(livekit): handle track EOF errors
- fix(livekit): reject requests when no track is available
- fix(livekit): reject requests when not all tracks are subscribed
- fix(livekit): add panic recovery when pushing packets
- fix(livekit): copy audio pkts before pushing to samplebuilder
- build(deps): bump actions/setup-go from 4 to 5
- fix(livekit): prevent duplicate stop events
- fix(livekit): deadlock on GetStats call
- fix: inconsistent active_tracks metric
- feat: extend RPCs to support different recording adapters
- feat(livekit): initial support for recording LiveKit tracks (audio, video, screen)
- feat(livekit): implement RTP status change events
- feat: write capture stats to file
- feat(livekit): add writer-level stats
- feat(livekit): add extended Prometheus metrics for adapter/recorder stats
- feat: implement active_tracks Prom metric
- feat: implement in/out/invalid request metrics
- fix: failing jitterbuffer tests
- fix: startRecording did not reject unknown adapters
- fix: add graceful shutdown
- fix: retry Redis reconn if it drops
- fix(livekit): properly handle RTP read errors, add metrics for them
- fix: normalize webrtc.go to use receivers as pointers
- fix: errcheck and log config unmarshal failures
- build: remove ebml-go mirror, use upstream v0.17.1
- build: add basic golangci-lint workflow
- build: add a workflow for
go test - refactor: make log.level configurable, remove debug var
- build: Automatic build pipeline for docker images
- build: update Dockerfile to match bigbluebutton/docker's
- build: remove broken package workflow
- fix: multiple adjusments to VP8 sample building in the WebM recorder
- fix: multiple adjustments to packet loss handling
- fix: better pts generation for video samples
- fix: edge case adjusments to RTP jitter buffer and receive log
- chore: change default JB size
- feat: add option to write IVF copies of recorded streams
- feat: add option to use alternative video sample builder
- feat: make jb packet timeout configurable
- feat: make EBML max write queue sizes configurable
- build: use Galene's samplebuilder instead of Pion's
- build: sync ebml-go with upstream (4b8f657f0)
- fix: panic due to invalid OPUS samples pushed to builder
- build(docker): go 1.21
- build: bump pion/webrtc/v3 to v3.2.24
- feat: recorder.writeToDevNull option to write files to /dev/null (testing)
- fix: panic due to negative seqnums in sequence unwrapper
- fix: lock EBML write and close ops
- Fixes a crash
- build(docker): separate build and run stages, add APP version arg
- fix: add onStart param to Subscribe call in http module
- feat: add getRecorderStatus/recorderStatus RPCs
- fix: change file mode of rec dir in nfpm scripts to 0700
- fix: change to working env prefix BBBRECORDER_, add docs on env vars
- fix: split dir and file modes, make the configs string
- feat: add recorder.fileMode config
- fix: create media files with perm 0700
- fix: only generate audio tracks if peer has audio
- feat: add basic Prometheus instrumentation
- fix: CPU lock when reading packets from JB
- build: add basic Dockerfile
- First release