mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-05 10:58:11 +08:00
初步整理Rtp打包解包
This commit is contained in:
@@ -106,7 +106,7 @@ public:
|
||||
BufferRtmp(const RtmpPacket::Ptr & pkt):_rtmp(pkt){}
|
||||
virtual ~BufferRtmp(){}
|
||||
|
||||
char *data() override {
|
||||
char *data() const override {
|
||||
return (char *)_rtmp->strBuf.data();
|
||||
}
|
||||
uint32_t size() const override {
|
||||
|
||||
@@ -152,15 +152,15 @@ inline void RtmpParser::_onGetH264(const char* pcData, int iLen, uint32_t ui32Ti
|
||||
inline void RtmpParser::onGetH264(const char* pcData, int iLen, uint32_t ui32TimeStamp) {
|
||||
m_h264frame.type = pcData[0] & 0x1F;
|
||||
m_h264frame.timeStamp = ui32TimeStamp;
|
||||
m_h264frame.data.assign("\x0\x0\x0\x1", 4); //添加264头
|
||||
m_h264frame.data.append(pcData, iLen);
|
||||
m_h264frame.buffer.assign("\x0\x0\x0\x1", 4); //添加264头
|
||||
m_h264frame.buffer.append(pcData, iLen);
|
||||
{
|
||||
lock_guard<recursive_mutex> lck(m_mtxCB);
|
||||
if (onVideo) {
|
||||
onVideo(m_h264frame);
|
||||
}
|
||||
}
|
||||
m_h264frame.data.clear();
|
||||
m_h264frame.buffer.clear();
|
||||
}
|
||||
|
||||
inline bool RtmpParser::inputAudio(const RtmpPacket::Ptr &pkt) {
|
||||
@@ -180,15 +180,15 @@ inline bool RtmpParser::inputAudio(const RtmpPacket::Ptr &pkt) {
|
||||
return false;
|
||||
}
|
||||
inline void RtmpParser::onGetAAC(const char* pcData, int iLen, uint32_t ui32TimeStamp) {
|
||||
if(iLen + 7 > sizeof(m_adts.data)){
|
||||
if(iLen + 7 > sizeof(m_adts.buffer)){
|
||||
WarnL << "Illegal adts data, exceeding the length limit.";
|
||||
return;
|
||||
}
|
||||
//添加adts头
|
||||
memcpy(m_adts.data + 7, pcData, iLen);
|
||||
memcpy(m_adts.buffer + 7, pcData, iLen);
|
||||
m_adts.aac_frame_length = 7 + iLen;
|
||||
m_adts.timeStamp = ui32TimeStamp;
|
||||
writeAdtsHeader(m_adts, m_adts.data);
|
||||
writeAdtsHeader(m_adts, m_adts.buffer);
|
||||
{
|
||||
lock_guard<recursive_mutex> lck(m_mtxCB);
|
||||
if (onAudio) {
|
||||
|
||||
@@ -48,20 +48,20 @@ RtmpToRtspMediaSource::~RtmpToRtspMediaSource() {}
|
||||
|
||||
void RtmpToRtspMediaSource::onGetH264(const H264Frame &frame) {
|
||||
if(m_pRecorder){
|
||||
m_pRecorder->inputH264((char *) frame.data.data(), frame.data.size(), frame.timeStamp, frame.type);
|
||||
m_pRecorder->inputH264((char *) frame.data(), frame.size(), frame.timeStamp, frame.type);
|
||||
}
|
||||
|
||||
if(m_pRtpMaker_h264){
|
||||
m_pRtpMaker_h264->makeRtp(frame.data.data() + 4, frame.data.size() - 4, frame.timeStamp);
|
||||
m_pRtpMaker_h264->makeRtp(frame.data() + 4, frame.size() - 4, frame.timeStamp);
|
||||
}
|
||||
}
|
||||
inline void RtmpToRtspMediaSource::onGetAdts(const AdtsFrame &frame) {
|
||||
if(m_pRecorder){
|
||||
m_pRecorder->inputAAC((char *) frame.data, frame.aac_frame_length, frame.timeStamp);
|
||||
m_pRecorder->inputAAC((char *) frame.buffer, frame.aac_frame_length, frame.timeStamp);
|
||||
}
|
||||
|
||||
if (m_pRtpMaker_aac) {
|
||||
m_pRtpMaker_aac->makeRtp((char *) frame.data + 7, frame.aac_frame_length - 7, frame.timeStamp);
|
||||
m_pRtpMaker_aac->makeRtp((char *) frame.buffer + 7, frame.aac_frame_length - 7, frame.timeStamp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user