This PR was previously opened as #3245 but was closed before merging.
The changes remain the same: updating the custom-logger README with
clearer instructions, and guidance on ensuring $GOPATH/bin is in PATH.
No new changes were added; this is simply reopening the PR to merge the
existing updates.
Co-authored-by: sunofcoder <senemumac@Senems-MacBook-Air.local>
This PR adds a new simple -datachannel example to help newcomers
understand how to create and test a basic WebRTC DataChannel using Go
and a static HTML page (demo.html).
- Includes main.go for signaling and WebRTC setup.
- Includes demo.html to test sending/receiving messages.
- Tested locally and works with the provided signaling server.
If a user blocks this routine it would stop inbound message handling in
SCTP. To reduce the sharp edge fire it in a goroutine so users don't
need to worry about blocking.
`data-channels-flow-control` exhibited no differences in throughput from
this change.
Resolves#846
Adds the necessary wiring to get VP9 to work with `ivfwriter`.
Update the README of save-to-disk to inform users it supports
both VP8 and VP9.
ivfwriter currently assumes 30 fps but it seems that the other codecs
also assume 30 fps so that is not a net-new assumption.
`OnClosing` is only implemented in WASM at this time.
`OnError` isn't tested, but should work as follows the existing
code.
Relates to #479
Relates to #519
In Go 1.22 and earlier, a ticker needs to be explicitly stopped
when it's no longer useful in order to avoid a resource leak.
In Go 1.23 and later, an orphaned ticker will eventually be
garbage collected, but it's still more thrifty to stop it early.
At the current state of the code the deadlock is not achievable,
but if 'bufferedAmountLowThreshold' and 'maxBufferedAmount' were to
get changed up, it could happen.
Example: If 'bufferedAmountLowThreshold = 1024',
'maxBufferedAmount = 1280', then if a message of len 999 is sent,
'BufferedAmount()' could return '999', and the condition would still
evaluate to 'true' (999 + 999 > 1280).
Since 'bufferedAmountLowThreshold' was never exceeded, the
'OnBufferedAmountLow' event would never fire, so we're stuck.