Repository navigation
obs-moq v0.6.17
·
966 commits
to main
since this release
What's Changed
- fix(ffi): refuse destroyed binding arguments by @kixelated in #5644
- feat(quic)!: run moq-tokio and moq-uring on moq-quic by @kixelated in #5664
- quest(test): abandon the unreproduced auth serve signal flake by @kixelated in #5707
- fix(moq-mux): judge a source's clock on slack the floors saw by @kixelated in #5714
- feat(js)!: read time and arm timers through @moq/clock by @kixelated in #5706
- quest: abandon moq-transport subgroups by @kixelated in #5704
- test(cli): keep the TS resume capture on its media clock by @kixelated in #5710
- feat(relay): expose announce metrics by @kixelated in #5696
- quest: settle stats prefix track wire shape by @kixelated in #5719
- docs(quest): finish the hard fork epic by @kixelated in #5728
- fix: preserve internal teardown and import error causes by @kixelated in #5692
- bench(net): measure group delivery and retire a no-win refresh candidate by @kixelated in #5698
- fix(publish): stamp a resumed video reader's first frame on the capture clock by @kixelated in #5712
- quest: plan Platform queue fixes and fail-loud follow-ups by @kixelated in #5737
- perf(net): count track demand incrementally by @kixelated in #5670
- fix(watch): drop video queued before a playhead skip by @kixelated in #5649
- feat(hls)!: serve range-addressed playlists by @kixelated in #5705
- fix(tokio): reload TLS only when the watched files change by @kixelated in #5716
- feat(archive)!: record and replay untimed tracks untimed by @kixelated in #5720
- test(net): pin draft-16 refusal of moxygen's unregistered filter type by @kixelated in #5709
- fix(video): trim orphan leading pictures after delivery breaks by @kixelated in #5666
- fix(net): prove native futures Send at the default recursion limit by @kixelated in #5682
- fix(publish): propagate camera rotation by @kixelated in #5646
- quest: settle private PES timing and headers by @kixelated in #5718
- fix(ts): keep the program tables within TBsys and Bsys by @t0ms in #5606
- feat(quic): hold connection credit until the receiver releases it by @kixelated in #5675
- fix(quic): fail a dial at once when the peer has no route by @kixelated in #5668
- ci: drop disk cleanup and skip the Rust cache for lint-only runs by @kixelated in #5683
- quest: plan per-package MIGRATE.md and the release API-diff check by @kixelated in #5742
- quest: plan unbounded groups and frames by @kixelated in #5750
- docs(quest): narrow the next release and reconcile stale plans by @kixelated in #5679
- fix(auth): distinguish expired credentials by @kixelated in #5641
- fix(ts): start an export on a whole group and count every drop by @kixelated in #5713
- quest(m1): plan the public model surface by @kixelated in #5717
- docs: note that release is stable and packages follow semver by @kixelated in #5754
- quest: plan a minimum reader version for the hang catalog by @kixelated in #5756
- fix(play): never resubscribe to a track that already finished by @kixelated in #5764
- feat(quic)!: shard the relay's QUIC endpoint per core by default by @kixelated in #5688
- feat(quic)!: reliable reset from a send-stream checkpoint by @kixelated in #5690
- quest(m1): plan a regression net for moq-quic by @kixelated in #5767
- test: link each crate's integration tests into one binary by @kixelated in #5689
- fix(sock): gate the Linux-only shard test helper by @kixelated in #5769
- test(browser): run media QA with alternate player engines by @kixelated in #5640
- chore(quest): close merged bench bucket backport by @kixelated in #5738
- bench(net): give held readers distinct demand preferences by @kixelated in #5747
- quest: reopen the WASM IETF read and BBR marking flakes by @kixelated in #5751
- docs(agents): prioritize moq-net and moq-lite over moq-transport by @kixelated in #5753
- build(rs): add
just rs coverageand a nightly moq-quic report by @kixelated in #5772 - fix(quic): announce stream limits that arrive after a refused open by @kixelated in #5774
- feat(ffi)!: namespace native codecs by @kixelated in #5694
- quest: stats tracks fail loud on an oversized frame by @kixelated in #5739
- test(relay): reserve the unavailable auth endpoint by @kixelated in #5768
- chore(uniffi-bindgen): skip the generator fork in a plain check by @kixelated in #5776
- test(quic): fuzz moq-quic like moq-net by @kixelated in #5779
- fix(gst): never resubscribe to a track that already finished by @kixelated in #5775
- test: link the remaining multi-file test suites into one binary by @kixelated in #5787
- quest(m1): plan refresh, new groups on demand by byte ratio by @kixelated in #5734
- docs(quest): finish WebTransport refusal delivery verification by @kixelated in #5743
- quest(m0): finish the Kotlin wrapper POM release by @kixelated in #5789
- Enforce fetch age budgets by @kixelated in #5680
- fix(watch,publish): keep the delay across a rename and close frames read during teardown; cover renames in media QA by @kixelated in #5635
- chore(moq-ffi): drop unused uniffi build-dependency by @kixelated in #5786
- refactor(quic)!: delete the unused NewReno controller by @kixelated in #5791
- quest(m0): finish smoke-stitcher by @kixelated in #5793
- feat(quic)!: hierarchical send groups, one per subscription by @kixelated in #5711
- ci(dart): build moq-ffi once in the Dart check by @kixelated in #5797
- fix(net): judge a pending tail by recorded arrivals, and error a short one by @kixelated in #5802
- quest(ci): record the first Nightly after FFI reuse by @kixelated in #5799
- fix(ts): hold audio behind a stale start group's next keyframe by @kixelated in #5810
- quest: pin benchmark cores and fold moq-quic into bench CI by @kixelated in #5814
- quest(m1): plan the audio rename estimate and the update-after-finish race by @kixelated in #5788
- test(net): cover a repeated Lite SETUP parameter by @kixelated in #5790
- bench(quic): Criterion sweeps of streams, receive, routing, and wire by @kixelated in #5812
- feat(hang): define media stats and viewer feedback schemas by @kixelated in #5643
- feat(auth): carry nested bitrate caps and refuse unenforced grants by @kixelated in #5697
- feat(archive)!: declare per-track durations by @kixelated in #5715
- fix(ietf): refuse a compact-form subgroup other than 0 by @kixelated in #5792
- fix(net): close the session on malformed moq-transport input by @kixelated in #5800
- quest(m2): map GPU health sources and settle the snapshot API by @kixelated in #5730
- fix(shaper): keep forwarding after a peer's port goes away by @kixelated in #5796
- test(ts): grade the export over a lossy path, finish the T-STD epic by @kixelated in #5805
- quest(m1): build TS recovery on #5713's whole-group start by @kixelated in #5746
- test(quic): seeded, impaired simulation in Pair, BBR3 by default, and property tests by @kixelated in #5780
- chore(quest): finish one enter per turn by @kixelated in #5813
- feat(net): bare track handles are lazy by @kixelated in #5820
- fix(play)!: drain clean encoder segments before resuming by @kixelated in #5687
- fix(audio-quality): flush the build before the first row by @kixelated in #5807
- fix(stats): end a stats track whose frame outgrows the cache by @kixelated in #5826
- fix(ci): limit Discord alerts to cron and publishing failures by @kixelated in #5828
- fix(import): require a servable track before announcing by @kixelated in #5642
- quest: delete the refusal-close release backport quests by @kixelated in #5831
- test(net): verify the front expiry index and close its duplicate quest by @kixelated in #5763
- feat(quic)!: schedule datagrams in their send group by @kixelated in #5770
- feat(obs): back an internal Opus encoder with moq-audio by @kixelated in #5835
- feat(obs): decode MoQ Source audio with moq-audio instead of FFmpeg by @kixelated in #5837
- feat(cpp): reuse validated shared FFI native inputs by @kixelated in #5740
- fix(net): a subscribe update racing a finished track ends it cleanly by @kixelated in #5833
- quest(m1): plan fuzz crypto, richer sim workloads, and a relay drill flake by @kixelated in #5785
- ci(nightly): split the Rust benchmarks into two legs by @kixelated in #5823
- fix(watch): keep the audio arrival estimate across a rename by @kixelated in #5824
- feat(net): relay moq-transport NEW_GROUP_REQUEST to DYNAMIC_GROUPS publishers by @kixelated in #5708
- quest: prove complete and fresh route handoff by @kixelated in #5701
- feat(hang): video rendition preference by @kixelated in #5840
- doc(lib): a layers page maps each Rust crate to every binding by @kixelated in #5829
- quest: recommend a hosted Go module proxy for moq-ffi by @kixelated in #5853
- bench: pin hybrid-CPU runs to the performance cores by @kixelated in #5825
- test(quic): characterize moq-quic behavior by @kixelated in #5781
- Forward subscribe drops early by @kixelated in #5691
- feat(mux): export whole-PES tracks at their placement by @kixelated in #5832
- feat(ffi)!: media subscribe and fetch take a catalog rendition by @kixelated in #5834
- feat(obs)!: follow the bandwidth grant in the OBS video encoder by @kixelated in #5845
- perf(uring): remove avoidable copies on egress, streams, and datagram receive by @kixelated in #5843
- feat(net)!: let live announcements renew their auth by @kixelated in #5695
- feat(stats): count refused and failed sessions by @kixelated in #5659
- fix(ci): get the Nightly workloads green by @kixelated in #5841
- quest(m2): poll-native async spike results, plan the moq-ffi migration by @kixelated in #5851
- fix(rtc): pace a pending WHEP switch to the new rung by @kixelated in #5852
- test(ts): grade the passthrough export packet by packet against its source by @kixelated in #5856
- bench(browser): real-browser transport, CMAF, and publish/watch benchmarks by @kixelated in #5847
- feat(mux): import fMP4 TTML captions onto the catalog clock by @kixelated in #5855
- feat(relay): automatic ACME (Let's Encrypt) certificates by @kixelated in #5858
- Migrate network timing onto moq-clock by @kixelated in #5681
- feat(ffi): configure and observe audio playout delay in every binding by @kixelated in #5844
- feat(dart): ship codecs and expose audio and video namespaces by @kixelated in #5839
- feat: grade native moq play in the audio quality lane by @kixelated in #5860
- feat(relay): widen QUIC limits for cluster peers by @kixelated in #5674
- feat(e2ee): add the @moq/e2ee TypeScript core by @kixelated in #5818
- feat(video)!: Color carries primaries and transfer, decoded pictures keep their stream's colour by @kixelated in #5808
- fix(net): give requests one fatal create-to-answer deadline by @kixelated in #5741
- fix(uring): close connections when the last session handle drops by @kixelated in #5748
- fix(ts): grade PCR rate on the read floor, between lag steps by @kixelated in #5749
- fix(mux): put a live export's budget on its first SUBSCRIBE by @kixelated in #5854
- fix(mux): preserve unknown TS stream-type bytes by @kixelated in #5778
- test(archive): exercise recording proof through S3 HTTP by @kixelated in #5760
- feat(tokio): WebRTC data channel transport over str0m by @kixelated in #5702
- feat(ffi): report the session's negotiated version and reconnect failure for OBS by @kixelated in #5723
- bench(ffi-gen): compare BoltFFI with UniFFI on a moq-ffi slice by @kixelated in #5736
- fix(quic): isolate BBR loss samples from ACK state by @kixelated in #5757
- test(wasm): pace the read case's publisher by its reader by @kixelated in #5827
- fix(mux): populate display aspect across known-SPS importers by @kixelated in #5755
- feat(stats): requested prefix tracks with rollup, self, and children by @kixelated in #5811
- feat(mux)!: mark a data track's break with an object of no bytes by @kixelated in #5815
- feat(bench): one relay profiling recipe with lock, cpu, and heap modes by @kixelated in #5830
- test(mux): reproduce the live export's burst loss over a session by @kixelated in #5857
- test(net): cover the 64 KiB cap in the default poll_read_buf by @kixelated in #5744
- feat(bench): measure Swift Dart and C++ binding overhead by @kixelated in #5745
- feat(relay): serve moq-transport from the io_uring workers by @kixelated in #5821
- refactor(net): narrow the model and mark what sessions reach by @kixelated in #5794
- test(gst): refuse the redial on the live listener instead of rebinding its port by @kixelated in #5870
- fix(net): apply and answer draft 14-16 request updates by @kixelated in #5798
- test(wasm): choose UniFFI-generated moq-ffi as the browser binding by @kixelated in #5838
- moq-video: two decoders for warmup renditions in decode::Consumer by @kixelated in #5842
- feat(ffi,obs): client settings parity for OBS by @kixelated in #5726
- fix(quic): report unreachable sends through moq-quic by @kixelated in #5868
- fix(relay): share connection lifecycle across runtimes by @kixelated in #5761
- feat(hang): catalog colour model, filled from bitstream then container by @kixelated in #5846
- fix(net): gate incoming requests at dispatch by @kixelated in #5782
- feat(hang)!: refuse a catalog that needs a newer reader by @kixelated in #5806
- feat(stats): collect owned transport wire counters by @kixelated in #5773
- feat(net): announce consumers report when they have synced by @kixelated in #5724
- feat(net)!: a finished broadcast stays up until its media is stale by @kixelated in #5795
- quest: plan the TS export's remaining MP2 join hole by @kixelated in #5874
- test(clock): drive a bindings runtime from a Python test clock by @kixelated in #5733
- quest: plan HLS end drain, relay peer address, RTMP errors, usage-rs 7 by @kixelated in #5877
- feat(cpp)!: generate unprefixed names and one moq::expected by @kixelated in #5727
- docs(net): spell out route-change semantics for agents by @kixelated in #5866
- feat(net): a timed track refuses a group that rewinds by @kixelated in #5803
- fix(ts): split and buffer-model DVB E-AC-3 access units by @kixelated in #5758
- refactor(quic)!: one Limits type for both QUIC runtimes by @kixelated in #5871
- Follow epochless restarts in exports and bindings by @kixelated in #5700
- fix(net): request PROBE only while consumers are held by @kixelated in #5777
- feat(net)!: carry group ranges on track::Subscription by @kixelated in #5732
- fix(moq-c): hold the wait so the end-gap follow test sees the gap by @kixelated in #5886
- quest: plan follow-ups from the Oct 17 merge run by @kixelated in #5884
Full Changelog: obs-moq-v0.6.16...obs-moq-v0.6.17