修复sps太长生成sdp异常的问题
This commit is contained in:
parent
51ac93a08c
commit
c5b0485519
|
|
@ -238,22 +238,22 @@ public:
|
||||||
_printer << "a=rtpmap:" << payload_type << " H264/" << 90000 << "\r\n";
|
_printer << "a=rtpmap:" << payload_type << " H264/" << 90000 << "\r\n";
|
||||||
_printer << "a=fmtp:" << payload_type << " packetization-mode=1; profile-level-id=";
|
_printer << "a=fmtp:" << payload_type << " packetization-mode=1; profile-level-id=";
|
||||||
|
|
||||||
char strTemp[100];
|
char strTemp[1024];
|
||||||
uint32_t profile_level_id = 0;
|
uint32_t profile_level_id = 0;
|
||||||
if (strSPS.length() >= 4) { // sanity check
|
if (strSPS.length() >= 4) { // sanity check
|
||||||
profile_level_id = (uint8_t(strSPS[1]) << 16) |
|
profile_level_id = (uint8_t(strSPS[1]) << 16) |
|
||||||
(uint8_t(strSPS[2]) << 8) |
|
(uint8_t(strSPS[2]) << 8) |
|
||||||
(uint8_t(strSPS[3])); // profile_idc|constraint_setN_flag|level_idc
|
(uint8_t(strSPS[3])); // profile_idc|constraint_setN_flag|level_idc
|
||||||
}
|
}
|
||||||
memset(strTemp, 0, 100);
|
memset(strTemp, 0, sizeof(strTemp));
|
||||||
snprintf(strTemp, sizeof(strTemp), "%06X", profile_level_id);
|
snprintf(strTemp, sizeof(strTemp), "%06X", profile_level_id);
|
||||||
_printer << strTemp;
|
_printer << strTemp;
|
||||||
_printer << "; sprop-parameter-sets=";
|
_printer << "; sprop-parameter-sets=";
|
||||||
memset(strTemp, 0, 100);
|
memset(strTemp, 0, sizeof(strTemp));
|
||||||
av_base64_encode(strTemp, 100, (uint8_t *) strSPS.data(), (int) strSPS.size());
|
av_base64_encode(strTemp, sizeof(strTemp), (uint8_t *) strSPS.data(), (int) strSPS.size());
|
||||||
_printer << strTemp << ",";
|
_printer << strTemp << ",";
|
||||||
memset(strTemp, 0, 100);
|
memset(strTemp, 0, sizeof(strTemp));
|
||||||
av_base64_encode(strTemp, 100, (uint8_t *) strPPS.data(), (int) strPPS.size());
|
av_base64_encode(strTemp, sizeof(strTemp), (uint8_t *) strPPS.data(), (int) strPPS.size());
|
||||||
_printer << strTemp << "\r\n";
|
_printer << strTemp << "\r\n";
|
||||||
_printer << "a=control:trackID=" << (int) TrackVideo << "\r\n";
|
_printer << "a=control:trackID=" << (int) TrackVideo << "\r\n";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue