srs/trunk
why 57e1622e81
WebRTC: Fix NACK recovered packets not being added to receive queue. v7.0.78 (#4467)
Fixes a bug in WebRTC NACK packet recovery mechanism where recovered
packets were being discarded instead of processed.

In `SrsRtcRecvTrack::on_nack()`, when a retransmitted packet arrived
(found in NACK receiver), the method would:
1.  Remove the packet from NACK receiver (correct)
2.  Return early without adding the packet to RTP queue (BUG)

This caused recovered packets to be lost, defeating the purpose of the
NACK mechanism and potentially causing media quality issues.

Restructured the control flow in `on_nack()` to ensure both new and
recovered packets reach the packet insertion logic:

- **Before**: Early return for recovered packets → packets discarded
- **After**: Conditional NACK management + unified packet processing →
all packets queued

Closes #3820

---------

Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: OSSRS-AI <winlinam@gmail.com>
2025-09-04 08:07:36 -04:00
..
3rdparty AI: Config: Move RTMP configs to rtmp{} section. v7.0.64 (#4454) 2025-08-27 19:27:23 -04:00
auto AI: Extract shared components and improve SRS server architecture. v7.0.70 (#4461) 2025-08-31 19:14:34 -04:00
conf Upgrade HTTP parser from http-parser to llhttp. v7.0.77 (#4469) 2025-09-03 20:12:59 -04:00
doc WebRTC: Fix NACK recovered packets not being added to receive queue. v7.0.78 (#4467) 2025-09-04 08:07:36 -04:00
etc/init.d Squash: Fix bugs 2022-01-13 18:26:28 +08:00
gdb The identifier "ShowCouroutines" needs to be modified to "ShowCoroutines" in order to rectify the typographical error. v6.0.63 (#3703) 2023-07-27 08:12:39 +08:00
ide/srs_clion HLS: restore HLS information when republish stream.(#3088). v7.0.57 (#3126) 2025-08-19 22:09:54 -06:00
packaging/redhat AI: Remove cygwin64, always enable WebRTC, and enforce C++98 compatibility. v7.0.60 (#4447) 2025-08-21 10:03:38 -06:00
research Player: Get codec by webrtc api: pc.getStats. v7.0.42 (#4310) 2025-06-04 10:28:46 -04:00
scripts AI: Config: Move RTMP configs to rtmp{} section. v7.0.64 (#4454) 2025-08-27 19:27:23 -04:00
src WebRTC: Fix NACK recovered packets not being added to receive queue. v7.0.78 (#4467) 2025-09-04 08:07:36 -04:00
usr/lib/systemd/system Squash: Support RPM. Fix bugs. 2021-11-04 07:37:17 +08:00
.gitignore rtc2rtmp: Support RTC-to-RTMP remuxing with HEVC. v7.0.43 (#4349) 2025-07-03 08:24:42 -04:00
AUTHORS.md Reorder maintainers ranked by number of commits. 2025-08-14 07:23:03 -06:00
AUTHORS.txt Update AUTHORS 2021-08-25 07:43:35 +08:00
configure WebRTC: Fix NACK recovered packets not being added to receive queue. v7.0.78 (#4467) 2025-09-04 08:07:36 -04:00
Dockerfile.builds Refine code and add tests for #4289. v7.0.45 (#4412) 2025-07-04 17:26:12 -04:00
Dockerfile.cov Asan: Refine asan warning message for macOS. 2022-12-31 21:20:51 +08:00
Dockerfile.pkg Merge branch v5.0.103 into develop 2022-12-03 21:15:22 +08:00
Dockerfile.test NEW PROTOCOL: Support viewing stream over RTSP. v7.0.47 (#4333) 2025-07-11 08:18:40 -04:00