mirror of
https://github.com/livekit/livekit.git
synced 2026-04-13 08:55:39 +00:00
* Make connection quality not too optimistic.
With score normalization, the quality indicator showed good
under conditions which should have normally showed some badness.
So, a few things in this PR
- Do not normalize scores
- Pick the weakest link as the representative score (moving away from
averaging)
- For down track direction, when reporting delta stats, take the number
of packets sent actually. If there are holes in the feed (upstream
packet loss), down tracks should not be penalised for that loss.
State of things in connection quality feature
- Audio uses rtcscore-go (with a change to accommodate RED codec). This
follows the E-model.
- Camera uses rtcscore-go. No change here. NOTE: THe rtscore here is
purely based on bits per pixel per frame (bpf). This has the following
existing issues (no change, these were already there)
o Does not take packet loss, jitter, rtt into account
o Expected frame rate is not available. So, measured frame rate is
used as expected frame rate also. If expected frame rate were available,
the score could be reduced for lower frame rates.
- Screen share tracks: No change. This uses the very old simple loss
based thresholding for scoring. As the bit rate varies a lot based on
content and rtcscore video algorithm used for camera relies on
bits per pixel per frame, this could produce a very low value
(large width/height encoded in a small number of bits because of static content)
and hence a low score. So, the old loss based thresholding is used.
* clean up
* update rtcscore pointer
* fix tests
* log lines reformat
* WIP commit
* WIP commit
* update mute of receiver
* WIP commit
* WIP commit
* start adding tests
* take min score if quality matches
* start adding bytes based scoring
* clean up
* more clean up
* Use Fuse
* log quality drop
* clean up debug log
* - Use number of windows for wait to make things simpler
- track no layer expected case
- always update transition
- always call updateScore
105 lines
4.1 KiB
Modula-2
105 lines
4.1 KiB
Modula-2
module github.com/livekit/livekit-server
|
|
|
|
go 1.18
|
|
|
|
require (
|
|
github.com/bep/debounce v1.2.1
|
|
github.com/d5/tengo/v2 v2.13.0
|
|
github.com/dustin/go-humanize v1.0.1
|
|
github.com/elliotchance/orderedmap/v2 v2.2.0
|
|
github.com/florianl/go-tc v0.4.2
|
|
github.com/frostbyte73/core v0.0.4
|
|
github.com/gammazero/deque v0.1.0
|
|
github.com/gammazero/workerpool v1.1.2
|
|
github.com/google/wire v0.5.0
|
|
github.com/gorilla/websocket v1.5.0
|
|
github.com/hashicorp/go-version v1.6.0
|
|
github.com/hashicorp/golang-lru/v2 v2.0.1
|
|
github.com/jxskiss/base62 v1.1.0
|
|
github.com/livekit/mageutil v0.0.0-20230125210925-54e8a70427c1
|
|
github.com/livekit/mediatransportutil v0.0.0-20230130133657-96cfb115473a
|
|
github.com/livekit/protocol v1.4.3-0.20230303025609-c0705dbb696a
|
|
github.com/livekit/psrpc v0.2.10-0.20230303054701-5853a56b4643
|
|
github.com/mackerelio/go-osstat v0.2.3
|
|
github.com/magefile/mage v1.14.0
|
|
github.com/maxbrunsfeld/counterfeiter/v6 v6.6.1
|
|
github.com/mitchellh/go-homedir v1.1.0
|
|
github.com/olekukonko/tablewriter v0.0.5
|
|
github.com/pion/ice/v2 v2.3.1
|
|
github.com/pion/interceptor v0.1.12
|
|
github.com/pion/logging v0.2.2
|
|
github.com/pion/rtcp v1.2.10
|
|
github.com/pion/rtp v1.7.13
|
|
github.com/pion/sdp/v3 v3.0.6
|
|
github.com/pion/stun v0.4.0
|
|
github.com/pion/transport/v2 v2.0.2
|
|
github.com/pion/turn/v2 v2.1.0
|
|
github.com/pion/webrtc/v3 v3.1.56
|
|
github.com/pkg/errors v0.9.1
|
|
github.com/prometheus/client_golang v1.14.0
|
|
github.com/redis/go-redis/v9 v9.0.2
|
|
github.com/rs/cors v1.8.3
|
|
github.com/sebest/xff v0.0.0-20210106013422-671bd2870b3a
|
|
github.com/stretchr/testify v1.8.2
|
|
github.com/thoas/go-funk v0.9.3
|
|
github.com/twitchtv/twirp v8.1.3+incompatible
|
|
github.com/ua-parser/uap-go v0.0.0-20211112212520-00c877edfe0f
|
|
github.com/urfave/cli/v2 v2.24.2
|
|
github.com/urfave/negroni/v3 v3.0.0
|
|
go.uber.org/atomic v1.10.0
|
|
go.uber.org/zap v1.24.0
|
|
golang.org/x/sync v0.1.0
|
|
google.golang.org/protobuf v1.28.1
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
)
|
|
|
|
require (
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
|
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
|
github.com/eapache/channels v1.1.0 // indirect
|
|
github.com/eapache/queue v1.1.0 // indirect
|
|
github.com/go-logr/logr v1.2.3 // indirect
|
|
github.com/golang/protobuf v1.5.2 // indirect
|
|
github.com/google/go-cmp v0.5.9 // indirect
|
|
github.com/google/subcommands v1.2.0 // indirect
|
|
github.com/google/uuid v1.3.0 // indirect
|
|
github.com/josharian/native v1.1.0 // indirect
|
|
github.com/lithammer/shortuuid/v3 v3.0.7 // indirect
|
|
github.com/lithammer/shortuuid/v4 v4.0.0 // indirect
|
|
github.com/mattn/go-runewidth v0.0.9 // indirect
|
|
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
|
github.com/mdlayher/netlink v1.7.1 // indirect
|
|
github.com/mdlayher/socket v0.4.0 // indirect
|
|
github.com/nats-io/nats.go v1.24.0 // indirect
|
|
github.com/nats-io/nkeys v0.3.0 // indirect
|
|
github.com/nats-io/nuid v1.0.1 // indirect
|
|
github.com/pion/datachannel v1.5.5 // indirect
|
|
github.com/pion/dtls/v2 v2.2.6 // indirect
|
|
github.com/pion/mdns v0.0.7 // indirect
|
|
github.com/pion/randutil v0.1.0 // indirect
|
|
github.com/pion/sctp v1.8.6 // indirect
|
|
github.com/pion/srtp/v2 v2.0.12 // indirect
|
|
github.com/pion/udp/v2 v2.0.1 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/prometheus/client_model v0.3.0 // indirect
|
|
github.com/prometheus/common v0.37.0 // indirect
|
|
github.com/prometheus/procfs v0.8.0 // indirect
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
|
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
|
|
go.uber.org/multierr v1.6.0 // indirect
|
|
golang.org/x/crypto v0.6.0 // indirect
|
|
golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 // indirect
|
|
golang.org/x/mod v0.7.0 // indirect
|
|
golang.org/x/net v0.7.0 // indirect
|
|
golang.org/x/sys v0.5.0 // indirect
|
|
golang.org/x/text v0.7.0 // indirect
|
|
golang.org/x/tools v0.5.0 // indirect
|
|
google.golang.org/genproto v0.0.0-20230301171018-9ab4bdc49ad5 // indirect
|
|
google.golang.org/grpc v1.53.0 // indirect
|
|
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
)
|