Comments (3)
👍 We can also add an option to the interceptor to DisableCopy
maybe? If people really need the old behavior.
from interceptor.
Do you think people actually want the old behavior? Since it's not actually doing what it's claiming to do. Any network with reasonable latency will probably see NACKs responding to wrong packets.
I do think it'd be great to avoid the copy though.
from interceptor.
I agree that it would be nice to avoid the copy, but on the other hand, I think it is the best we can do. Since RTPWriter
, RTPReader
, RTCPWriter
and RTCPReader
are very similar to io.Reader
/io.Writer
, I would expect them to behave in the same way. The doc for io.Reader
and io.Writer
says that implementations must not retain
the buffer and I think that makes sense for interceptors, too. It could actually be even worse when users use the payload buffer for something else than the next packet. In that case, the interceptors would not only send the most recent packet but whatever the user decided to store in the buffer next.
The same goes for rtp.Header
(#85 is an issue where the extension header of an rtp.Header
, which is a byte slice, is overwritten by newer packets) and possibly also interceptor.Attributes
?
Maybe we should also carefully check the other interceptors for similar issues.
from interceptor.
Related Issues (20)
- Add faster probing to GCC startup HOT 1
- concurrent map read & write in `leaky_bucket_pacer`
- Zombie ticker running
- [SendSideBWE ] `delayController` raises panic when packet arrives after interceptor is closed HOT 3
- History in cc's `FeedbackAdapter` is never cleaned up
- Optimise `SendSideBWE.WriteRTCP` HOT 1
- Get RTT from `SendSideBWE` HOT 5
- NACK generator interceptor implements `BindRemoteStream` but `UnbindLocalStream`
- GCC: aggressive estimated bitrate drop on seemingly healthy connection HOT 5
- totalLost count error in receiverStream? HOT 5
- Logic when generating TWCC feedback packets seems strange HOT 2
- What's the unit of ReceivedRTPStreamStats's Jitter? HOT 3
- Missing `remote-inbound-rtp` stat in Firefox when sending audio track HOT 1
- Stats recorder SSRC handling for PLI/NACK/FIR/...
- Stats recorder handling of SRs in simulcast HOT 1
- Implement better internal stats merging HOT 1
- Implement better internal stats merging HOT 1
- Rare panic when setting TWCC extension
- interdeparturethreshold should be 0 or a very small value like in google webrtc C++ code
- Incorrect PacketsReceived value from RemoteInboundRTPStreamStats HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from interceptor.