mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Support dup DTLS done. Support create publisher/player after DTLS done.
This commit is contained in:
parent
f54bf8d9be
commit
a06a750a1b
1 changed files with 20 additions and 0 deletions
|
@ -1862,6 +1862,12 @@ srs_error_t SrsRtcConnection::on_connection_established()
|
|||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
// If DTLS done packet received many times, such as ARQ, ignore.
|
||||
if(ESTABLISHED == state_) {
|
||||
return err;
|
||||
}
|
||||
state_ = ESTABLISHED;
|
||||
|
||||
srs_trace("RTC: session pub=%u, sub=%u, to=%dms connection established", publishers_.size(), players_.size(),
|
||||
srsu2msi(session_timeout));
|
||||
|
||||
|
@ -3008,6 +3014,13 @@ srs_error_t SrsRtcConnection::create_player(SrsRequest* req, std::map<uint32_t,
|
|||
}
|
||||
srs_trace("RTC connection player gcc=%d", twcc_id);
|
||||
|
||||
// If DLTS done, start the player. Because maybe create some players after DTLS done.
|
||||
if(ESTABLISHED == state_) {
|
||||
if(srs_success != (err = player->start())) {
|
||||
return srs_error_wrap(err, "start player");
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -3082,6 +3095,13 @@ srs_error_t SrsRtcConnection::create_publisher(SrsRequest* req, SrsRtcStreamDesc
|
|||
}
|
||||
}
|
||||
|
||||
// If DLTS done, start the publisher. Because maybe create some publishers after DTLS done.
|
||||
if(ESTABLISHED == state()) {
|
||||
if(srs_success != (err = publisher->start())) {
|
||||
return srs_error_wrap(err, "start publisher");
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue