SrsUniquePtr does not support array or object created by malloc, because
we only use delete to dispose the resource. You can use a custom
function to free the memory allocated by malloc or other allocators.
```cpp
char* p = (char*)malloc(1024);
SrsUniquePtr<char> ptr(p, your_free_chars);
```
This is used to replace the SrsAutoFreeH. For example:
```cpp
addrinfo* r = NULL;
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
getaddrinfo("127.0.0.1", NULL, &hints, &r);
```
Now, this can be replaced by:
```cpp
addrinfo* r = NULL;
getaddrinfo("127.0.0.1", NULL, &hints, &r);
SrsUniquePtr<addrinfo> r2(r, freeaddrinfo);
```
Please aware that there is a slight difference between SrsAutoFreeH and
SrsUniquePtr. SrsAutoFreeH will track the address of pointer, while
SrsUniquePtr will not.
```cpp
addrinfo* r = NULL;
SrsAutoFreeH(addrinfo, r, freeaddrinfo); // r will be freed even r is changed later.
SrsUniquePtr<addrinfo> ptr(r, freeaddrinfo); // crash because r is an invalid pointer.
```
---------
Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: john <hondaxiao@tencent.com>
|
||
|---|---|---|
| .. | ||
| ffmpeg-4-fit | ||
| gperftools-2-fit | ||
| gprof | ||
| gtest-fit | ||
| httpx-static | ||
| libsrtp-2-fit | ||
| openssl-1.1-fit | ||
| patches | ||
| signaling | ||
| srs-bench | ||
| srt-1-fit | ||
| st-srs | ||
| openssl-OpenSSL_1_0_2u.tar.gz | ||
| opus-1.3.1.tar.gz | ||
| README.md | ||
http-parser-2.1.zip
- for srs to support http callback.
- https://github.com/nodejs/http-parser
- https://github.com/ossrs/http-parser
- https://ossrs.net/lts/zh-cn/license#http-parser
nginx-1.5.7.zip
- http://nginx.org/
- for srs to support hls streaming.
srt-1-fit srt-1.5.3.tar.gz
openssl-1.1-fit openssl-1.1.1l.tar.gz
openssl-1.1.0e.zip openssl-OpenSSL_1_0_2u.tar.gz
- http://www.openssl.org/source/openssl-1.1.0e.tar.gz
- openssl for SRS(with-ssl) RTMP complex handshake to delivery h264+aac stream.
- SRTP depends on openssl 1.0.*, so we use both ssl versions.
- https://ossrs.net/lts/zh-cn/license#openssl
libsrtp-2.3.0.tar.gz
- For WebRTC, SRTP to encrypt and decrypt RTP.
- https://github.com/cisco/libsrtp/releases/tag/v2.3.0
ffmpeg-4.2.tar.gz opus-1.3.1.tar.gz
- http://ffmpeg.org/releases/ffmpeg-4.2.tar.gz
- https://github.com/xiph/opus/releases/tag/v1.3.1
- To support RTMP/WebRTC transcoding.
- https://ossrs.net/lts/zh-cn/license#ffmpeg
gtest-fit
- google test framework.
- https://github.com/google/googletest/releases/tag/release-1.11.0
gperftools-2-fit
- gperf tools for performance benchmark.
- https://github.com/gperftools/gperftools/releases/tag/gperftools-2.9.1
st-srs st-1.9.zip state-threads state-threads-1.9.1.tar.gz
- Patched ST from https://github.com/ossrs/state-threads
- https://ossrs.net/lts/zh-cn/license#state-threads
JSON
USRSCTP
links:
- state-threads: https://github.com/ossrs/state-threads
- x264: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20131129-2245-stable.tar.bz2
- lame: http://nchc.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
- yasm: http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
- speex: http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz