Commit Graph

2003 Commits

Author SHA1 Message Date
renovate[bot] 8b3deafbd4 Update golang.org/x/exp digest to 89c5cff (#1961)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 17:30:49 -07:00
David Zhao 13b1b4808f Fix race condition causing new participants to have stale room metadata (#1969)
If room metadata is changed in between when a participant is joining and
when they've became active, that participant will not have the latest
room metadata.
2023-08-15 17:30:26 -07:00
Raja Subramanian 96fa2f896b Set 32-bit RTP timestamp properly after repair. (#1968) 2023-08-15 23:09:45 +05:30
Raja Subramanian 221be0cb45 mediatransportutil update (#1966) 2023-08-15 15:40:30 +05:30
Raja Subramanian 77c8e82473 log adjustment for first packet (#1965) 2023-08-14 23:50:01 +05:30
cnderrauber 83111eee48 Don't filter out ipv6 address (#1963) 2023-08-14 11:53:01 +08:00
cnderrauber d5a180d167 Add option to advertise external ip only (#1962) 2023-08-14 10:35:09 +08:00
Raja Subramanian ce1fde451c Get next higher using bit rate. (#1960) 2023-08-11 17:22:56 +05:30
Raja Subramanian 5c0a4beb61 Log more about layer offset. (#1959)
Seeing a good chunk of logs using default offset.
And it is concentrated heavily on few tracks.
Logging more to understand this better before
potentially demoting this log.
2023-08-11 13:03:10 +05:30
Raja Subramanian 114888e7c7 log next sequence number also, easier to check layer switches (#1957) 2023-08-11 10:50:11 +05:30
Raja Subramanian 51650ea301 Use refTS if ahead. (#1956)
As expectedTS is tied to first packet and first packet adjustment
may not have happened, refTS being ahead is not a bad thing.

In one example,
- first packet was late
- a layer switch happened around 110ms later
- in that time, 190ms worth of media was forwarded
- but first packet adjustment did not happen yet
- so at that layer switch, expected was behind
- choosing ref at that switch is the right thing
2023-08-11 10:17:13 +05:30
Raja Subramanian 19b84207a1 Use 32-bit ts for first packet adjustment. (#1955)
* Use 32-bit ts for first packet adjustment.

Otherwise, a new subscriber on a long running sees a huge difference
if the publisher side has rolled over.

As this happens only in the first two minutes of a track's lifecycle
it is fine to not consider rollover.

* log RTP in anachronous report
2023-08-11 09:43:12 +05:30
David Zhao 387faf2718 Demote removing subscribers for MIME (#1954) 2023-08-10 18:50:19 -07:00
Raja Subramanian ae29d05ec9 Check RTPSender is valid (#1953)
On a quick Bind + Unbind, the go routine to get parameters running late
could encounter a nil sender. Check for it.
2023-08-10 23:02:10 +05:30
cnderrauber 42a8ab232d Never use dd tracker for non-svc codec (#1952) 2023-08-10 23:06:09 +08:00
Raja Subramanian 7802310830 Restrict resume behind check to publisher mute only. (#1951)
A publisher mute is when the reference can fall behind because
of replaceTrack(nil). On a subscriber mute, should not jump ahead
to expected because publisher could still be lagging and behind.

Also consolidate logging.
2023-08-10 13:48:39 +05:30
renovate[bot] d925d8034a Update go deps (#1945)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 22:28:28 -07:00
Raja Subramanian f22d1e5a75 Fix nil pointer dereference (#1949) 2023-08-10 01:31:51 +05:30
Raja Subramanian 0e9ec9a21e Ignore lagging layer switches. (#1948) 2023-08-09 17:42:33 +05:30
Raja Subramanian c14c58b4ae Layer switches at log info to better understand A/V sync issues. (#1947) 2023-08-09 11:28:48 +05:30
Raja Subramanian 9a96abc11f Intermediate signed type casting (#1944) 2023-08-08 23:44:03 +05:30
Paul Wells f4a984d446 preallocate prometheus packet counters (#1942) 2023-08-08 01:06:14 -07:00
cnderrauber 80832a83db Fix panic when format DependencyDescriptor (#1941) 2023-08-08 10:02:53 +08:00
Benjamin Pracht e3ed9ff53f Validate that url pull ingress are ready to use on creation (#1939) 2023-08-07 15:44:44 -07:00
renovate[bot] 85704f83c2 Update pion deps (#1854)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 15:44:32 -07:00
renovate[bot] aab2af9755 Update golang.org/x/exp digest to 050eac2 (#1940)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 14:27:39 -07:00
Benjamin Pracht 98c1fb598c Add support for ingress URL pull (#1938)
Also prevent update of non reusable ingress
2023-08-04 11:41:36 -07:00
Raja Subramanian 9a8ea26e41 Small clean up, refactoring stringifying of trend samples (#1937) 2023-08-04 15:48:19 +05:30
Raja Subramanian c1dfc9741c Stream allocator tweaks (#1936)
* Prevent re-allocation if possible

* log commitThreshold

* Collapse same values in the front
2023-08-04 13:47:54 +05:30
David Zhao 0f9fb24678 A few more logging component changes (#1934) 2023-08-03 18:46:48 -07:00
David Zhao debd75fa15 Integrate logger components (#1933)
* Integrate logger components

Dividing into the following components
* pub - publisher
* pub.sfu
* sub - subscriber
* transport
* transport.pion
* transport.cc
* api
* webhook

* update go modules
2023-08-03 13:31:17 -07:00
Raja Subramanian adf971f5b1 Do not post max layer event for audio. (#1932)
* Do not post max layer event for audio.

A bunch of event queue full warnings on audio tracks :-()

* Don't need a deep channel
2023-08-03 14:04:10 +05:30
cnderrauber eadc910bff Add PlayoutDelay to CreateRoomRequest (#1930)
* Add PlayoutDelay to CreateRoomRequest

* Remove max delay from palyoutdelay
2023-08-03 16:32:59 +08:00
Raja Subramanian 03ab242fb8 Reduce another noisy log to Debugw (#1931)
* Reduce another noisy log to Debugw

* update deps
2023-08-03 12:53:10 +05:30
Raja Subramanian dbbf2f886f Skip video layer update if sub muted (#1929)
Previous change to check for non-zero width caused test failures
as subscribed track settings can use the quality field and not
necessarily width/height.
2023-08-02 16:33:58 +05:30
Raja Subramanian 0dc92ef273 Remove parked layer feature. (#1927)
* Remove parked layer feature.

Not worth the added complexity.

Several reasons
- Not seeing black frames on pub mute always.
- If they are there, it can consume more than 30kbps if the parked layer
  is high res. That is wasted bandwidth downstream when pub is muted.
- On resume, client some time sends PLI and that triggers a key frame
  request.

But, leaving the separate `PubMuted` flag in forwarder in case we can
use it for better handling.

* need the request spatial
2023-08-02 14:02:29 +05:30
Raja Subramanian f3a0e3e71c skip logging when stream closed (#1928) 2023-08-02 14:00:58 +05:30
cnderrauber f7a1776f4c Add control of playout delay (#1838)
* Add control of playout delay

Add config to enable playout delay. The delay will be limited by
[min,max] in the config option and calculated by upstream & downstream
RTT.

* check protocol version to enable playout delay

* Move config to room, limit playout-delay update interval, solve comments

* Remove adaptive playout-delay

* Remove unused config
2023-08-02 16:12:23 +08:00
renovate[bot] 0c5161e9ab Update golang.org/x/exp digest to d63ba01 (#1924)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 20:36:23 -07:00
Raja Subramanian 0c34f12fa1 Demote some high frequency logs to Debugw (#1925) 2023-08-02 00:03:38 +05:30
Raja Subramanian db3fbb57ae Do not log as error on connection reset by peer (#1923) 2023-08-01 19:04:54 +05:30
Raja Subramanian a595c09bd2 Log the 32-bit RTP timestamp (#1921) 2023-08-01 00:18:05 +05:30
Raja Subramanian 11bdda0779 Temper stream allocator more (#1920)
* Temper stream allocator more

* gofmt

* AllowPause default
2023-07-31 12:45:21 +05:30
Raja Subramanian eecddbb65a Issue full reconnect if subscriber PC is closed on ICERestart (#1919)
Server could have closed subscriber PC to aid migration.
But, if a resumes lands back on that node, a resume of
the participant session is not possible as subscriber PC is already
closed. While theoretically possible to form a new subscriber
peer conenction, reducing complexity and issuing a full reconnect
as this should be a rare case.
2023-07-31 11:43:47 +05:30
Raja Subramanian 872b86da3b Delay retransmission after first send. (#1918)
* Delay retransmission after first send.

* test tweak

* english
2023-07-30 12:24:58 +05:30
Raja Subramanian b6394d5aa6 De-dupe ICE candidates, makes logging cleaner. (#1916) 2023-07-29 18:26:57 +05:30
renovate[bot] cfee506f51 Update golang.org/x/exp digest to b0cb94b (#1877)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-28 16:39:58 -07:00
cnderrauber a87232f42a Frame integrity check for svc codec (#1914)
* Frame integrity check for svc codec

* Fix test

* Spell
2023-07-28 14:40:33 +08:00
David Zhao 981fb7cac7 Adding license notices (#1913)
* Adding license notices

* remove from config
2023-07-27 16:43:19 -07:00
Raja Subramanian 887f6580ec Cache marker in sequencer and use it while retransmit. (#1912)
With SVC codecs, input marker and fowarded marker could be different.
So, cache it in sequence and use it on retransmit.

@cndderrauber - this could have affected SVC under packet loss.
2023-07-27 17:08:14 +05:30