Releases: nilstate/icey
Releases · nilstate/icey
icey 2.4.5
Fixed
- System-dependency builds no longer vendor and install
nlohmann/json.hpp, avoiding conflicts with downstream package managers that already providenlohmann-json - Exported CMake package configs now propagate the
nlohmann_jsondependency when system deps are enabled
icey 2.4.4
Added
- Realtime intelligence pipeline primitives in the
visionmodule, including frame normalization for detector-ready frames - WebRTC receive jitter buffer for smoother inbound media playback
- API reference docs for graft, speech, and vision modules
- Markdown sanitization script for generated API docs
- Permanent macOS system-deps + FFmpeg CI coverage matching downstream package-manager builds
Changed
- Doxygen config updated for new module coverage
- Docs now use latest sourcey toolchain
- Module guide updated with graft, speech, vision entries
Removed
- pluga module and docs (replaced by graft)
Fixed
- Apple AVFoundation source compatibility for package-manager builds on modern macOS SDKs
- Darwin shared-library symbols are preserved for downstream package-manager builds
icey 2.4.3
Fixed
- Downstream package-manager builds now resolve
libuvcorrectly when the system dependency is exported as a shared target instead of a static-only alias - RPM source-package staging now carries the downstream compatibility patch set and claims the installed umbrella and vendored JSON headers in the development package
- MacPorts builds now force the supported
ReleaseCMake build type instead of inheriting the unsupported default from the port group - The GitHub release workflow now validates the pre-finalize tag state, so tagged releases can publish before
make release-finalizepins the archive hashes onmain
2.4.2
Fixed
- Package-manager builds now accept the shared
libuv::uvtarget exported byvcpkgand other system package layouts. - Windows consumers no longer rely on backported export/linkage fixes for
Timeout,PacketFactory,Transaction, and the baseuvwrapper templates. - FFmpeg-backed builds now propagate discovered library search directories so Windows link steps can resolve
avcodec.liband related FFmpeg libraries.
2.4.1
Changed
- Release tooling now treats Conan like the rest of the package-manager surfaces:
make releaseseedspackaging/conan/conandata.ymlmake release-finalizepins the tagged archive hash and runs the final consistency check
- The documented release flow is now explicit about the post-tag finalize step instead of suggesting a pre-tag
release-checkthat could only fail on placeholder hashes
Fixed
- Alpine system-package builds now accept the shared
llhttptargets exported by Alpine'sllhttp-devpackage instead of hard-linkingllhttp_static - The local Conan recipe now builds from immutable tagged GitHub archives instead of exporting a live checkout into the package
icey 2.4.0
Added
- Repo-local package manager layouts under
packaging/withmake package-conanandmake package-vcpkgentry points for local consumer validation - Homebrew tap formulae, Debian / PPA source-package scaffolding, and release hooks for those package surfaces
- Browser smoke coverage for the
src/webrtc/apps/media-server/web/frontend and media-server interop path - Reportable microbenchmark runner plus focused parse/probe benches for packet stream, HTTP, WebSocket, and STUN hot paths
- Focused
webrtcbenchandsymplebenchtargets covering:- WebRTC sender dispatch
- WebRTC receiver dispatch
- Symple room fanout
- Symple client parse/dispatch
- API overview quality checks in the docs toolchain to catch shallow or missing generated reference summaries
- Internal Symple protocol/state helpers for welcome parsing, sanitized presence emission, room reconciliation, and roster presence application, backed by focused unit coverage
webrtc_supportas a dedicated support library for Symple/WebSocket signallers, including the server-side virtual-peer adapter now used by samples andmedia-server
Changed
- WebRTC browser/media-server behavior after 2.3.0: codec negotiation is tighter, browser offer handling is stricter, and
PeerSession/ track flow is more defensive under real browser traffic - Public package, docs, and sample surface now use lowercase
iceyconsistently, with no retainedIceyCMake/package-manager naming - Public lifecycle verbs are now standardized on
start()/stop()across HTTP client/server, Symple client/server, and TURN client surfaces; the previous spellings were removed instead of being kept as compatibility aliases - WebRTC internals are now cut along explicit seams instead of monolithic translation units:
PeerSessionstate/signalling/RTC work is split acrosspeersession.cpp,peersessionsignalling.cpp, andpeersessionrtc.cpp- remote answer scoping lives in
remotemediaplan.cpp - codec support is centralized in
codecregistry.cpp media-serverruntime code is split underapps/media-server/internal/
- Public Symple and TURN configuration handoff now favors value-style option snapshots instead of live mutable option bags
- Public option mutation is now explicit on package-manager surfaces via
mutableOptions(), while the public AV encoder interfaces expose const option views PeerSession::Confignow exposes media settings underconfig.media, and answer-session media options are derived explicitly from the remote offer's mids, directions, and payload types instead of relying on looser implicit defaults- Symple client/server internals are now organized under
src/symple/src/client/andsrc/symple/src/server/, with shared wire helpers insrc/symple/src/protocol.* - API reference coverage has been deepened across the core modules, WebRTC, and the pacm/pluga surfaces, with reorganized Sourcey guides and workflows
- icey docs now consume published
moxygen/sourceynpm releases instead of git-pinned or exact-pinned toolchain versions - Packaging assets are centralized under
packaging/instead of spreading Conan and vcpkg files across the repo root - Installed
icey.pcmetadata now uses the current package-manager-facing description instead of the old networking-only tagline - Browser support claims are now explicit:
- Chromium and Firefox are validated by the committed Playwright smoke
- Playwright WebKit on Linux is treated as non-authoritative for Safari/WebRTC publish-path claims
Fixed
- Exported CMake package consumers now tolerate dependency target-name differences across FetchContent, Conan, and vcpkg installs
- Repo-local Conan and vcpkg packaging validation now passes sequentially, and installed
icey.hheaders no longer leak absolute build/source paths - Browser media-server smoke harness failures and related WebRTC sample pipeline regressions that were blocking stricter interop coverage
- Symple-backed WebRTC signalling now enforces full
user|idpeer identity on the public call boundary instead of accepting ambiguous bare user/session forms - WebRTC receive-side codec detection no longer stringifies track descriptions back into SDP just to rediscover codec/clock data on bind or record paths
- Symple clients now transition cleanly to
Erroron underlying transport failures, including initial WebSocket connect failures, via explicithttp::ClientConnectionerror propagation - pacm JSON handling in the submodule update path, keeping the external package-manager surface aligned with the current docs/API snapshots