From a1b350c9f0a01093702dfa55a42eef2e6b186de2 Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sat, 9 Apr 2022 10:33:27 +0800 Subject: [PATCH] =?UTF-8?q?startSendRtp=E6=8E=A5=E5=8F=A3udp=E5=8F=91?= =?UTF-8?q?=E9=80=81=E4=B8=8D=E6=8C=87=E5=AE=9A=E7=AB=AF=E5=8F=A3=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=BB=8E=E7=AB=AF=E5=8F=A3=E6=B1=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=AB=AF=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Rtp/RtpSender.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Rtp/RtpSender.cpp b/src/Rtp/RtpSender.cpp index 71f52384..b870a821 100644 --- a/src/Rtp/RtpSender.cpp +++ b/src/Rtp/RtpSender.cpp @@ -31,7 +31,15 @@ void RtpSender::startSend(const MediaSourceEvent::SendRtpArgs &args, const funct _socket = Socket::createSocket(_poller, false); weak_ptr weak_self = shared_from_this(); if (args.is_udp) { - _socket->bindUdpSock(args.src_port); + if (args.src_port) { + //指定端口 + _socket->bindUdpSock(args.src_port); + } else { + auto pr = std::make_pair(std::move(_socket), Socket::createSocket(_poller, false)); + //从端口池获取随机端口 + makeSockPair(pr, "0.0.0.0", true); + _socket = std::move(pr.first); + } auto poller = _poller; auto local_port = _socket->get_local_port(); WorkThreadPool::Instance().getPoller()->async([cb, args, weak_self, poller, local_port]() {