mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Refine RTCP process
This commit is contained in:
parent
18ae8d8571
commit
5309dbe18b
1 changed files with 8 additions and 2 deletions
|
@ -771,6 +771,9 @@ srs_error_t SrsRtcPlayStream::on_rtcp(SrsRtcpCommon* rtcp)
|
||||||
} else if(SrsRtcpType_xr == rtcp->type()) {
|
} else if(SrsRtcpType_xr == rtcp->type()) {
|
||||||
SrsRtcpXr* xr = dynamic_cast<SrsRtcpXr*>(rtcp);
|
SrsRtcpXr* xr = dynamic_cast<SrsRtcpXr*>(rtcp);
|
||||||
return on_rtcp_xr(xr);
|
return on_rtcp_xr(xr);
|
||||||
|
} else if(SrsRtcpType_bye == rtcp->type()) {
|
||||||
|
// TODO: FIXME: process rtcp bye.
|
||||||
|
return srs_success;
|
||||||
} else {
|
} else {
|
||||||
return srs_error_new(ERROR_RTC_RTCP_CHECK, "unknown rtcp type=%u", rtcp->type());
|
return srs_error_new(ERROR_RTC_RTCP_CHECK, "unknown rtcp type=%u", rtcp->type());
|
||||||
}
|
}
|
||||||
|
@ -1329,6 +1332,9 @@ srs_error_t SrsRtcPublishStream::on_rtcp(SrsRtcpCommon* rtcp)
|
||||||
} else if(SrsRtcpType_sdes == rtcp->type()) {
|
} else if(SrsRtcpType_sdes == rtcp->type()) {
|
||||||
//ignore RTCP SDES
|
//ignore RTCP SDES
|
||||||
return srs_success;
|
return srs_success;
|
||||||
|
} else if(SrsRtcpType_bye == rtcp->type()) {
|
||||||
|
// TODO: FIXME: process rtcp bye.
|
||||||
|
return srs_success;
|
||||||
} else {
|
} else {
|
||||||
return srs_error_new(ERROR_RTC_RTCP_CHECK, "unknown rtcp type=%u", rtcp->type());
|
return srs_error_new(ERROR_RTC_RTCP_CHECK, "unknown rtcp type=%u", rtcp->type());
|
||||||
}
|
}
|
||||||
|
@ -1372,7 +1378,7 @@ srs_error_t SrsRtcPublishStream::on_rtcp_xr(SrsRtcpXr* rtcp)
|
||||||
uint16_t length = (stream.read_2bytes() + 1) * 4;
|
uint16_t length = (stream.read_2bytes() + 1) * 4;
|
||||||
/*uint32_t ssrc = */stream.read_4bytes();
|
/*uint32_t ssrc = */stream.read_4bytes();
|
||||||
|
|
||||||
if (length != rtcp->size()) {
|
if (length > rtcp->size()) {
|
||||||
return srs_error_new(ERROR_RTC_RTCP_CHECK, "invalid XR packet, length=%u, nb_buf=%d", length, rtcp->size());
|
return srs_error_new(ERROR_RTC_RTCP_CHECK, "invalid XR packet, length=%u, nb_buf=%d", length, rtcp->size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1962,7 +1968,7 @@ srs_error_t SrsRtcConnection::on_rtcp(char* data, int nb_data)
|
||||||
|
|
||||||
if(srs_success != err) {
|
if(srs_success != err) {
|
||||||
return srs_error_wrap(err, "cipher=%u, plaintext=%u, bytes=[%s], rtcp=(%u,%u,%u,%u)", nb_data, nb_unprotected_buf,
|
return srs_error_wrap(err, "cipher=%u, plaintext=%u, bytes=[%s], rtcp=(%u,%u,%u,%u)", nb_data, nb_unprotected_buf,
|
||||||
srs_string_dumps_hex(unprotected_buf, nb_unprotected_buf, 8).c_str(),
|
srs_string_dumps_hex(rtcp->data(), rtcp->size(), rtcp->size()).c_str(),
|
||||||
rtcp->get_rc(), rtcp->type(), rtcp->get_ssrc(), rtcp->size());
|
rtcp->get_rc(), rtcp->type(), rtcp->get_ssrc(), rtcp->size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue