修复bug与编译警告

This commit is contained in:
ziyue 2021-03-29 09:53:54 +08:00
parent 1228d07ff3
commit 7726caa7f2

View File

@ -235,7 +235,7 @@ RtpDirection RtcMedia::getDirection() const{
#define SDP_THROW2() throw std::invalid_argument(StrPrinter << "生成sdp " << getKey() << " 字段失败") #define SDP_THROW2() throw std::invalid_argument(StrPrinter << "生成sdp " << getKey() << " 字段失败")
void SdpTime::parse(const string &str) { void SdpTime::parse(const string &str) {
if (sscanf(str.data(), "%" PRIu64 " %" PRIu64, &start, &stop) != 2) { if (sscanf(str.data(), "%" SCNu64 " %" SCNu64, &start, &stop) != 2) {
SDP_THROW(); SDP_THROW();
} }
} }
@ -257,7 +257,7 @@ void SdpOrigin::parse(const string &str) {
session_version = vec[2]; session_version = vec[2];
nettype = vec[3]; nettype = vec[3];
addrtype = vec[4]; addrtype = vec[4];
address = vec[6]; address = vec[5];
} }
string SdpOrigin::toString() const { string SdpOrigin::toString() const {
@ -311,7 +311,7 @@ void SdpMedia::parse(const string &str) {
} }
port = atoi(vec[1].data()); port = atoi(vec[1].data());
proto = vec[2]; proto = vec[2];
for (int i = 3; i < vec.size(); ++i) { for (size_t i = 3; i < vec.size(); ++i) {
auto pt = atoi(vec[i].data()); auto pt = atoi(vec[i].data());
if (type != TrackApplication && pt > 0xFF) { if (type != TrackApplication && pt > 0xFF) {
SDP_THROW(); SDP_THROW();
@ -448,8 +448,8 @@ string SdpAttrSetup::toString() const {
void SdpAttrExtmap::parse(const string &str) { void SdpAttrExtmap::parse(const string &str) {
char buf[128] = {0}; char buf[128] = {0};
char direction_buf[32] = {0}; char direction_buf[32] = {0};
if (sscanf(str.data(), "%" PRId32 "/%31[^ ] %127s", &index, direction_buf, buf) != 3) { if (sscanf(str.data(), "%" SCNd32 "/%31[^ ] %127s", &index, direction_buf, buf) != 3) {
if (sscanf(str.data(), "%" PRId32 " %127s", &index, buf) != 2) { if (sscanf(str.data(), "%" SCNd32 " %127s", &index, buf) != 2) {
SDP_THROW(); SDP_THROW();
} }
} else { } else {
@ -471,8 +471,8 @@ string SdpAttrExtmap::toString() const {
void SdpAttrRtpMap::parse(const string &str) { void SdpAttrRtpMap::parse(const string &str) {
char buf[32] = {0}; char buf[32] = {0};
if (sscanf(str.data(), "%" PRId8 " %31[^/]/%" PRId32 "/%" PRId32, &pt, buf, &sample_rate, &channel) != 4) { if (sscanf(str.data(), "%" SCNu8 " %31[^/]/%" SCNd32 "/%" SCNd32, &pt, buf, &sample_rate, &channel) != 4) {
if (sscanf(str.data(), "%" PRId8 " %31[^/]/%" PRId32, &pt, buf, &sample_rate) != 3) { if (sscanf(str.data(), "%" SCNu8 " %31[^/]/%" SCNd32, &pt, buf, &sample_rate) != 3) {
SDP_THROW(); SDP_THROW();
} }
} }
@ -543,13 +543,14 @@ string SdpAttrFmtp::toString() const {
return SdpItem::toString(); return SdpItem::toString();
} }
void SdpAttrSSRC::parse(const string &str) { void SdpAttrSSRC::parse(const string &str_in) {
auto str = str_in + '\n';
char attr_buf[32] = {0}; char attr_buf[32] = {0};
char attr_val_buf[128] = {0}; char attr_val_buf[128] = {0};
if (3 == sscanf(str.data(), "%" PRIu32 " %31[^:]:%127[^\0]", &ssrc, attr_buf, attr_val_buf)) { if (3 == sscanf(str.data(), "%" SCNu32 " %31[^:]:%127[^\n]", &ssrc, attr_buf, attr_val_buf)) {
attribute = attr_buf; attribute = attr_buf;
attribute_value = attr_val_buf; attribute_value = attr_val_buf;
} else if (2 == sscanf(str.data(), "%" PRIu32 " %31s", &ssrc, attr_buf)) { } else if (2 == sscanf(str.data(), "%" SCNu32 " %31s[^\n]", &ssrc, attr_buf)) {
attribute = attr_buf; attribute = attr_buf;
} else { } else {
SDP_THROW(); SDP_THROW();
@ -605,7 +606,7 @@ string SdpAttrSSRCGroup::toString() const {
void SdpAttrSctpMap::parse(const string &str) { void SdpAttrSctpMap::parse(const string &str) {
char subtypes_buf[64] = {0}; char subtypes_buf[64] = {0};
if (3 == sscanf(str.data(), "%" PRIu16 " %63[^ ] %" PRId32, &port, subtypes_buf, &streams)) { if (3 == sscanf(str.data(), "%" SCNu16 " %63[^ ] %" SCNd32, &port, subtypes_buf, &streams)) {
subtypes = subtypes_buf; subtypes = subtypes_buf;
} else { } else {
SDP_THROW(); SDP_THROW();
@ -628,7 +629,7 @@ void SdpAttrCandidate::parse(const string &str) {
char address_buf[32] = {0}; char address_buf[32] = {0};
char type_buf[16] = {0}; char type_buf[16] = {0};
if (7 != sscanf(str.data(), "%" PRIu32 " %" PRIu32 " %15[^ ] %" PRIu32 " %31[^ ] %" PRIu16 " typ %15[^ \0]", if (7 != sscanf(str.data(), "%" SCNu32 " %" SCNu32 " %15[^ ] %" SCNu32 " %31[^ ] %" SCNu16 " typ %15[^ ]",
&foundation, &component, transport_buf, &priority, address_buf, &port, type_buf)) { &foundation, &component, transport_buf, &priority, address_buf, &port, type_buf)) {
SDP_THROW(); SDP_THROW();
} }