From 6a95562dca570f289a6cd0e2d52e53b463f3d136 Mon Sep 17 00:00:00 2001 From: ziyue <1213642868@qq.com> Date: Thu, 1 Apr 2021 11:59:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A8=8D=E5=BE=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webrtc/Sdp.cpp | 4 +-- webrtc/WebRtcTransport.cpp | 60 ++++++++++++-------------------------- webrtc/WebRtcTransport.h | 2 -- 3 files changed, 20 insertions(+), 46 deletions(-) diff --git a/webrtc/Sdp.cpp b/webrtc/Sdp.cpp index ea0e8cf4..173299d4 100644 --- a/webrtc/Sdp.cpp +++ b/webrtc/Sdp.cpp @@ -1148,7 +1148,7 @@ RtcMedia *RtcSession::getMedia(TrackType type){ void RtcConfigure::RtcTrackConfigure::setDefaultSetting(TrackType type){ enable = true; rtcp_mux = true; - rtcp_rsize = true; + rtcp_rsize = false; group_bundle = true; unified_plan = false; support_rtx = true; @@ -1176,7 +1176,7 @@ void RtcConfigure::RtcTrackConfigure::setDefaultSetting(TrackType type){ break; } case TrackApplication: { - enable = true; + enable = false; break; } default: break; diff --git a/webrtc/WebRtcTransport.cpp b/webrtc/WebRtcTransport.cpp index 439b9c28..2cada4c4 100644 --- a/webrtc/WebRtcTransport.cpp +++ b/webrtc/WebRtcTransport.cpp @@ -103,53 +103,29 @@ std::string WebRtcTransport::getAnswerSdp(const string &offer){ } else { throw std::invalid_argument("支持group BUNDLE模式"); } + + SdpAttrCandidate candidate; + candidate.foundation = "udpcandidate"; + candidate.component = 1; + candidate.transport = "udp"; + candidate.priority = getSSRC(); + candidate.address = getIP(); + candidate.port = getPort(); + candidate.type = "host"; + for (auto &m :_answer_sdp->media) { + m.candidate.emplace_back(candidate); + m.port = getPort(); + m.rtcp_addr.address = getIP(); + m.rtcp_addr.port = getPort(); + m.addr.address = getIP(); + } + _answer_sdp->connection.address = getIP(); + auto str = _answer_sdp->toString(); InfoL << "\r\n" << str; return str; } -std::string WebRtcTransport::getOfferSdp() { - RTC::DtlsTransport::Fingerprint remote_fingerprint; - remote_fingerprint.algorithm = RTC::DtlsTransport::GetFingerprintAlgorithm("sha-256"); - remote_fingerprint.value = ""; - dtls_transport_->SetRemoteFingerprint(remote_fingerprint); - - char sdp[1024 * 10] = {0}; - auto ssrc = getSSRC(); - auto ip = getIP(); - auto pt = getPayloadType(); - auto port = getPort(); - sprintf(sdp, - "v=0\r\n" - "o=- 1495799811084970 1495799811084970 IN IP4 %s\r\n" - "s=Streaming Test\r\n" - "t=0 0\r\n" - "a=group:BUNDLE video\r\n" - "a=msid-semantic: WMS janus\r\n" - "m=video %u RTP/SAVPF %u\r\n" - "c=IN IP4 %s\r\n" - "a=mid:video\r\n" - "a=sendonly\r\n" - "a=rtcp-mux\r\n" - "a=ice-lite\r\n" - "a=ice-ufrag:%s\r\n" - "a=ice-pwd:%s\r\n" - "a=ice-options:trickle\r\n" - "a=fingerprint:sha-256 %s\r\n" - "a=setup:actpass\r\n" - "a=connection:new\r\n" - "a=rtpmap:%u H264/90000\r\n" - "a=ssrc:%u cname:janusvideo\r\n" - "a=ssrc:%u msid:janus janusv0\r\n" - "a=ssrc:%u mslabel:janus\r\n" - "a=ssrc:%u label:janusv0\r\n" - "a=candidate:%s 1 udp %u %s %u typ %s\r\n", - ip.c_str(), port, pt, ip.c_str(), - ice_server_->GetUsernameFragment().c_str(),ice_server_->GetPassword().c_str(), - "", pt, ssrc, ssrc, ssrc, ssrc, "4", ssrc, ip.c_str(), port, "host"); - return sdp; -} - bool is_dtls(char *buf) { return ((*buf > 19) && (*buf < 64)); } diff --git a/webrtc/WebRtcTransport.h b/webrtc/WebRtcTransport.h index 67a2083a..3a26b07b 100644 --- a/webrtc/WebRtcTransport.h +++ b/webrtc/WebRtcTransport.h @@ -20,8 +20,6 @@ public: std::string getAnswerSdp(const string &offer); - std::string getOfferSdp(); - /// 收到udp数据 /// \param buf /// \param len