diff --git a/3rdpart/ZLToolKit b/3rdpart/ZLToolKit index 42139e18..7ae5f547 160000 --- a/3rdpart/ZLToolKit +++ b/3rdpart/ZLToolKit @@ -1 +1 @@ -Subproject commit 42139e18ce46869760cc29f77ad6ce5de1f5dcee +Subproject commit 7ae5f547c17ddc7bee7b82ebc114248df99de620 diff --git a/src/Player/MediaPlayer.cpp b/src/Player/MediaPlayer.cpp index d766bf77..694b656e 100644 --- a/src/Player/MediaPlayer.cpp +++ b/src/Player/MediaPlayer.cpp @@ -26,7 +26,14 @@ MediaPlayer::~MediaPlayer() { static void setOnCreateSocket_l(const std::shared_ptr &delegate, const Socket::onCreateSocket &cb){ auto helper = dynamic_pointer_cast(delegate); if (helper) { - helper->setOnCreateSocket(cb); + if (cb) { + helper->setOnCreateSocket(cb); + } else { + //客户端,确保开启互斥锁 + helper->setOnCreateSocket([](const EventPoller::Ptr &poller) { + return Socket::createSocket(poller, true); + }); + } } } diff --git a/src/Rtmp/RtmpProtocol.cpp b/src/Rtmp/RtmpProtocol.cpp index e6fc8900..612e7a5f 100644 --- a/src/Rtmp/RtmpProtocol.cpp +++ b/src/Rtmp/RtmpProtocol.cpp @@ -602,7 +602,9 @@ const char* RtmpProtocol::handle_rtmp(const char *data, uint64_t len) { //need more data return ptr; } - chunk_data.buffer.append(ptr + header_len + offset, more); + if (more) { + chunk_data.buffer.append(ptr + header_len + offset, more); + } ptr += header_len + offset + more; len -= header_len + offset + more; if (chunk_data.buffer.size() == chunk_data.body_size) {