diff --git a/src/Rtmp/RtmpProtocol.cpp b/src/Rtmp/RtmpProtocol.cpp index d0c5f027..4f9a8af7 100644 --- a/src/Rtmp/RtmpProtocol.cpp +++ b/src/Rtmp/RtmpProtocol.cpp @@ -55,6 +55,7 @@ static string openssl_HMACsha256(const void *key, size_t key_len, const void *da namespace mediakit { RtmpProtocol::RtmpProtocol() { + _packet_pool.setSize(64); _next_step_func = [this](const char *data, size_t len) { return handle_C0C1(data, len); }; @@ -776,7 +777,7 @@ void RtmpProtocol::handle_chunk(RtmpPacket::Ptr packet) { } BufferRaw::Ptr RtmpProtocol::obtainBuffer(const void *data, size_t len) { - auto buffer = BufferRaw::create(); + auto buffer = _packet_pool.obtain(); if (data && len) { buffer->assign((const char *) data, len); } diff --git a/src/Rtmp/RtmpProtocol.h b/src/Rtmp/RtmpProtocol.h index 5a004874..fa51b191 100644 --- a/src/Rtmp/RtmpProtocol.h +++ b/src/Rtmp/RtmpProtocol.h @@ -107,6 +107,8 @@ private: function _next_step_func; ////////////Chunk//////////// unordered_map > _map_chunk_data; + //循环池 + ResourcePool _packet_pool; }; } /* namespace mediakit */