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

RTC: Fix video and audio track pt_ is not change in player before publisher. v5.0.207 v6.0.111 (#3925)

For WebRTC:
when player before publisher, it will happen track pt didn't change.

 - At source change step, change track pt 

---------

Co-authored-by: mingche.tsai <w41203208.work@gmail.com>
Co-authored-by: john <hondaxiao@tencent.com>
This commit is contained in:
Jay 2024-02-05 15:15:06 +08:00 committed by GitHub
parent 77af3dc8c4
commit 4ca7684e36
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 22 additions and 2 deletions

View file

@ -534,6 +534,15 @@ void SrsRtcPlayStream::on_stream_change(SrsRtcSourceDescription* desc)
uint32_t ssrc = desc->audio_track_desc_->ssrc_;
SrsRtcAudioSendTrack* track = audio_tracks_.begin()->second;
if (track->track_desc_->media_->pt_of_publisher_ != desc->audio_track_desc_->media_->pt_) {
track->track_desc_->media_->pt_of_publisher_ = desc->audio_track_desc_->media_->pt_;
}
if (desc->audio_track_desc_->red_ && track->track_desc_->red_ &&
track->track_desc_->red_->pt_of_publisher_ != desc->audio_track_desc_->red_->pt_) {
track->track_desc_->red_->pt_of_publisher_ = desc->audio_track_desc_->red_->pt_;
}
audio_tracks_.clear();
audio_tracks_.insert(make_pair(ssrc, track));
}
@ -547,6 +556,15 @@ void SrsRtcPlayStream::on_stream_change(SrsRtcSourceDescription* desc)
uint32_t ssrc = vdesc->ssrc_;
SrsRtcVideoSendTrack* track = video_tracks_.begin()->second;
if (track->track_desc_->media_->pt_of_publisher_ != vdesc->media_->pt_) {
track->track_desc_->media_->pt_of_publisher_ = vdesc->media_->pt_;
}
if (vdesc->red_ && track->track_desc_->red_ &&
track->track_desc_->red_->pt_of_publisher_ != vdesc->red_->pt_) {
track->track_desc_->red_->pt_of_publisher_ = vdesc->red_->pt_;
}
video_tracks_.clear();
video_tracks_.insert(make_pair(ssrc, track));
}