Commit Graph
1801 Commits
Author SHA1 Message Date
Raja SubramanianandGitHub 794c74360b Do not log duplicate packet error. (#1116)
Also, use bucket.Err* as it has been moved to mediatransportutil
2022-10-23 09:39:50 +05:30
Raja SubramanianandGitHub b9894ab014 Allocate packetMeta up front to reduce number of allocations. (#1108) 2022-10-20 14:31:19 +05:30
Raja SubramanianandGitHub 4344af6fd3 Some misc changes (#1107)
- ticker.Stop always
- clean up timer func (if they are added) on participant close
- sequencer test enhancement to add a real packet after a pdding packet
2022-10-20 11:11:45 +05:30
Raja SubramanianandGitHub e43c72c91d Accept same highest sequence number as a puased track sends that (#1102) 2022-10-19 12:43:22 +05:30
Raja SubramanianandGitHub f854201101 Warn on out-of-order RTCP RR. (#1101)
Have been seeing a few instances of "too many packets expected in delta"
when trying to generate RTCP SR on down track. Actual sequence numbers
indicate that start is after the end.

As down track RTPStats are driven by receiver report, wondering if we
are getting RTCP_RR out-of-order somehow causing this to happen.
Cannot find any other reason for this.

So, accepting RTCP_RR based update only if the sequence number is higher
than existing and also logging a warning with sequence numbers if they
look out-of-order.
2022-10-19 11:21:43 +05:30
Raja SubramanianandGitHub 08047eea60 Use pointers for packetMeta in sequencer to save memory. (#1100)
Padding packets do not need the full structure. They just
need a placeholder in the sequencer array. So, use pointers
(with padding slots filled by nil) to save some memory.

Also, don't need padding for audio (yet). As padding packets
are used only for probing and we do not probe using audio tracks (yet).
2022-10-19 09:37:32 +05:30
Raja SubramanianandGitHub 41147e924f Misc clean up (#1099) 2022-10-19 05:02:41 +05:30
David ColburnandGitHub dff5379b78 remove record check on CreateRoom (#1096) 2022-10-17 11:25:20 -07:00
cnderrauberandGitHub 759e3bb1f2 Refine nat 1to1 mapping setting (#1094)
Now only set mapping when user_external_ip enabled or node_ip is
explicitly set. If multiple local address resolved to same external
ip, only the first one will be mapped to external, avoid candidate
conflict between different clients.
2022-10-17 16:11:52 +08:00
David ZhaoandGitHub 4161768530 Log Service API requests (#1091) 2022-10-17 00:16:54 -07:00
Raja SubramanianandGitHub 2fb744c36f Prevent multiple transport fallback in same session. (#1090) 2022-10-17 10:10:31 +05:30
cnderrauberandGitHub 8fd3e8fe2d Support track level stereo and red setting (#1086)
* Support track level stereo and red setting

* fix test client
2022-10-17 10:48:11 +08:00
Samuel HumeauandGitHub 00ec859dd1 Add default handler to 404 (#1088) 2022-10-16 10:30:34 -07:00
cnderrauberandGitHub 192d9295f5 Fix simulcast codec block track close (#1082) 2022-10-13 12:46:43 +08:00
Raja SubramanianandGitHub 573850261a Cache RTPStats and seed on re-use (#1080)
* Cache RTPStats and seed on re-use

When a cached down track is re-used, RTPStats was not cached.
This caused sender reports getting out-of-sync with the remote side.
Cache RTPStats and seed it on re-use.

* staticcheck
2022-10-12 09:10:17 +05:30
David ColburnandGitHub 78386c4669 Update protocol (#1075)
* update protocol

* auto egress ensure unique filename

* fix tests
2022-10-10 10:38:46 -07:00
Raja SubramanianandGitHub a5bed14d02 Allow TCP fallback on multiple failures. (#1077) 2022-10-10 09:29:29 +05:30
David ZhaoandGitHub 1019faa0e6 Cleanup pass through logging (#1073)
* added filtering for noisy pion logs
* demoted some logs to debug
* using consistent trackID / participant / publisher / subscriber terminology
* removed ice candidate log lines, deferring to combined log
2022-10-06 23:48:37 -07:00
Raja SubramanianandGitHub 792349cc56 Split out mediatransportutil (#1071) 2022-10-06 23:55:59 +05:30
Benjamin PrachtandGitHub c3120679e6 Make sure CreateIngress returns an empty state (#1069) 2022-10-04 19:23:09 -07:00
Raja SubramanianandGitHub 30e5037418 Minor clean up of media track & friends module (#1067) 2022-10-04 05:23:18 +05:30
Benjamin PrachtandGitHub 8cf0872ec1 Adopt updated ingress RPC API (#1068) 2022-10-03 11:31:55 -07:00
David ZhaoandGitHub 02537a121d Store initial track MimeType in TrackInfo (#1065) 2022-09-30 23:33:22 -07:00
cnderrauberandGitHub 716f27c435 Close UDPMux when exit (#1064)
* Close UDPMux when exit

* fix test failed
2022-10-01 09:03:58 +08:00
Raja SubramanianandGitHub 2a0a63e4be Increment NACK miss only if error is not EOF (#1061) 2022-09-30 11:26:45 +05:30
shishirngandGitHub 8dc5a899a9 Create stats worker for participant on Active if not exists (#1059)
on migration, participants don't send JOIN event, so create it in
PARTICIPANT_ACTIVE event
2022-09-29 17:26:43 -04:00
Raja SubramanianandGitHub b3bd403316 Small clean up - remove unused pariticpant close reason (#1055) 2022-09-29 21:53:18 +05:30
Raja SubramanianandGitHub 33f5dbc501 Make strict mode a param (#1054)
So, a wrapping config (like cloud) can skip the strict mode check.
2022-09-29 13:07:32 +05:30
Raja SubramanianandGitHub c93df27329 Accumulate spatial layers also for SVC codecs (#1053)
* Accumulate spatial layers also for SVC codecs

* Remove TODO

* include temporal layer 0
2022-09-29 12:41:52 +05:30
cnderrauberandGitHub 4b630d2156 Add ipfilter to exclude ip from candidates gather (#1052) 2022-09-29 14:40:38 +08:00
David ZhaoandGitHub 9c8d9fca0c Enforce config fields, fail on unknown keys (#1051)
If/when users have a typo or misindentation in their config file, we
would have silently failed to assign the value and moved on.

With this change it'll error out, alerting user of the problem.
2022-09-28 22:13:52 -07:00
Raja SubramanianandGitHub d70843bc5a Some logging tweaks (#1048) 2022-09-28 23:54:40 +05:30
Raja SubramanianandGitHub b3e148771a Tweaks to reduce supervisor error logs (#1039)
Seeing some supervisor error logs under two conditions
- Issuing a full reconnect - client should close this session and
form a new one. So, supervisor errors on the to be closed session
is not useful.
- Some times it takes a long time for publisher PC to establish.
If publish monitor timer stars when a pending track is added,
the time out fires before ICE/DTLS is established. So, include
a condition to start timer on publication monitor only after
peer connection is connected.
2022-09-27 08:20:06 +05:30
David ZhaoandGitHub 3da908302a Do not warn when notifier isn't configured (#1043)
By default there are no webhook URLs to notify, so a notifier isn't created.
2022-09-26 13:30:27 -07:00
Benjamin PrachtandGitHub 932af81f34 Update strored version of an active ingress if no ingress server responds (#1031)
This allows deleting and updating an ingress even if the ingress server that was handling it died. It does however mean that if the ingress responds again later, its state will be inconsistent. To somewhat make this less likely, also keep trying contacting the ingress for 1 min in the background.

Also fixing a race where an active deleted Ingress would get recreated on delete because of the update triggered by the ingress session shutdown
2022-09-26 11:16:27 -07:00
Raja SubramanianandGitHub dfc71d5bf8 Add a flag to signal need to close underlying media track. (#1038)
With migration in, once the local track is published, the
remote track should be closed. Add a flag to `RemovePublishedTrack`
to control the close behaviour. Invoke `Close` if specified.

Without, the remote track is not closed if it is waiting to resolve,
i. e. not yet attached. That remote track is left hanging.
2022-09-26 15:32:22 +05:30
David ZhaoandGitHub 5e1912e44c Enable TCP/TURN fallback by default (#1033) 2022-09-22 23:58:07 -07:00
David ColburnandGitHub b97d59b8db consolidate room internal (#1030)
* consolidate room internal

* create room internal map

* pipelined room read

* check error

* fix pipelined reads

* clean up after test
2022-09-22 15:59:27 -07:00
David ColburnandGitHub 20c565ca02 log when auto egress fails (#1029)
* log when auto egress fails

* use room logger
2022-09-22 12:23:25 -07:00
David ColburnandGitHub 803046b882 Auto egress (#1011)
* auto egress

* fix room service test

* reuse StartTrackEgress

* add timestamp

* update prefixed filename explicitly

* update protocol

* clean up telemetry

* fix telemetry tests

* separate room internal storage

* auto participant egress

* remove custom template url

* fix internal key

* use map for stats workers

* remove sync.Map

* remove participant composite
2022-09-21 12:04:19 -07:00
cnderrauberandGitHub 48588d7c3d code clean & fix h264 test fail (#1028) 2022-09-21 16:59:18 +08:00
Guru GovindanandGitHub fc9d76c7a7 we need to consider SPS presence as keyframe indicator for simple NALU (#1016) 2022-09-21 16:03:36 +08:00
David ZhaoandGitHub feb47812e7 Allow CORS responses to be cached to allow faster initial connection (#1027) 2022-09-20 23:56:24 -07:00
maxbandGitHub eabecb99ac Don't automatically add STUN servers if nodeIP set (#1023)
It's my understanding that the nodeIP config can be set to ensure that a
specific IP is provided for the host candidate. The code being changed
here was added as a convenience so that:
| By giving it STUN servers, it should be
| connectable even without passing in --node-ip explicitly

We'd prefer to be able to specify a nodeIP and then as a side effect
have a STUN server added.
2022-09-20 23:43:07 -07:00
David ZhaoandGitHub 99cb021e85 Increase max wait for media node to respond. (#1026)
In extreme cases, media nodes could take more than 5s to spin up the
session. Increasing this timeout to 10s reduces the number of disconnections
due to edge cases.
2022-09-20 23:38:58 -07:00
Raja SubramanianandGitHub a523b929a9 Adding UT to cover case found with padding only packets (#1024)
Confirmed that it fails before change to fix it and it is good now.
2022-09-21 09:40:26 +05:30
Raja SubramanianandGitHub 1e20786521 Store pure padding packets also in SnOffsets cache. (#1020) 2022-09-20 19:39:36 +05:30
Raja SubramanianandGitHub 26e6024137 Log NACK information in stream allocator. (#1018) 2022-09-19 14:33:16 +05:30
Raja SubramanianandGitHub 924be2fbb7 Supervisor tweaks (#1017) 2022-09-19 08:27:51 +05:30
cnderrauberandGitHub 7ad123e4a6 fix ssrc messed up when generating trackinfo (#1014) 2022-09-16 15:59:44 +05:30