commit | 803fdc41066d51d2b4683857fca00adfb309034f | [log] [tgz] |
---|---|---|
author | Victor Boivie <boivie@webrtc.org> | Tue Jun 01 15:06:35 2021 |
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Jun 01 17:24:06 2021 |
tree | a5d266d56530f79b495bb14d0a7d11140612f271 | |
parent | f86544487723438f63dfb3350d6d3351cfed7977 [diff] |
dcsctp: Stay within stream while producing from it The way that the "next stream" was picked when round-robin cycling was flawed. When a message was produced in its entirety, the "next stream" would be put at a stream identifier value that was just larger than what was previously used. And then, for each fragment that was to be created, it would try to resolve the nearest stream (above or equal to that number) that had messages to send - always starting from that stream id that didn't necessarily point to the stream for which fragments were actually produced. For example, if the previous stream ID for which a message was fully produced on was 5, then the next_stream_id would be set to 6, and then when producing next fragment, it might have produced something from stream_id=1, because that was the only stream with messages in it. It wouldn't update next_stream_id at this time; it would still be 6. After a single fragment had been produced from that stream, a message was queued on stream_id=6. The next time a fragment was to be produced, it would not continue one stream_id=1, but instead pick the new stream, which would suddenly produce a new fragment (with B flag set) while the previous message (from stream_id=1) wasn't finished yet. The fix is simple; Just ensure that we continue iterating from where we ever produce a fragment from. Bug: webrtc:12832 Change-Id: Icc761c572ed200db607a7609dab1ac6a8aeb2f04 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220938 Reviewed-by: Florent Castelli <orphis@webrtc.org> Commit-Queue: Victor Boivie <boivie@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34190}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.