1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Merge branch '4.0release' into develop

This commit is contained in:
winlin 2022-09-03 18:13:11 +08:00
commit 79358673ef
6 changed files with 120 additions and 4 deletions

View file

@ -517,10 +517,12 @@ srs_error_t SrsRtcPlayStream::initialize(SrsRequest* req, std::map<uint32_t, Srs
void SrsRtcPlayStream::on_stream_change(SrsRtcSourceDescription* desc)
{
if (!desc) return;
// Refresh the relation for audio.
// TODO: FIXME: Match by label?
if (desc && desc->audio_track_desc_ && audio_tracks_.size() == 1) {
if (! audio_tracks_.empty()) {
if (!audio_tracks_.empty()) {
uint32_t ssrc = desc->audio_track_desc_->ssrc_;
SrsRtcAudioSendTrack* track = audio_tracks_.begin()->second;
@ -532,7 +534,7 @@ void SrsRtcPlayStream::on_stream_change(SrsRtcSourceDescription* desc)
// Refresh the relation for video.
// TODO: FIMXE: Match by label?
if (desc && desc->video_track_descs_.size() == 1) {
if (! video_tracks_.empty()) {
if (!video_tracks_.empty()) {
SrsRtcTrackDescription* vdesc = desc->video_track_descs_.at(0);
uint32_t ssrc = vdesc->ssrc_;
SrsRtcVideoSendTrack* track = video_tracks_.begin()->second;
@ -541,6 +543,15 @@ void SrsRtcPlayStream::on_stream_change(SrsRtcSourceDescription* desc)
video_tracks_.insert(make_pair(ssrc, track));
}
}
// Request keyframe(PLI) when stream changed.
if (desc->audio_track_desc_) {
pli_worker_->request_keyframe(desc->audio_track_desc_->ssrc_, cid_);
}
for (vector<SrsRtcTrackDescription*>::iterator it = desc->video_track_descs_.begin(); it != desc->video_track_descs_.end(); ++it) {
SrsRtcTrackDescription* vdesc = *it;
pli_worker_->request_keyframe(vdesc->ssrc_, cid_);
}
}
srs_error_t SrsRtcPlayStream::on_reload_vhost_play(string vhost)