Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ossrs/srs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v6.0.36
Choose a base ref
...
head repository: ossrs/srs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: develop
Choose a head ref

Commits on Mar 25, 2023

  1. RTC: Call on_play before create session, for it might be freed for ti…

    …meout. v5.0.149, v6.0.37 (#3455)
    
    Co-authored-by: winlin <winlin@vip.126.com>
    Co-authored-by: ChenGH <chengh_math@126.com>
    3 people authored Mar 25, 2023
    Copy the full SHA
    d875571 View commit details
  2. Remove unneccessary NULL check in srs_freep. v5.0.150, v6.0.38 (#3477)

    Co-authored-by: winlin <winlin@vip.126.com>
    Co-authored-by: john <hondaxiao@tencent.com>
    3 people authored Mar 25, 2023
    Copy the full SHA
    b574ad1 View commit details

Commits on Mar 27, 2023

  1. WebRTC: Support configure CANDIDATE by env (#3470)

    In dockerfile, we can set the default RTC candidate to env:
    
    ```
    ENV SRS_RTC_SERVER_CANDIDATE=\$CANDIDATE
    CMD ["./objs/srs", "-e"]
    ```
    
    When starts a docker container, user can setup the candidate by env:
    
    ```
    docker run --rm -it --env CANDIDATE=1.2.3.4 ossrs/srs:5
    ```
    
    We should parse the content of SRS_RTC_SERVER_CANDIDATE as env variable name and parse it again.
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
    3 people authored Mar 27, 2023
    Copy the full SHA
    b34255c View commit details
  2. WebRTC: Error message carries the SDP when failed. v5.0.151, v6.0.39 (#…

    …3450)
    
    Co-authored-by: winlin <winlin@vip.126.com>
    Co-authored-by: ChenGH <chengh_math@126.com>
    3 people authored Mar 27, 2023
    Copy the full SHA
    571043f View commit details

Commits on Apr 1, 2023

  1. API: Support HTTP basic authentication for API. v6.0.4, v5.0.152 (#3458)

    Co-authored-by: winlin <winlin@vip.126.com>
    Co-authored-by: john <hondaxiao@tencent.com>
    3 people authored Apr 1, 2023
    Copy the full SHA
    771ae0a View commit details
  2. Support composited bridges for 1:N protocols converting. v6.0.41 (#3392)

    Co-authored-by: john <hondaxiao@tencent.com>
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    3 people authored Apr 1, 2023
    Copy the full SHA
    dcd02fe View commit details

Commits on Apr 8, 2023

  1. RTMP: Support enhanced RTMP specification for HEVC. v6.0.42 (#3495)

    * RTMP: Support enhanced RTMP specification for HEVC,  v6.0.42.
    * Player: Upgrade mpegts.js to support it.
    
    Enhanced RTMP specification: https://github.com/veovera/enhanced-rtmp
    
    First, start SRS `v6.0.42+` with HTTP-TS support:
    
    ```bash
    ./objs/srs -c conf/http.ts.live.conf
    ```
    
    Then, you can use [OBS 29.1+](https://github.com/obsproject/obs-studio/releases) to push HEVC via RTMP.
    Start OBS with the following settings in the `Settings > Stream` tab:
    
    * Server: `rtmp://localhost/live`
    * Stream Key: `livestream`
    * Encoder: Please select the HEVC hardware encoder.
    
    Finally, open the player http://localhost:8080/players/srs_player.html?stream=livestream.ts
    
    Or use VLS or ffplay to play `http://localhost:8080/live/livestream.ts`
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    winlinvip and chundonglinlin authored Apr 8, 2023
    Copy the full SHA
    26aabe4 View commit details

Commits on May 12, 2023

  1. 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>
    3 people committed May 12, 2023
    Copy the full SHA
    7cf8c48 View commit details
  2. 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>
    3 people authored May 12, 2023
    Copy the full SHA
    78f1ebf View commit details

Commits on May 14, 2023

  1. asan: Fix memory leak in asan by releasing global IPs when run_direct…

    …ly_or_daemon fails. v5.0.154, v6.0.44 (#3541)
    
    * asan: when run_directly_or_daemon failed, release gloabal ips
    
    * asan: refine global system ips release code
    
    * Update release to v5.0.154, v6.0.44
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    chen-guanghua and chundonglinlin authored May 14, 2023
    Copy the full SHA
    0629bee View commit details
  2. Replace sprintf with snprintf to eliminate compile warnings. v6.0.45 (#…

    …3534)
    
    * Replaced all occurrences of sprintf with snprintf to address deprecation warnings
    * Ensured proper buffer size is passed to snprintf to prevent potential buffer overflows
    * Ran tests to confirm that the changes do not introduce any new issues or regressions
    
    ---------
    
    Co-authored-by: ChenGH <chengh_math@126.com>
    chundonglinlin and chen-guanghua authored May 14, 2023
    Copy the full SHA
    c0e931a View commit details
  3. Release v6.0.45, a development version.

    Release v5.0-b0, 5.0 beta0, v5.0.155, 162600 lines.
    
    PICK 6e77653
    winlinvip committed May 14, 2023
    Copy the full SHA
    665c30a View commit details

Commits on May 29, 2023

  1. SSL: Fix SSL_get_error get the error of other coroutine. v5.0.155, v6…

    ….0.46 (#3513)
    
    
    ---------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    Co-authored-by: winlin <winlin@vip.126.com>
    3 people authored May 29, 2023
    Copy the full SHA
    27f9db9 View commit details

Commits on Jun 5, 2023

  1. DTLS: Use bio callback to get fragment packet. v5.0.156, v6.0.47 (#3565)

    1. The MTU is effective, with the certificate being split into two DTLS records to comply with the limit.
    2. The issue occurs when using BIO_get_mem_data, which retrieves all DTLS packets in a single call, even though each is smaller than the MTU.
    3. An alternative callback is available for using BIO_new with BIO_s_mem.
    4. Improvements to the MTU setting were made, including adding the DTLS_set_link_mtu function and removing the SSL_set_max_send_fragment function.
    5. The handshake process was refined, calling SSL_do_handshake only after ICE completion, and using SSL_read to handle handshake messages.
    6. The session close code was improved to enable immediate closure upon receiving an SSL CloseNotify or fatal message.
    
    ------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    winlinvip and chundonglinlin committed Jun 5, 2023
    Copy the full SHA
    104cf14 View commit details
  2. TEST: Upgrade pion to v3.2.9. (#3567)

    ------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    winlinvip and chundonglinlin authored Jun 5, 2023
    Copy the full SHA
    df85433 View commit details
  3. Copy the full SHA
    1d878c2 View commit details

Commits on Jun 12, 2023

  1. GB: Correct the range of HEVC keyframe error. v6.0.49 (#3570)

    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    2 people authored and winlinvip committed Jun 12, 2023
    Copy the full SHA
    7407987 View commit details

Commits on Jun 13, 2023

  1. TOC: Welcome to the new TOC member, ZhangJunqin. (#3579)

    ------
    
    Co-authored-by: ChenGH <chengh_math@126.com>
    Co-authored-by: Haibo Chen <495810242@qq.com>
    Co-authored-by: LiPeng <lipeng19811218@gmail.com>
    4 people authored Jun 13, 2023
    Copy the full SHA
    0ce2983 View commit details

Commits on Jun 15, 2023

  1. WHIP: Add OBS support, ensuring compatibility with a unique SDP. v5.0…

    ….158, v6.0.51 (#3581)
    
    1. Ignore SDP GROUP LS.
    2. Support ice in global session info.
    3. Support audio codec "OPUS" or "opus".
    
    ---------
    
    Co-authored-by: Johnny <hellojinqiang@gmail.com>
    winlinvip and johzzy authored Jun 15, 2023
    1
    Copy the full SHA
    7f997b3 View commit details

Commits on Jun 20, 2023

  1. Fix crash when process rtcp feedback message. v5.0.159, v6.0.52 (#3591)

    ---------
    
    Co-authored-by: johzzy <hellojinqiang@gmail.com>
    xiaozhihong and johzzy authored Jun 20, 2023
    1
    Copy the full SHA
    113a3dd View commit details
  2. Fix Permission Issue in depend.sh for OpenSSL Compilation. v5.0.160, …

    …v6.0.53 (#3592)
    
    ---------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    duiniuluantanqin and xiaozhihong authored Jun 20, 2023
    1
    Copy the full SHA
    be7faf6 View commit details
  3. Docker: Refine the main dockerfile. v6.0.54 (#3594)

    ------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    winlinvip and duiniuluantanqin authored Jun 20, 2023
    1
    Copy the full SHA
    8c061fc View commit details

Commits on Jun 21, 2023

  1. H264: Fix H.264 ISOM reserved bit value. v5.0.161, v6.0.55 (#3551)

    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    KazuoHagihara and chundonglinlin authored Jun 21, 2023
    1
    Copy the full SHA
    43dfb1b View commit details

Commits on Jun 29, 2023

  1. Switch to 5.0 document, because it's beta now. (#3609)

    ------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    winlinvip and xiaozhihong authored Jun 29, 2023
    1
    Copy the full SHA
    cb44e81 View commit details
  2. Upgrade jquery from 1.10.2 to 1.12.2 (#3571)

    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    panda1986 and chundonglinlin authored Jun 29, 2023
    1
    Copy the full SHA
    30c2f50 View commit details
  3. Improve the usage of "transcode" in the "full.conf" file. v5.0.162, v…

    …6.0.56 (#3596)
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    Co-authored-by: john <hondaxiao@tencent.com>
    3 people authored Jun 29, 2023
    1
    Copy the full SHA
    7ba59c3 View commit details

Commits on Jul 1, 2023

  1. BugFix: Resolve the problem of srs_error_t memory leak. v5.0.163, v6.…

    …0.57 (#3605)
    
    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    3 people authored Jul 1, 2023
    1
    Copy the full SHA
    fe23036 View commit details
  2. WHIP: Improve WHIP deletion by token verification. v5.0.164, v6.0.58 (#…

    …3595)
    
    ------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    winlinvip and chundonglinlin authored Jul 1, 2023
    1
    Copy the full SHA
    b1d1c7a View commit details

Commits on Jul 10, 2023

  1. Compile: Fix typo for 3rdparty. v5.0.166, v6.0.59 (#3615)

    ---------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    2 people authored and winlinvip committed Jul 10, 2023
    1
    Copy the full SHA
    cdbe50b View commit details
  2. 1
    Copy the full SHA
    a1c7b9f View commit details

Commits on Jul 18, 2023

  1. WebRTC: Support config the bitrate of transcoding AAC to Opus. v5.0.1…

    …67, v6.0.60 (#3515)
    
    ---------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    chundonglinlin and xiaozhihong authored Jul 18, 2023
    1
    Copy the full SHA
    3fa4f66 View commit details

Commits on Jul 21, 2023

  1. API: Fix HTTPS callback issue using SNI in TLS client handshake. v4.0…

    ….270, v5.0.168, v6.0.61 (#3695)
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    xiaozhihong and chundonglinlin authored Jul 21, 2023
    1
    Copy the full SHA
    b5f50f3 View commit details

Commits on Jul 26, 2023

  1. Bugfix: Eliminate the redundant declaration of the _srs_rtc_manager v…

    …ariable. v5.0.169 v6.0.62 (#3699)
    
    It is advised to eliminate any instances of _srs_rtc_manager that occur
    multiple times.
    
    ---------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    3 people authored Jul 26, 2023
    1
    Copy the full SHA
    2777351 View commit details

Commits on Jul 27, 2023

  1. The identifier "ShowCouroutines" needs to be modified to "ShowCorouti…

    …nes" in order to rectify the typographical error. v6.0.63 (#3703)
    
    Correct the word errors by changing "ShowCoroutines" to "ShowCoroutines".
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    Co-authored-by: john <hondaxiao@tencent.com>
    3 people authored Jul 27, 2023
    1
    Copy the full SHA
    34747fa View commit details
  2. Support helm to optimize the deployment procedure of a SRS cluster. v…

    …6.0.64 (#3611)
    
    1. Introduce a novel Docker tag in the x.y.z format, akin to the HELM
    format, such as ossrs/srs:5.0.155.
    2. Incorporate the SRS_PLATFORM flag for containers initiated through
    HELM.
    
    ---------
    
    `TRANS_BY_GPT3`
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    winlinvip and chundonglinlin authored Jul 27, 2023
    1
    Copy the full SHA
    e19efe0 View commit details

Commits on Aug 2, 2023

  1. HLS: Ignore empty NALU to avoid error. v6.0.65 (#3750)

    For the DJI M30, there is a bug where empty NALU packets with a size of
    zero are causing issues with HLS streaming. This bug leads to random
    unpublish events due to the SRS disconnecting the connection for the HLS
    module when it fails to handle empty NALU packets.
    
    To address this bug, we have patched the system to ignore any empty NALU
    packets with a size of zero. Additionally, we have created a tool in the
    srs-bench to replay pcapng files captured by tcpdump or Wireshark. We
    have also added utest using mprotect and asan to detect any memory
    corruption.
    
    It is important to note that this bug has been fixed in versions 4.0.271
    6477f31 and 5.0.170
    939f6b4. This patch specifically
    addresses the issue in SRS 6.0.
    
    Please be aware that there is another commit related to this bug that
    partially fixes the issue but still leaves a small problem for asan to
    detect memory corruption. This commit,
    577cd29, only ignores empty NALU
    packets but still reads beyond the memory.
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    winlinvip and chundonglinlin authored Aug 2, 2023
    1
    Copy the full SHA
    73dd8af View commit details

Commits on Aug 9, 2023

  1. Copy the full SHA
    fe38804 View commit details

Commits on Aug 22, 2023

  1. Bugfix: Log format output type does not match. v5.0.171, v6.0.66 (#3775)

    A segmentation fault occurred on arm
    #3714
    
    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    terrencetang2023 and duiniuluantanqin authored Aug 22, 2023
    Copy the full SHA
    6babf01 View commit details

Commits on Aug 25, 2023

  1. HLS: Support reload HLS asynchronously. v5.0.172 v6.0.67 (#3782)

    When reloading HLS, it directly operates unpublish and publish. At this
    time, if HLS is pushed, an exception may occur.
    
    The reason is that these two coroutines operated on the HLS object at
    the same time, causing a null pointer.
    
    Solution: Use asynchronous reload. During reload, only set variables and
    let the message processing coroutine implement the reload.
    
    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    3 people committed Aug 25, 2023
    Copy the full SHA
    b5347e1 View commit details

Commits on Aug 28, 2023

  1. Support include empty config file. v5.0.173 v6.0.68 (#3768)

    SRS supports including another configuration in the include package.
    When generating configurations, we can only generate the changed
    configurations, while the unchanged configurations are in the fixed
    files, for example:
    
    ```nginx
    listen 1935;
    include server.conf;
    ```
    
    In `server.conf`, we can manage the changing configurations with the
    program:
    
    ```nginx
    http_api { enabled on; }
    ```
    
    However, during system initialization, we often create an empty
    `server.conf`, and the content is generated only after the program
    starts, so `server.conf` might be an empty file. This also makes it
    convenient to use a script to confirm the existence of this file:
    
    ```bash
    touch server.conf
    ```
    
    Currently, SRS does not support empty configurations and will report an
    error. This PR is to solve this problem, making it more convenient to
    use include.
    
    `TRANS_BY_GPT4`
    
    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    winlinvip and duiniuluantanqin committed Aug 28, 2023
    Copy the full SHA
    cf46dae View commit details
  2. HLS: Fix on_hls and hls_dispose critical zone issue. v5.0.174 v6.0.69 (

    …#3781)
    
    on_hls and hls_dispose are two coroutines, with potential race
    conditions. That is, during on_hls, if the API Server being accessed is
    slower, it will switch to the hls_dispose coroutine to start cleaning
    up. However, when the API Server is processing the slice, a situation
    may occur where the slice does not exist, resulting in the following
    log:
    
    ```
    [2023-08-22 12:03:20.309][WARN][40][x5l48q7b][11] ignore task failed code=4005(HttpStatus)(Invalid HTTP status code) : callback on_hls http://localhost:2024/terraform/v1/hooks/srs/hls : http: post http://localhost:2024/terraform/v1/hooks/srs/hls with {"server_id":"vid-5d7dxn8","service_id":"cu153o7g","action":"on_hls","client_id":"x5l48q7b","ip":"172.17.0.1","vhost":"__defaultVhost__","app":"live","tcUrl":"srt://172.17.0.2/live","stream":"stream-44572-2739617660809856576","param":"secret=1ed8e0ffbc53439c8fc8da30ab8c19f0","duration":4.57,"cwd":"/usr/local/srs-stack/platform","file":"./objs/nginx/html/live/stream-44572-2739617660809856576-1.ts","url":"live/stream-44572-2739617660809856576-1.ts","m3u8":"./objs/nginx/html/live/stream-44572-2739617660809856576.m3u8","m3u8_url":"live/stream-44572-2739617660809856576.m3u8","seq_no":1,"stream_url":"/live/stream-44572-2739617660809856576","stream_id":"vid-0n9zoz3"}, status=500, res=invalid ts file ./objs/nginx/html/live/stream-44572-2739617660809856576-1.ts: stat ./objs/nginx/html/live/stream-44572-2739617660809856576-1.ts: no such file or directory
    thread [40][x5l48q7b]: call() [./src/app/srs_app_hls.cpp:122][errno=11]
    thread [40][x5l48q7b]: on_hls() [./src/app/srs_app_http_hooks.cpp:401][errno=11]
    thread [40][x5l48q7b]: do_post() [./src/app/srs_app_http_hooks.cpp:638][errno=11]
    
    [error] 2023/08/22 12:03:20.076984 [52][1001] Serve /terraform/v1/hooks/srs/hls failed, err is stat ./objs/nginx/html/live/stream-44572-2739617660809856576-1.ts: no such file or directory
    invalid ts file ./objs/nginx/html/live/stream-44572-2739617660809856576-1.ts
    main.handleOnHls.func1.1
    	/g/platform/srs-hooks.go:684
    main.handleOnHls.func1
    	/g/platform/srs-hooks.go:720
    net/http.HandlerFunc.ServeHTTP
    	/usr/local/go/src/net/http/server.go:2084
    net/http.(*ServeMux).ServeHTTP
    	/usr/local/go/src/net/http/server.go:2462
    net/http.serverHandler.ServeHTTP
    	/usr/local/go/src/net/http/server.go:2916
    net/http.(*conn).serve
    	/usr/local/go/src/net/http/server.go:1966
    runtime.goexit
    	/usr/local/go/src/runtime/asm_amd64.s:1571
    ```
    
    Similarly, when stopping the stream, on_hls will also be called to
    handle the last slice. If the API Server is slower at this time, it will
    enter hls_dispose and call unpublish repeatedly. Since the previous
    unpublish is still blocked in on_hls, the following interference log
    will appear:
    
    ```
    [2023-08-22 12:03:18.748][INFO][40][6498088c] hls cycle to dispose hls /live/stream-44572-2739617660809856576, timeout=10000000ms
    [2023-08-22 12:03:18.752][WARN][40][6498088c][115] flush audio ignored, for segment is not open.
    [2023-08-22 12:03:18.752][WARN][40][6498088c][115] ignore the segment close, for segment is not open.
    ```
    
    Although this log will not cause problems, it can interfere with
    judgment.
    
    The solution is to add an 'unpublishing' status. If it is in the
    'unpublishing' status, then do not clean up the slices.
    
    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    winlinvip and duiniuluantanqin committed Aug 28, 2023
    Copy the full SHA
    cff5064 View commit details
  3. SrsContextId assignment can be improved without create a duplicated o…

    …ne. v5.0.175 v6.0.70 (#3503)
    
    SrsContextId object creation can be improved on `srs_protocol_log.cpp`,
    No need to create one, then assign it back. It seems a common mistake
    for Cpp programmers.
    
    ---------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    suzp1984 and xiaozhihong authored Aug 28, 2023
    Copy the full SHA
    bb93311 View commit details

Commits on Aug 30, 2023

  1. Support HTTP-API for fetching reload result. v5.0.176 v6.0.71 (#3779)

    ## Reload Error Ignore
    
    During a Reload, several stages will be passed through:
    1. Parsing new configurations: Parse.
    2. Transforming configurations: Transform.
    3. Applying configurations: Apply.
    
    Previously, any error at any stage would result in a direct exit, making
    the system completely dependent on configuration checks:
    
    ```bash
    ./objs/srs -c conf/srs.conf -t
    echo $?
    #0
    ```
    
    Optimized to: If an error occurs before applying the configuration, it
    can be ignored. If an error occurs during the application of the
    configuration, some of the configuration may have already taken effect,
    leading to unpredictable behavior, so SRS will exit directly.
    
    ## Reload Fetch API
    
    Added a new HTTP API to query the result of the reload.
    
    ```nginx
    http_api {
        enabled         on;
        raw_api {
            enabled on;
            allow_reload on;
        }
    }
    ```
    
    ```bash
    curl http://localhost:1985/api/v1/raw?rpc=reload-fetch
    ```
    
    ```json
    {
      "code": 0,
      "data": {
        "err": 0,
        "msg": "Success",
        "state": 0,
        "rid": "0s6y0n9"
      }
    }
    
    {
      "code": 0,
      "data": {
        "err": 1023,
        "msg": "code=1023(ConfigInvalid) : parse file : parse buffer containers/conf/srs.release-local.conf : root parse : parse dir : parse include buffer containers/data/config/srs.vhost.conf : read token, line=0, state=0 : line 3: unexpected end of file, expecting ; or \"}\"",
        "state": 1,
        "rid": "0g4z471"
      }
    }
    ```
    
    This way, you can know if the last reload of the system was successful.
    
    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    winlinvip and duiniuluantanqin authored Aug 30, 2023
    Copy the full SHA
    aa5ec87 View commit details

Commits on Aug 31, 2023

  1. Compile: Add aarch64 to the conditions of use of the cbrt function. v…

    …6.0.72 (#3776)
    
    I got an error when cross-compiling the aarch64 platform, the log is as
    follows:
    `./libavutil/libm.h:54:32: error: static declaration of 'cbrt' follows
    non-static declaration`
    I see that there are such compilation errors in the
    trunk/auto/depends.sh file that have been resolved for the ARM and MIPSE
    platforms, and it is recommended to add the ARCH64 platform
    terrencetang2023 authored Aug 31, 2023
    Copy the full SHA
    a2e10f1 View commit details
  2. Copy the full SHA
    7138edd View commit details

Commits on Sep 4, 2023

  1. Remove unreachable issues in code (#3793)

    remove unreachable links by python scripts:
    ```
    def is_delete_issue(link):
        try:
            response = requests.get(link)
        except RequestException as e:
            print(f"An error occurred while trying to get the link: {e}")
            return False
    
        return "This issue has been deleted." in response.text
    
    
    def remove_unreachable_links(dir):
        string_to_search = re.compile(r'// @see https://github\.com/ossrs/srs/issues/.*')
        file_list = util.find_files_with_extension(dir, ".cpp", True)
        for file in file_list:
            lines = []
            with open(file, "r", encoding="utf-8") as f:
                lines = f.readlines()
            with open(file, "w", encoding="utf-8", newline="\n") as f:    
                for line in lines:
                    if string_to_search.search(line):
                        result = re.search(r'https://github\.com/ossrs/srs/issues/\d+', line)
                        if result:
                            link = result.group()
                            if is_delete_issue(link):
                                print("is_delete_issue link: file: %s, line: %s" % (file, line))
                                continue
                        
                    f.write(line)
    
    if __name__ == "__main__":
        remove_unreachable_links("srs/trunk/src/")
    ```
    duiniuluantanqin authored Sep 4, 2023
    Copy the full SHA
    6e6b80d View commit details

Commits on Sep 7, 2023

  1. Fix dash crash if format not supported. v5.0.177 v6.0.73 (#3795)

    Fix the issue of DASH crashing when audio/video formats are not
    supported.
    
    ---------
    
    Co-authored-by: Haibo Chen <495810242@qq.com>
    xiaozhihong and duiniuluantanqin authored Sep 7, 2023
    Copy the full SHA
    26b3154 View commit details

Commits on Sep 8, 2023

  1. Support SRS Stack token for authentication. v6.0.74 (#3794)

    When accessing the SRS Stack, you should log in and use a token for each
    request, or utilize the HTTP API with a secret Bearer token included in
    every request. The SRS Stack HTTP API proxies both /api/v1 and /rtc/v1
    to the SRS HTTP API while ensuring secure authentication. Additionally,
    there is a console in the SRS Stack that requires the same token to
    request the SRS Stack HTTP API, which is then proxied to the SRS HTTP
    API.
    
    The SRS Stack runs SRS with the HTTP API listening at 127.0.0.1:1985 on
    the local loopback interface, allowing only the SRS Stack to access it
    without authentication. All other users must login and access the SRS
    Stack through its interface, rather than directly accessing the SRS HTTP
    API within the SRS Stack.
    
    ---------
    
    Co-authored-by: panda <542638787@qq.com>
    winlinvip and panda1986 authored Sep 8, 2023
    Copy the full SHA
    6f42ca6 View commit details

Commits on Sep 9, 2023

  1. Fix RBSP issue, where 0x03 should be removed. v5.0.178 v6.0.75 (#3597)

    ISO_IEC_14496-10-AVC-2012.pdf, page 65
    7.4.1.1 Encapsulation of an SODB within an RBSP (informative)
    
    ... 00 00 03 xx, the 03 byte should be drop where xx represents any 2
    bit pattern: 00, 01, 10, or 11.
    
    ---------
    
    Co-authored-by: john <hondaxiao@tencent.com>
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    Co-authored-by: winlin <winlin@vip.126.com>
    4 people committed Sep 9, 2023
    Copy the full SHA
    add0f36 View commit details

Commits on Sep 18, 2023

  1. Bugfix: HEVC SRT stream supports multiple PPS fields. v6.0.76 (#3722)

    When the srs have multiple pps in hevc.the srs can't parse for this.
    problem fixed this #3604
    
    ---------
    
    Co-authored-by: chundonglinlin <chundonglinlin@163.com>
    Co-authored-by: john <hondaxiao@tencent.com>
    3 people authored and winlinvip committed Sep 18, 2023
    Copy the full SHA
    4362df7 View commit details
Showing 2,029 changed files with 187,277 additions and 52,346 deletions.
4 changes: 2 additions & 2 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
github: [winlinvip] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with patreon id.
open_collective: srs-server
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

!!! Before submitting a new bug report, please ensure you have searched for any existing bugs. Duplicate issues or
questions that are overly simple or already addressed in the documentation will be removed without any
response.

**Describe the bug**
A clear and concise description of what the bug is.

**Version**
Desribe your SRS Server version here.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Additional context**
Add any other context about the problem here.
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature
assignees: ''

---

!!! Before submitting a new feature request, please ensure you have searched for any existing features and utilized
the `Ask AI` feature at https://ossrs.io or https://ossrs.net (for users in China). Duplicate issues or
questions that are overly simple or already addressed in the documentation will be removed without any
response.

**What is the business background? Please provide a description.**
Who are the users? How do they utilize this feature? What problem does this feature address?

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
65 changes: 0 additions & 65 deletions .github/issue_template.md

This file was deleted.

5 changes: 0 additions & 5 deletions .github/pull_request_template.md

This file was deleted.

48 changes: 35 additions & 13 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ name: "Release"
on:
push:
tags:
- v6*
- v7*

# For draft, need write permission.
permissions:
@@ -25,6 +25,7 @@ jobs:
# SRS_VERSION=6.0.145
# SRS_VERSION=6.0-r8
# SRS_MAJOR=6
# SRS_XYZ=6.0.145
# @see https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
- name: Generate varaiables
run: |
@@ -34,11 +35,18 @@ jobs:
echo "SRS_VERSION=$SRS_VERSION" >> $GITHUB_ENV
SRS_MAJOR=$(echo $SRS_TAG| cut -c 2)
echo "SRS_MAJOR=$SRS_MAJOR" >> $GITHUB_ENV
VFILE="trunk/src/core/srs_core_version6.hpp"
SRS_X=$(cat $VFILE |grep VERSION_MAJOR |awk '{print $3}')
SRS_Y=$(cat $VFILE |grep VERSION_MINOR |awk '{print $3}')
SRS_Z=$(cat $VFILE |grep VERSION_REVISION |awk '{print $3}')
SRS_XYZ=$SRS_X.$SRS_Y.$SRS_Z
echo "SRS_XYZ=$SRS_XYZ" >> $GITHUB_ENV
# Map a step output to a job output, see https://docs.github.com/en/actions/using-jobs/defining-outputs-for-jobs
outputs:
SRS_TAG: ${{ env.SRS_TAG }}
SRS_VERSION: ${{ env.SRS_VERSION }}
SRS_MAJOR: ${{ env.SRS_MAJOR }}
SRS_XYZ: ${{ env.SRS_XYZ }}
runs-on: ubuntu-20.04

test:
@@ -67,7 +75,7 @@ jobs:
- name: Run SRS regression-test
run: |
docker run --rm srs:test bash -c 'make && \
./objs/srs -c conf/regression-test.conf && \
./objs/srs -c conf/regression-test.conf && sleep 10 && \
cd 3rdparty/srs-bench && make && ./objs/srs_test -test.v'
runs-on: ubuntu-20.04

@@ -100,7 +108,7 @@ jobs:
# See https://github.com/cygwin/cygwin-install-action#parameters
# Note that https://github.com/egor-tensin/setup-cygwin fails to install packages.
- name: Setup Cygwin
uses: cygwin/cygwin-install-action@db475590d56881c6cef7b3f96f6f3dd9532ea1f4 # master
uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # master
with:
platform: x86_64
packages: bash make gcc-g++ cmake automake patch pkg-config tcl unzip
@@ -242,6 +250,7 @@ jobs:
echo "SRS_TAG=${{ needs.envs.outputs.SRS_TAG }}" >> $GITHUB_ENV
echo "SRS_VERSION=${{ needs.envs.outputs.SRS_VERSION }}" >> $GITHUB_ENV
echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_MAJOR }}" >> $GITHUB_ENV
echo "SRS_XYZ=${{ needs.envs.outputs.SRS_XYZ }}" >> $GITHUB_ENV
##################################################################################################################
# Git checkout
- name: Checkout repository
@@ -267,7 +276,9 @@ jobs:
echo "Release ossrs/srs:$SRS_TAG"
docker buildx build --platform linux/arm/v7,linux/arm64/v8,linux/amd64 \
--output "type=image,push=true" \
-t ossrs/srs:$SRS_TAG --build-arg SRS_AUTO_PACKAGER=$PACKAGER -f trunk/Dockerfile .
-t ossrs/srs:$SRS_TAG --build-arg SRS_AUTO_PACKAGER=$PACKAGER \
--build-arg CONFARGS='--sanitizer=off --gb28181=on' \
-f Dockerfile .
# Docker alias images
# TODO: FIXME: If stable, please set the latest from 5.0 to 6.0
- name: Docker alias images for ossrs/srs
@@ -278,6 +289,8 @@ jobs:
ossrs/srs:${{ env.SRS_VERSION }}
ossrs/srs:${{ env.SRS_MAJOR }}
ossrs/srs:v${{ env.SRS_MAJOR }}
ossrs/srs:${{ env.SRS_XYZ }}
ossrs/srs:v${{ env.SRS_XYZ }}
runs-on: ubuntu-20.04

aliyun-srs:
@@ -293,6 +306,7 @@ jobs:
echo "SRS_TAG=${{ needs.envs.outputs.SRS_TAG }}" >> $GITHUB_ENV
echo "SRS_VERSION=${{ needs.envs.outputs.SRS_VERSION }}" >> $GITHUB_ENV
echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_MAJOR }}" >> $GITHUB_ENV
echo "SRS_XYZ=${{ needs.envs.outputs.SRS_XYZ }}" >> $GITHUB_ENV
# Aliyun ACR
# TODO: FIXME: If stable, please set the latest from 5.0 to 6.0
- name: Login aliyun hub
@@ -310,6 +324,8 @@ jobs:
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_VERSION }}
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_MAJOR }}
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v${{ env.SRS_MAJOR }}
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_XYZ }}
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v${{ env.SRS_XYZ }}
runs-on: ubuntu-20.04

update:
@@ -392,6 +408,7 @@ jobs:
echo "SRS_TAG=${{ needs.envs.outputs.SRS_TAG }}" >> $GITHUB_ENV
echo "SRS_VERSION=${{ needs.envs.outputs.SRS_VERSION }}" >> $GITHUB_ENV
echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_MAJOR }}" >> $GITHUB_ENV
echo "SRS_XYZ=${{ needs.envs.outputs.SRS_XYZ }}" >> $GITHUB_ENV
echo "SRS_RELEASE_ID=${{ needs.draft.outputs.SRS_RELEASE_ID }}" >> $GITHUB_ENV
echo "SRS_PACKAGE_ZIP=${{ needs.linux.outputs.SRS_PACKAGE_ZIP }}" >> $GITHUB_ENV
echo "SRS_PACKAGE_MD5=${{ needs.linux.outputs.SRS_PACKAGE_MD5 }}" >> $GITHUB_ENV
@@ -405,7 +422,7 @@ jobs:
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
# Create release.
# TODO: FIXME: Refine the release when 6.0 released
# TODO: FIXME: Change prerelease to false when 6.0 released
# TODO: FIXME: Change prerelease to false and makeLatest to true when 6.0 released
- name: Update release
id: update_release
uses: ncipollo/release-action@a2e71bdd4e7dab70ca26a852f29600c98b33153e # v1.12.0
@@ -416,6 +433,8 @@ jobs:
tag: ${{ github.ref }}
name: Release ${{ env.SRS_TAG }}
body: |
If you would like to support SRS, please consider contributing to our [OpenCollective](https://opencollective.com/srs-server).
[${{ github.sha }}](https://github.com/ossrs/srs/commit/${{ github.sha }})
${{ github.event.head_commit.message }}
@@ -430,24 +449,27 @@ jobs:
* Binary: ${{ env.SRS_CYGWIN_MD5 }} [${{ env.SRS_CYGWIN_TAR }}](https://gitee.com/ossrs/srs/releases/download/${{ env.SRS_TAG }}/${{ env.SRS_CYGWIN_TAR }})
## Docker
* [docker pull ossrs/srs:${{ env.SRS_MAJOR }}](https://ossrs.io/lts/en-us/docs/v5/doc/getting-started)
* [docker pull ossrs/srs:${{ env.SRS_TAG }}](https://ossrs.io/lts/en-us/docs/v5/doc/getting-started)
* [docker pull ossrs/srs:${{ env.SRS_MAJOR }}](https://ossrs.io/lts/en-us/docs/v7/doc/getting-started)
* [docker pull ossrs/srs:${{ env.SRS_TAG }}](https://ossrs.io/lts/en-us/docs/v7/doc/getting-started)
* [docker pull ossrs/srs:${{ env.SRS_XYZ }}](https://ossrs.io/lts/en-us/docs/v7/doc/getting-started)
## Docker Mirror: aliyun.com
* [docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_MAJOR }}](https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started)
* [docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_TAG }}](https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started)
* [docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_MAJOR }}](https://ossrs.net/lts/zh-cn/docs/v7/doc/getting-started)
* [docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_TAG }}](https://ossrs.net/lts/zh-cn/docs/v7/doc/getting-started)
* [docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:${{ env.SRS_XYZ }}](https://ossrs.net/lts/zh-cn/docs/v7/doc/getting-started)
## Doc: ossrs.io
* [Getting Started](https://ossrs.io/lts/en-us/docs/v5/doc/getting-started)
* [Wiki home](https://ossrs.io/lts/en-us/docs/v5/doc/introduction)
* [Getting Started](https://ossrs.io/lts/en-us/docs/v7/doc/getting-started)
* [Wiki home](https://ossrs.io/lts/en-us/docs/v7/doc/introduction)
* [FAQ](https://ossrs.io/lts/en-us/faq), [Features](https://github.com/ossrs/srs/blob/${{ github.sha }}/trunk/doc/Features.md#features) or [ChangeLogs](https://github.com/ossrs/srs/blob/${{ github.sha }}/trunk/doc/CHANGELOG.md#changelog)
## Doc: ossrs.net
* [快速入门](https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started)
* [中文Wiki首页](https://ossrs.net/lts/zh-cn/docs/v5/doc/introduction)
* [快速入门](https://ossrs.net/lts/zh-cn/docs/v7/doc/getting-started)
* [中文Wiki首页](https://ossrs.net/lts/zh-cn/docs/v7/doc/introduction)
* [中文FAQ](https://ossrs.net/lts/zh-cn/faq), [功能列表](https://github.com/ossrs/srs/blob/${{ github.sha }}/trunk/doc/Features.md#features) 或 [修订历史](https://github.com/ossrs/srs/blob/${{ github.sha }}/trunk/doc/CHANGELOG.md#changelog)
draft: false
prerelease: true
makeLatest: false
runs-on: ubuntu-20.04

release-done:
73 changes: 0 additions & 73 deletions .github/workflows/scorecard.yml

This file was deleted.

Loading