From 121b78e5dd144f7cd9a3e0f813bb67d3f89927b5 Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sat, 2 Jul 2022 15:36:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E6=B5=81=E5=99=A8=E4=B8=BB=E5=8A=A8?= =?UTF-8?q?=E6=96=AD=E5=BC=80=E6=97=B6=EF=BC=8C=E9=81=BF=E5=85=8D=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E6=96=AD=E6=B5=81=E7=BB=AD=E6=8E=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Rtmp/RtmpSession.cpp | 3 ++- src/Rtsp/RtspSession.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Rtmp/RtmpSession.cpp b/src/Rtmp/RtmpSession.cpp index 566fcad1..fea6f27d 100644 --- a/src/Rtmp/RtmpSession.cpp +++ b/src/Rtmp/RtmpSession.cpp @@ -219,10 +219,11 @@ void RtmpSession::onCmd_publish(AMFDecoder &dec) { } void RtmpSession::onCmd_deleteStream(AMFDecoder &dec) { + _push_src = nullptr; + //此时回复可能触发broken pipe事件,从而直接触发onError回调;所以需要先把_push_src置空,防止触发断流续推功能 sendStatus({ "level", "status", "code", "NetStream.Unpublish.Success", "description", "Stop publishing." }); - _push_src = nullptr; throw std::runtime_error(StrPrinter << "Stop publishing" << endl); } diff --git a/src/Rtsp/RtspSession.cpp b/src/Rtsp/RtspSession.cpp index f7093d63..125bcc2f 100644 --- a/src/Rtsp/RtspSession.cpp +++ b/src/Rtsp/RtspSession.cpp @@ -867,8 +867,9 @@ void RtspSession::handleReq_Pause(const Parser &parser) { } void RtspSession::handleReq_Teardown(const Parser &parser) { - sendRtspResponse("200 OK"); _push_src = nullptr; + //此时回复可能触发broken pipe事件,从而直接触发onError回调;所以需要先把_push_src置空,防止触发断流续推功能 + sendRtspResponse("200 OK"); throw SockException(Err_shutdown,"recv teardown request"); }