120703-1 RTP+H264包格式

  1. 在HI3515上測試發現 HI3515編碼輸出的是NALU單元,以 00 00 00 01開頭
  2. 通過jrtplib會增長額外的信息,trace以下

SimpleH264SendPacket(unsigned char *val,uint32_t length)c++

NALU=val[4];函數

根據是否須要分包(包大小<1024)測試

不分包  ui

sess.SendPacket((void *)&val[4],valid_len,PLOAD_TYPE,true,DefaultTimestampIncrement)編碼

分包rem

第一包io

sess.SendPacket(sendStartAddr-1,send_length,PLOAD_TYPE,false,DefaultTimestampIncrement)構造函數

中間包im

sendStartAddr[pos-2]=(NALU&0x60)|28co

sendStartAddr[pos-1]=(NALU&0x1f)|0x40

sess.SendPacket(sendStartAddr+pos-2,send_lenght,PLOAD_TYPE,false,DefaultTimestampIncrement)

最後包

sess.SendPacket(sendStartAddr+pos-2,send_lenght,PLOAD_TYPE,true,0)

3 jrtplib的發包過程

int RTPSession::SendPacket(const void *data,size_t len, uint8_t pt,bool mark,uint32_t timestampinc)

執行過程

packetbuilder.BuildPacket(data,len,pt,mark,timestampinc))

PrivateBuildPacket(data,len,pt,mark,timestampinc,false);

構造函數

BuildPacket  使用默認參數(c++特性)

rtptrans->SendRTPData(packetbuilder.GetPacket(),packetbuilder.GetPacketLength()))


sources.SentRTPPacket();

未完。。

看了半天也沒找到externd hdr的具體說明。掛起中。。。

相關文章
相關標籤/搜索