|
|
|
@ -196,7 +196,7 @@ srs_error_t SrsSecurityTransport::unprotect_rtcp(const char* cipher, char* plain
|
|
|
|
|
return srtp_->unprotect_rtcp(cipher, plaintext, nb_plaintext);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SrsRtcOutgoingInfo::SrsRtcOutgoingInfo()
|
|
|
|
|
SrsRtcPlayStreamStatistic::SrsRtcPlayStreamStatistic()
|
|
|
|
|
{
|
|
|
|
|
#if defined(SRS_DEBUG)
|
|
|
|
|
debug_id = 0;
|
|
|
|
@ -209,7 +209,7 @@ SrsRtcOutgoingInfo::SrsRtcOutgoingInfo()
|
|
|
|
|
nn_padding_bytes = nn_paddings = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SrsRtcOutgoingInfo::~SrsRtcOutgoingInfo()
|
|
|
|
|
SrsRtcPlayStreamStatistic::~SrsRtcPlayStreamStatistic()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -425,7 +425,7 @@ srs_error_t SrsRtcPlayStream::cycle()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
srs_error_t SrsRtcPlayStream::send_packets(SrsRtcStream* source, const vector<SrsRtpPacket2*>& pkts, SrsRtcOutgoingInfo& info)
|
|
|
|
|
srs_error_t SrsRtcPlayStream::send_packets(SrsRtcStream* source, const vector<SrsRtpPacket2*>& pkts, SrsRtcPlayStreamStatistic& info)
|
|
|
|
|
{
|
|
|
|
|
srs_error_t err = srs_success;
|
|
|
|
|
|
|
|
|
@ -1555,7 +1555,7 @@ SrsRtcConnection::SrsRtcConnection(SrsRtcServer* s, SrsContextId context_id)
|
|
|
|
|
|
|
|
|
|
state_ = INIT;
|
|
|
|
|
last_stun_time = 0;
|
|
|
|
|
sessionStunTimeout = 0;
|
|
|
|
|
session_timeout = 0;
|
|
|
|
|
disposing_ = false;
|
|
|
|
|
|
|
|
|
|
twcc_id_ = 0;
|
|
|
|
@ -1757,11 +1757,11 @@ srs_error_t SrsRtcConnection::initialize(SrsRtcStream* source, SrsRequest* r, bo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO: FIXME: Support reload.
|
|
|
|
|
sessionStunTimeout = _srs_config->get_rtc_stun_timeout(req->vhost);
|
|
|
|
|
session_timeout = _srs_config->get_rtc_stun_timeout(req->vhost);
|
|
|
|
|
last_stun_time = srs_get_system_time();
|
|
|
|
|
|
|
|
|
|
srs_trace("RTC init session, DTLS(role=%s, version=%s), timeout=%dms",
|
|
|
|
|
cfg->dtls_role.c_str(), cfg->dtls_version.c_str(), srsu2msi(sessionStunTimeout));
|
|
|
|
|
cfg->dtls_role.c_str(), cfg->dtls_version.c_str(), srsu2msi(session_timeout));
|
|
|
|
|
|
|
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
@ -1852,7 +1852,7 @@ srs_error_t SrsRtcConnection::on_connection_established()
|
|
|
|
|
srs_error_t err = srs_success;
|
|
|
|
|
|
|
|
|
|
srs_trace("RTC %s session=%s, to=%dms connection established", (is_publisher_? "Publisher":"Subscriber"),
|
|
|
|
|
id().c_str(), srsu2msi(sessionStunTimeout));
|
|
|
|
|
id().c_str(), srsu2msi(session_timeout));
|
|
|
|
|
|
|
|
|
|
if (is_publisher_) {
|
|
|
|
|
if ((err = start_publish()) != srs_success) {
|
|
|
|
@ -1891,7 +1891,7 @@ srs_error_t SrsRtcConnection::start_publish()
|
|
|
|
|
|
|
|
|
|
bool SrsRtcConnection::is_stun_timeout()
|
|
|
|
|
{
|
|
|
|
|
return last_stun_time + sessionStunTimeout < srs_get_system_time();
|
|
|
|
|
return last_stun_time + session_timeout < srs_get_system_time();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO: FIXME: We should support multiple addresses, because client may use more than one addresses.
|
|
|
|
@ -2135,7 +2135,7 @@ void SrsRtcConnection::simulate_player_drop_packet(SrsRtpHeader* h, int nn_bytes
|
|
|
|
|
nn_simulate_player_nack_drop--;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
srs_error_t SrsRtcConnection::do_send_packets(const std::vector<SrsRtpPacket2*>& pkts, SrsRtcOutgoingInfo& info)
|
|
|
|
|
srs_error_t SrsRtcConnection::do_send_packets(const std::vector<SrsRtpPacket2*>& pkts, SrsRtcPlayStreamStatistic& info)
|
|
|
|
|
{
|
|
|
|
|
srs_error_t err = srs_success;
|
|
|
|
|
|
|
|
|
|