Skip to content

Commit 36ea673

Browse files
committedFeb 28, 2021
RTC: Support high performance NO-COPY-NACK. 4.0.76
1 parent c20d8fb commit 36ea673

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed
 

‎README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ For previous versions, please read:
156156

157157
## V4 changes
158158

159+
* v4.0, 2021-02-28, RTC: Support high performance NO-COPY-NACK. 4.0.76
159160
* v4.0, 2021-02-27, RTC: Support object cache pool. 4.0.75
160161
* v4.0, 2021-02-12, RTC: Support high performance timer about 25ms resolution. 4.0.72
161162
* v4.0, 2021-02-10, RTC: Refine performance about 700+ streams. 4.0.71

‎trunk/src/core/srs_core_version4.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@
2424
#ifndef SRS_CORE_VERSION4_HPP
2525
#define SRS_CORE_VERSION4_HPP
2626

27-
#define SRS_VERSION4_REVISION 75
27+
#define SRS_VERSION4_REVISION 76
2828

2929
#endif

1 commit comments

Comments
 (1)

winlinvip commented on Feb 28, 2021

@winlinvip
MemberAuthor

零拷贝,就是不拷贝,直接使用RTP packet。这样系统没有额外拷贝的RTP Packet。包的流程如下:

  1. Publisher,收到UDP包,创建RTP Packet,从UDP包中解析出RTP Packet。
  2. 这个包拷贝给Player,每个Player都有自己的一个RTP Packet,需要修改PT和SSRC等。注意payload是shared message,引用计数不拷贝。
  3. Publisher NACK直接将解析出来的RTP Packet放到NACK队列,避免额外的拷贝。
  4. Player NACK直接将自己的RTP Packet放到NACK队列,避免额外的拷贝。

目前是(具体以代码为准)默认禁用,开启nack.no_copy的方法如下:

vhost __defaultVhost__ {
    rtc {
        enabled on;
    }
    nack {
        enabled on;
        no_copy on;
    }
}

相关Commit如下:

  • 支持禁用零拷贝NACK,默认禁用:c20d8fb
  • Player零拷贝NACK:af0b50f
  • Publisher零拷贝NACK:8382f57
Please sign in to comment.