mirror of
https://github.com/ossrs/srs.git
synced 2025-11-23 19:34:05 +08:00
Fix issue #4570 by supporting optional `msid` attribute in WebRTC SDP negotiation, enabling compatibility with libdatachannel and other clients that don't include msid information. SRS failed to negotiate WebRTC connections from libdatachannel clients because: - libdatachannel SDP lacks `a=ssrc:XX msid:stream_id track_id` attributes - SRS required msid information to create track descriptions - According to RFC 8830, the msid attribute and its appdata (track_id) are **optional** If diligently look at the SDP generated by libdatachannel: ``` a=ssrc:42 cname:video-send a=ssrc:43 cname:audio-send ``` It's deliberately missing the `a=ssrc:XX msid:stream_id track_id` line, comparing that with this one: ``` a=ssrc:42 cname:video-send a=ssrc:42 msid:stream_id video_track_id a=ssrc:43 cname:audio-send a=ssrc:43 msid:stream_id audio_track_id ``` In such a situation, to keep compatible with libdatachannel, if no msid line in sdp, SRS comprehensively and consistently uses: * app/stream as stream_id, such as live/livestream * type=video|audio, cname, and ssrc as track_id, such as track-video-video-send-43
This commit is contained in:
5
.vscode/README.md
vendored
5
.vscode/README.md
vendored
@@ -40,6 +40,11 @@ cmake --build $HOME/git/srs/trunk/cmake/build
|
||||
|
||||
## macOS: SRS UTest
|
||||
|
||||
The most straightforward way is to select a test name like `WorkflowRtcManuallyVerifyForPublisher`,
|
||||
then select `Debug gtest (macOS CodeLLDB)` and run the debug.
|
||||
|
||||
Or you can use the following way to run specified test from the test panel.
|
||||
|
||||
Install the following extensions:
|
||||
|
||||
- C++ TestMate
|
||||
|
||||
Reference in New Issue
Block a user