1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00
Commit graph

76 commits

Author SHA1 Message Date
ChenGH
13597d1b7f
update copyright to 2025. v5.0.218 v6.0.159 v7.0.21 (#4271)
update copyright to 2025

---------

Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: winlin <winlinvip@gmail.com>
2025-01-14 17:35:18 +08:00
Winlin
23d2602c34
UniquePtr: Support SrsUniquePtr to replace SrsAutoFree. v6.0.136 (#4109)
To manage an object:

```cpp
// Before
MyClass* ptr = new MyClass();
SrsAutoFree(MyClass, ptr);
ptr->do_something();

// Now
SrsUniquePtr<MyClass> ptr(new MyClass());
ptr->do_something();
```

To manage an array of objects:

```cpp
// Before
char* ptr = new char[10];
SrsAutoFreeA(char, ptr);
ptr[0] = 0xf;

// Now
SrsUniquePtr<char[]> ptr(new char[10]);
ptr[0] = 0xf;
```

In fact, SrsUniquePtr is a limited subset of SrsAutoFree, mainly
managing pointers and arrays. SrsUniquePtr is better than SrsAutoFree
because it has the same API to standard unique ptr.

```cpp
SrsUniquePtr<MyClass> ptr(new MyClass());
ptr->do_something();
MyClass* p = ptr.get();
```

SrsAutoFree actually uses a pointer to a pointer, so it can be set to
NULL, allowing the pointer's value to be changed later (this usage is
different from SrsUniquePtr).

```cpp
// OK to free ptr correctly.
MyClass* ptr;
SrsAutoFree(MyClass, ptr);
ptr = new MyClass();

// Crash because ptr is an invalid pointer.
MyClass* ptr;
SrsUniquePtr<MyClass> ptr(ptr);
ptr = new MyClass();
```

Additionally, SrsAutoFreeH can use specific release functions, which
SrsUniquePtr does not support.

---------

Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-07-09 10:29:36 +08:00
Winlin
e7069788e9
SmartPtr: Support shared ptr for live source. v6.0.129 (#4089)
Detail change log:

1. [Simple,Refactor] Remove member fields of http entry, etc.
e34b3d3aa4
2. [Ignore] Rename source to live_source.
846f95ec96
3. [Ignore] Use directly ptr in consumer.
d38af021ad
4. [Complex, Important] Use shared ptr for live source.
88f922413a

The object relationship:

![live-source](1adb59af-6e7a-40f3-9a4a-1cc849d7dae1)

---

Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-06-15 07:54:56 +08:00
Winlin
9dba99a1cc
SmartPtr: Support shared ptr for RTC source. v6.0.128 (#4085)
---------

Co-authored-by: Haibo Chen <495810242@qq.com>
2024-06-14 08:07:26 +08:00
winlin
2a2da2253f Switch to 2013-2024. v6.0.109 2024-01-01 10:51:24 +08:00
Haibo Chen
6d56c407c6
Security: Support IP whitelist for HTTP-FLV, HLS, WebRTC, and SRT. v5.0.202 v6.0.104 (#3902)
Security is the built-in IP whitelist feature of SRS, which allows and
denies certain IP and IP range users. Previously, it only supported
RTMP, but this PR now supports HTTP-FLV, HLS, WebRTC, SRT, and other
protocols.

See https://ossrs.io/lts/en-us/docs/v6/doc/security as example.

---------

Co-authored-by: john <hondaxiao@tencent.com>
2023-12-14 21:36:06 +08:00
winlin
29eff1a242 Refine LICENSE. 2023-10-23 14:33:19 +08:00
Winlin
bb94d0ff2f
Support set the ice-ufrag and ice-pwd for connectivity check. v5.0.191 v6.0.91 (#3837)
Checking the HTTPS API or UDP connectivity for WHIP tests can be
difficult. For example, if the UDP port isn't available but the API is
fine, OBS only says it can't connect to the server. It's hard to see the
HTTPS API response or check if the UDP port is available.

This feature lets you set the ice username and password in SRS. You can
then send a STUN request using nc and see the response, making it easier
to check UDP port connectivity.

1. Use curl to test the WHIP API, including ice-frag and ice-pwd
queries.
2. Use nc to send a STUN binding request to test UDP connectivity.
3. If both the API and UDP are working, you should get a STUN response.

---------

Co-authored-by: john <hondaxiao@tencent.com>
2023-10-17 09:32:48 -05:00
Winlin
f9bba0a9b0
WebRTC: Support WHEP for play. v5.0.182 v6.0.80 (#3404)
RFC for WHIP: https://datatracker.ietf.org/doc/draft-ietf-wish-whip/

RFC for WHEP: https://datatracker.ietf.org/doc/draft-murillo-whep/

Please note that SRS 5.0 already had WHIP support. I didn't write a
document about WHIP, because WHIP is not a RFC right now, but there are
clues in
[srs-unity](https://github.com/ossrs/srs-unity#usage-publisher). SRS
WHIP url for publisher:
`http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream`

This PR is for WHEP, the url for player is
`http://localhost:1985/rtc/v1/whep/?app=live&stream=livestream`

PS: There is a great PR for OBS to have WHIP support, see
https://github.com/obsproject/obs-studio/pull/7926 and #3581

PS: WHIP for FFmpeg https://github.com/ossrs/ffmpeg-webrtc/pull/1

See #3170


---------

Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2023-09-21 18:41:33 +08:00
Winlin
b1d1c7abe5
WHIP: Improve WHIP deletion by token verification. v5.0.164, v6.0.58 (#3595)
------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2023-07-01 19:08:21 +08:00
Winlin
78f1ebfcb1
Improve README and documents with AI. v5.0.153. v6.0.43 (#3538)
* Improve README with AI and add new features

1. Update README file with AI to make it more informative and user-friendly
2. Add a detailed table of contents (TOC) with an introduction for easy navigation
3. Introduce an auto-detecting Automake feature that displays the correct installation command
4. Add support for SRT to HTTP-TS config file
5. Refine the WHIP delete location URL
6. Add support for disabling encryption for WHIP or WHEP

This pull request aims to enhance the quality of the project by introducing innovative features and making the necessary updates. These updates will help users navigate the project more efficiently while also improving the overall project's quality.

---------

Co-authored-by: ChenGH <chengh_math@126.com>
Co-authored-by: john <hondaxiao@tencent.com>
2023-05-12 17:18:30 +08:00
Winlin
7cf8c48157 WHIP: Improve HTTP DELETE for notifying server unpublish event (#3539)
This PR improves the functionality of the HTTP DELETE method used by WHIP to notify the server when the client stops publishing. The URL is parsed from the location header returned by SRS, and the URL is refined with the addition of the action=delete parameter to ensure more accurate identification of the DELETE request.

Furthermore, SRS will disconnect and close the session, enabling the client to publish the stream again quickly and easily. This update eliminates the approximately 30-second waiting period previously required for republishing the stream after an unpublish event.

Overall, this update provides a more effective and efficient method for notifying the server about unpublish events and will enhance the workflow experience for users of the WHIP platform.

-------

Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2023-05-12 15:23:04 +08:00
john
d8755711c1
RTC: Call on_play before create session, for it might be freed for timeout. v5.0.149, v6.0.37 (#3455)
Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2023-03-25 11:44:48 +08:00
Winlin
363e0c2a6e
WHIP: Support DELETE resource for Larix Broadcaster. v5.0.148 v6.0.36 (#3427)
* WHIP: Support DELETE resource.
* Support push by Larix.
* FLV: Disable stash buffer for realtime.
* WHEP: Fix muted issue.

-------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: panda <542638787@qq.com>
2023-03-23 10:01:20 +08:00
Winlin
c001acaae9
Support WHIP and WHEP player. v5.0.147 and v6.0.35 (#3460)
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: panda <542638787@qq.com>
2023-03-21 08:49:07 +08:00
chundonglinlin
02653ce2aa
API: Support server/pid/service label for exporter and api. (#3385)
* Exporter: Support server/pid/service.(#3378)
* API: Support return server/pid/service.(#3378)
* Use 8-length service id.
* Update release v5.0.135 v6.0.16

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: Haibo Chen <495810242@qq.com>
2023-01-18 07:25:44 +08:00
winlin
c46ef81ff2 SRS5: Update license date to 2023. v5.0.123
PICK 72f8ed4916
2023-01-01 08:56:20 +08:00
winlin
6d18093e16 Merge branch '4.0release' into develop 2022-09-10 21:25:38 +08:00
winlin
aea2bfbaf9 For #3174: WebRTC: Support Unity to publish or play stream. v4.0.264 2022-09-09 16:34:45 +08:00
winlin
3eb046612b Fix #3170: WebRTC: Support WHIP(WebRTC-HTTP ingestion protocol). v5.0.61 2022-09-06 18:48:46 +08:00
winlin
e47c3c410c Merge branch '4.0release' into develop 2022-09-06 18:47:22 +08:00
winlin
15610ca488 Fix #3170: WebRTC: Support WHIP(WebRTC-HTTP ingestion protocol). v4.0.262 2022-09-06 18:46:47 +08:00
winlin
6a108fab6d Fix #2837: Callback: Support stream_url and stream_id. v5.0.55 2022-08-31 08:00:05 +08:00
winlin
d117145b95 Update date from 2021 to 2022. 2022-06-20 19:22:25 +08:00
winlin
9d3ae5c8ed Merge branch '4.0release' into develop 2022-03-09 08:06:56 +08:00
winlin
e26db694ca RTC: Identify the WebRTC publisher in param for hooks. v4.0.247 2022-03-07 16:34:51 +08:00
winlin
d5c86dc5fa Switch LICENSE from MIT to **MIT or MulanPSL-2.0**. v5.0.21 2022-01-13 18:40:22 +08:00
winlin
93aa0eb5ba Squash: Fix bugs 2022-01-13 18:26:28 +08:00
chundonglinlin
584889754c
RTC: fix play rtc judge for config rtc2rtmp on.(#2863) (#2872) 2022-01-13 17:03:03 +08:00
winlin
4110fb14cb Squash: Fix bugs. v5.0.20 2022-01-11 08:40:37 +08:00
chundonglinlin
750c58beff
RTC: fix play rtc judge for rtmp inactive.(#2863) (#2867) 2022-01-11 08:18:06 +08:00
chundonglinlin
c85daeb12d
RTC: fix play crash or no stream for rtmp2rtc tips.(#2728) (#2863) 2022-01-10 19:14:11 +08:00
winlin
fbb6d9464c Discover api server and ip as candidates. v4.0.218 2022-01-04 22:31:27 +08:00
winlin
8bc2759c7e Refine error log for rtmp2rtc. (#2728). v4.0.215 2021-12-31 11:42:49 +08:00
winlin
523b055c06 Squash: Support RPM. Fix bugs. 2021-11-04 07:37:17 +08:00
john
2d6ec03c5b
RTC: Remove no need code when check sdp. (#2702) 2021-11-03 07:45:37 +08:00
winlin
f0910cf9b7 Squash: For #1758: Fix bug for marshal JSON with SDP. 2021-10-21 09:03:17 +08:00
winlin
31693d4b61 For #1758: Fix bug for marshal JSON with SDP. 2021-10-21 07:36:01 +08:00
Haibo Chen
dffc344747 RTC: For #1657, support http hooks n_play/stop/publish/unpublish (#2509)
* support http hooks for rtc: on_play/stop/publish/unpublish

* Update srs_app_rtc_conn.cpp

* Update srs_app_rtc_conn.cpp
2021-08-10 09:47:48 +08:00
Haibo Chen
345b691895
support http hooks for rtc: on_play/stop/publish/unpublish (#2509)
* support http hooks for rtc: on_play/stop/publish/unpublish

* Update srs_app_rtc_conn.cpp

* Update srs_app_rtc_conn.cpp
2021-08-10 09:41:20 +08:00
Haibo Chen
c048731049 Get original ip instead of proxy ip, for rtc api (#2514) v4.0.150 2021-08-07 23:41:16 +08:00
Haibo Chen
84d04adfff
get original ip instead of proxy ip, for rtc api (#2514) 2021-08-07 23:37:18 +08:00
Haibo Chen
86c67f7d95 RTC: Support statistic for HTTP-API, HTTP-Callback and Security (#2483) v4.0.144
* commit message for your changes. Lines starting

* Update srs_app_rtc_api.cpp

* add SrsRtcConnPlay and SrsRtcConnPublish, in enum SrsRtmpConnType

* Update srs_rtmp_stack.cpp

* Update srs_app_rtc_conn.cpp

* Update srs_app_rtc_api.cpp

* update utest

* Update srs_utest_app.cpp
2021-07-24 08:08:35 +08:00
Haibo Chen
0efd7b1bbc
RTC: Support statistic for HTTP-API, HTTP-Callback and Security (#2483)
* commit message for your changes. Lines starting

* Update srs_app_rtc_api.cpp

* add SrsRtcConnPlay and SrsRtcConnPublish, in enum SrsRtmpConnType

* Update srs_rtmp_stack.cpp

* Update srs_app_rtc_conn.cpp

* Update srs_app_rtc_api.cpp

* update utest

* Update srs_utest_app.cpp
2021-07-24 08:05:10 +08:00
winlin
8f91a90f28 Squash: Fix padding packets for RTMP2RTC 2021-07-08 14:37:18 +08:00
Winlin
c8a1e0f3da
Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8 (#2464)
* Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8

* Update README.md

* Update README.md

* Refine format for AUTHORS.md
2021-07-08 14:30:47 +08:00
winlin
10b9a81061 RTC: Support eip/candidate to set the eip of server 2021-07-08 14:25:38 +08:00
winlin
15901cacee SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3 2021-05-31 13:42:20 +08:00
winlin
3cd22b6e6e Use SPDX-License-Identifier: MIT. 4.0.124 2021-05-31 12:59:21 +08:00
winlin
a9f171144d SquashSRS4: Eliminate dead code 2021-05-24 08:17:59 +08:00