mirror of
https://gitee.com/xia-chu/ZLMediaKit.git
synced 2026-05-06 10:57:50 +08:00
|
Some checks failed
Android / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Docker / build (push) Has been cancelled
DockerPy / build (push) Has been cancelled
Linux / build (push) Has been cancelled
Linux_Python / build (push) Has been cancelled
macOS / build (push) Has been cancelled
macOS_Python / build (push) Has been cancelled
Windows / build (push) Has been cancelled
Windows_Python / build (push) Has been cancelled
## Summary This PR fixes GStreamer interoperability issues during WebRTC/WHEP negotiation with ZLMediaServer. GStreamer could fail to establish the connection for two separate reasons: 1. ZLMediaServer generated a non-compliant ICE `ufrag`. The generated value contained `_`, which is not a valid ICE character, so GStreamer rejected the SDP. 2. ZLMediaServer did not correctly handle `bundle-only` offers and could answer an accepted bundled m-line with `port=0`, which caused the later WHEP negotiation to fail. ## Changes - Generate ICE `ufrag` values using ICE-compliant characters only. - Preserve and handle `a=bundle-only` correctly during SDP parsing and answer generation. - Return `port=9` instead of `port=0` for accepted bundled m-lines. - Add regression coverage for `bundle-only` SDP handling. - URL-encode `delete_webrtc` query parameters in the returned `Location` header so ICE-safe identifiers remain round-trippable over HTTP. ## Validation - Built with WebRTC and SCTP enabled. - Added regression test: `test_webrtc_regression` - Verified: - ICE-safe identifier round-trip through `delete_webrtc` - `bundle-only` SDP answer generation |
||
|---|---|---|
| .. | ||
| DeviceHK | ||
| bom.cpp | ||
| CMakeLists.txt | ||
| README.md | ||
| tab.cpp | ||
| test_bench_forward.cpp | ||
| test_bench_proxy.cpp | ||
| test_bench_pull.cpp | ||
| test_bench_push.cpp | ||
| test_flv.cpp | ||
| test_http_head.cpp | ||
| test_httpApi.cpp | ||
| test_httpClient.cpp | ||
| test_ps.cpp | ||
| test_pusher.cpp | ||
| test_pusherMp4.cpp | ||
| test_rtcp_nack.cpp | ||
| test_rtp_pcap.cpp | ||
| test_rtp.cpp | ||
| test_server.cpp | ||
| test_sortor.cpp | ||
| test_webrtc_regression.cpp | ||
| test_wsClient.cpp | ||
| test_wsServer.cpp | ||
此目录下的所有.cpp文件将被编译成可执行程序(不包含此目录下的子目录). 子目录DeviceHK为海康IPC的适配程序,需要先下载海康的SDK才能编译, 由于操作麻烦,所以仅把源码放在这里仅供参考.
-
test_benchmark.cpp
rtsp/rtmp性能测试客户端
-
test_httpApi.cpp
http api 测试服务器
-
test_httpClient.cpp
http 测试客户端
-
test_player.cpp
rtsp/rtmp带视频渲染的客户端
-
test_pusher.cpp
先拉流再推流的测试客户端
-
test_pusherMp4.cpp
解复用mp4文件再推流的测试客户端
-
test_server.cpp
rtsp/rtmp/http等服务器
-
test_wsClient.cpp
websocket测试客户端
-
test_wsServer.cpp
websocket回显测试服务器