更新ZLToolKit并适配代码

This commit is contained in:
xia-chu 2021-02-07 14:55:09 +08:00
parent 14b318525e
commit 80bcf53ccf
8 changed files with 22 additions and 20 deletions

@ -1 +1 @@
Subproject commit 147332ed51c8da49764e6d227034340d86cf7800
Subproject commit 7138d3263d4c409fae0f2ae3164612c2e5ea92a0

View File

@ -254,7 +254,8 @@ API_EXPORT void API_CALL mk_tcp_client_send_safe(mk_tcp_client ctx, const char *
assert(ctx && data);
TcpClientForC::Ptr *client = (TcpClientForC::Ptr *)ctx;
weak_ptr<TcpClient> weakClient = *client;
Buffer::Ptr buf = (*client)->obtainBuffer(data,len);
auto buf = BufferRaw::create();
buf->assign(data,len);
(*client)->async([weakClient,buf](){
auto strongClient = weakClient.lock();
if(strongClient){

View File

@ -67,6 +67,12 @@ void FlvMuxer::start(const EventPoller::Ptr &poller,const RtmpMediaSource::Ptr &
});
}
BufferRaw::Ptr FlvMuxer::obtainBuffer(const void *data, size_t len) {
auto buffer = BufferRaw::create();
buffer->assign((const char *) data, len);
return buffer;
}
void FlvMuxer::onWriteFlvHeader(const RtmpMediaSource::Ptr &mediaSrc) {
//发送flv文件头
char flv_file_header[] = "FLV\x1\x5\x0\x0\x0\x9"; // have audio and have video
@ -92,11 +98,11 @@ void FlvMuxer::onWriteFlvHeader(const RtmpMediaSource::Ptr &mediaSrc) {
}
//flv header
onWrite(std::make_shared<BufferRaw>(flv_file_header, sizeof(flv_file_header) - 1), false);
onWrite(obtainBuffer(flv_file_header, sizeof(flv_file_header) - 1), false);
auto size = htonl(0);
//PreviousTagSize0 Always 0
onWrite(std::make_shared<BufferRaw>((char *)&size,4), false);
onWrite(obtainBuffer((char *)&size,4), false);
auto &metadata = mediaSrc->getMetaData();
@ -144,12 +150,12 @@ void FlvMuxer::onWriteFlvTag(uint8_t type, const Buffer::Ptr &buffer, uint32_t t
header.timestamp_ex = (uint8_t) ((time_stamp >> 24) & 0xff);
set_be24(header.timestamp, time_stamp & 0xFFFFFF);
//tag header
onWrite(std::make_shared<BufferRaw>((char *)&header, sizeof(header)), false);
onWrite(obtainBuffer((char *)&header, sizeof(header)), false);
//tag data
onWrite(buffer, false);
uint32_t size = htonl((uint32_t)(buffer->size() + sizeof(header)));
//PreviousTagSize
onWrite(std::make_shared<BufferRaw>((char *)&size,4), flush);
onWrite(obtainBuffer((char *)&size,4), flush);
}
void FlvMuxer::onWriteRtmp(const RtmpPacket::Ptr &pkt,bool flush) {

View File

@ -37,6 +37,7 @@ private:
void onWriteRtmp(const RtmpPacket::Ptr &pkt, bool flush);
void onWriteFlvTag(const RtmpPacket::Ptr &pkt, uint32_t time_stamp, bool flush);
void onWriteFlvTag(uint8_t type, const Buffer::Ptr &buffer, uint32_t time_stamp, bool flush);
BufferRaw::Ptr obtainBuffer(const void *data, size_t len);
private:
//时间戳修整器

View File

@ -10,9 +10,6 @@
#include "RtmpProtocol.h"
#include "Rtmp/utils.h"
#include "Util/util.h"
#include "Util/onceToken.h"
#include "Thread/ThreadPool.h"
#include "RtmpMediaSource.h"
using namespace toolkit;
@ -760,13 +757,11 @@ void RtmpProtocol::handle_chunk(RtmpPacket::Ptr packet) {
}
}
BufferRaw::Ptr RtmpProtocol::obtainBuffer() {
return std::make_shared<BufferRaw>() ;//_bufferPool.obtain();
}
BufferRaw::Ptr RtmpProtocol::obtainBuffer(const void *data, size_t len) {
auto buffer = obtainBuffer();
buffer->assign((const char *) data, len);
auto buffer = BufferRaw::create();
if (data && len) {
buffer->assign((const char *) data, len);
}
return buffer;
}

View File

@ -53,9 +53,6 @@ protected:
protected:
void reset();
BufferRaw::Ptr obtainBuffer();
BufferRaw::Ptr obtainBuffer(const void *data, size_t len);
void sendAcknowledgement(uint32_t size);
void sendAcknowledgementSize(uint32_t size);
void sendPeerBandwidth(uint32_t size);
@ -70,6 +67,7 @@ protected:
void sendResponse(int type, const string &str);
void sendRtmp(uint8_t type, uint32_t stream_index, const std::string &buffer, uint32_t stamp, int chunk_id);
void sendRtmp(uint8_t type, uint32_t stream_index, const Buffer::Ptr &buffer, uint32_t stamp, int chunk_id);
BufferRaw::Ptr obtainBuffer(const void *data = nullptr, size_t len = 0);
private:
void handle_C1_simple(const char *data);

View File

@ -14,7 +14,7 @@
namespace mediakit{
PSEncoder::PSEncoder() {
_buffer = std::make_shared<BufferRaw>();
_buffer = BufferRaw::create();
init();
}

View File

@ -415,7 +415,8 @@ string printSSRC(uint32_t ui32Ssrc) {
}
Buffer::Ptr makeRtpOverTcpPrefix(uint16_t size, uint8_t interleaved){
auto rtp_tcp = std::make_shared<BufferRaw>(RtpPacket::kRtpTcpHeaderSize);
auto rtp_tcp = BufferRaw::create();
rtp_tcp->setCapacity(RtpPacket::kRtpTcpHeaderSize);
rtp_tcp->setSize(RtpPacket::kRtpTcpHeaderSize);
auto ptr = rtp_tcp->data();
ptr[0] = '$';