diff --git a/src/Rtp/RtpSender.cpp b/src/Rtp/RtpSender.cpp index 6db6c3f5..f6234e6f 100644 --- a/src/Rtp/RtpSender.cpp +++ b/src/Rtp/RtpSender.cpp @@ -36,19 +36,15 @@ RtpSender::~RtpSender() { } void RtpSender::startSend(const MediaSource &sender, const MediaSourceEvent::SendRtpArgs &args, const function &cb){ - try { - _origin_socket = dynamic_pointer_cast(sender.getOriginSock()); - } catch (...) { - } + auto origin_socket = sender.getOriginSock(); + _origin_socket = dynamic_pointer_cast(origin_socket); if (!_origin_socket) { - try { - auto process = dynamic_pointer_cast(sender.getOriginSock()); - if (process) { - _origin_socket = process->getSock(); - } - } catch (...) { + auto process = dynamic_pointer_cast(origin_socket); + if (process) { + _origin_socket = process->getSock(); } } + _args = args; if (!_interface) { // 重连时不重新创建对象 [AUTO-TRANSLATED:b788cd5d] @@ -455,8 +451,8 @@ void RtpSender::onFlushRtpList(shared_ptr> rtp_list) { } default: CHECK(0); } - if (_socket_rtp->sockType() == toolkit::SockNum::Sock_TCP && _socket_rtp->isSocketBusy()) { - _socket_rtp->enableRecv(false); + if (_socket_rtp->sockType() == toolkit::SockNum::Sock_TCP && _socket_rtp->isSocketBusy() && _origin_socket) { + _origin_socket->enableRecv(false); } }); };