Commit 47cb4b8e by xiongziliang

完善rtp打包

parent 203edc5c
...@@ -180,7 +180,7 @@ void H265RtpEncoder::inputFrame(const Frame::Ptr &frame) { ...@@ -180,7 +180,7 @@ void H265RtpEncoder::inputFrame(const Frame::Ptr &frame) {
//超过MTU,按照FU方式打包 //超过MTU,按照FU方式打包
if (iLen > maxSize) { if (iLen > maxSize) {
//获取帧头数据,1byte //获取帧头数据,1byte
unsigned char s_e_type; unsigned char s_e_flags;
bool bFirst = true; bool bFirst = true;
bool mark = false; bool mark = false;
int nOffset = 2; int nOffset = 2;
...@@ -189,13 +189,13 @@ void H265RtpEncoder::inputFrame(const Frame::Ptr &frame) { ...@@ -189,13 +189,13 @@ void H265RtpEncoder::inputFrame(const Frame::Ptr &frame) {
maxSize = iLen - nOffset; maxSize = iLen - nOffset;
mark = true; mark = true;
//FU end //FU end
s_e_type = (1 << 6) | naluType; s_e_flags = (1 << 6) | naluType;
} else if (bFirst) { } else if (bFirst) {
//FU start //FU start
s_e_type = (1 << 7) | naluType; s_e_flags = (1 << 7) | naluType;
} else { } else {
//FU mid //FU mid
s_e_type = naluType; s_e_flags = naluType;
} }
{ {
...@@ -208,7 +208,7 @@ void H265RtpEncoder::inputFrame(const Frame::Ptr &frame) { ...@@ -208,7 +208,7 @@ void H265RtpEncoder::inputFrame(const Frame::Ptr &frame) {
//FU 第2个字节貌似固定为1 //FU 第2个字节貌似固定为1
payload[1] = 1; payload[1] = 1;
//FU 第3个字节 //FU 第3个字节
payload[2] = s_e_type; payload[2] = s_e_flags;
//H265 数据 //H265 数据
memcpy(payload + 3,pcData + nOffset, maxSize); memcpy(payload + 3,pcData + nOffset, maxSize);
//输入到rtp环形缓存 //输入到rtp环形缓存
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论