Skip to content

[core] Implemented a new sender buffer.#3255

Merged
ethouris merged 63 commits into
Haivision:devfrom
ethouris:dev-new-sender-buffer
Apr 8, 2026
Merged

[core] Implemented a new sender buffer.#3255
ethouris merged 63 commits into
Haivision:devfrom
ethouris:dev-new-sender-buffer

Conversation

@ethouris
Copy link
Copy Markdown
Collaborator

@ethouris ethouris commented Dec 4, 2025

The new sender buffer is based on std::deque container, utilizes memory blocks handled by BufferedMessageStorage and the loss schedule is handled on top of the existing cells as linked list of flagged elements.

Changes:

  • More reworks for comment removal and updated developer documentation
  • closeAllSockets is blocked all logging (may be called as a part of global destructor and have logging system destroyed)
  • Reworks in the receiver buffer, added walkEntries , removed m_BytesCountLock, improved performance in incPos
  • Removed enterCS/leaveCS, they were always aliases to lock/unlock
  • Moved encryption action to the function adding a packet to the buffer, not to happen when sending a unique packet
  • Removed all portability-dependent uses of printf-like calls
  • Removed previously added common snd loss management for groups (will be reinstated with common sender buffer).

@ethouris ethouris added this to the v1.6.0 milestone Dec 4, 2025
@ethouris ethouris added Type: Maintenance Work required to maintain or clean up the code [core] Area: Changes in SRT library core [tests] Area: Unit tests labels Dec 4, 2025
Comment thread srtcore/buffer_rcv.h Fixed
Comment thread srtcore/buffer_rcv.h Fixed
Comment thread srtcore/buffer_snd.cpp Fixed
Comment thread srtcore/buffer_snd.cpp Fixed
Comment thread srtcore/buffer_snd.cpp Fixed
Comment thread srtcore/buffer_snd.cpp Fixed
Comment thread srtcore/buffer_snd.h Fixed
Comment thread srtcore/buffer_tools.h Fixed
Mikołaj Małecki added 7 commits December 12, 2025 13:11
…implemented walkEntries and added test for it. Some fixes from CodeQL reports
…ent fixes. Fixed update prevention after dispatching shutdown
…. The pool is potentially required to pick up new units by packet filter. The unit is put back to the series if the buffer didn't eat it up
Comment thread srtcore/buffer_tools.cpp Fixed
Comment thread srtcore/group.cpp Fixed
Comment thread srtcore/group.cpp Fixed
Comment thread srtcore/group.h Fixed
Comment thread srtcore/group.h Fixed
Comment thread srtcore/list.cpp Fixed
Mikolaj Malecki added 2 commits March 26, 2026 10:48
…ew-scheduled position out of sender buffer. Cut off comments and reworked developer documentation. OFMT: separated proxy and sender classes for fmt result.
Comment thread srtcore/crypto.cpp Fixed
Comment thread srtcore/crypto.cpp Fixed
@ethouris ethouris marked this pull request as ready for review April 8, 2026 10:32
Comment thread srtcore/group.cpp Outdated

Check notice

Code scanning / CodeQL

Commented-out code Note

This comment appears to contain commented-out code.
@ethouris ethouris merged commit 691a182 into Haivision:dev Apr 8, 2026
14 of 15 checks passed
@ethouris ethouris mentioned this pull request Apr 8, 2026
45 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[core] Area: Changes in SRT library core [tests] Area: Unit tests Type: Maintenance Work required to maintain or clean up the code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[MAINT] Reimplement the sender buffer to make it a random-access container

2 participants