Describe the bug
I want to enable lost pkg retransmission(nack), as rfc4588-8.8,
but found server show "no ssrc ****** in publishers. rtcp type:200"
****** is whip client rtx ssrc
Version
v7.0.145
To Reproduce
Steps to reproduce the behavior:
- whip client connect to webrtc server.
Expected behavior
Webrtc server receive retransmission packets(nack) successfully..
Screenshots
Additional context
call treace as bellow:
SrsRtcSessionManager::do_create_rtc_session()
{
SrsRtcConnection::add_publisher()
{
SrsRtcPublisherNegotiator::negotiate_publish_capability()
{
...
if (track_id != msid_tracker) {
SrsRtcTrackDescription *track_desc_copy = track_desc->copy();
track_desc_copy->ssrc_ = ssrc_info.ssrc_;
track_desc_copy->id_ = msid_tracker;
track_desc_copy->msid_ = msid;
if (remote_media_desc.is_audio() && !stream_desc->audio_track_desc_) {
stream_desc->audio_track_desc_ = track_desc_copy;
} else if (remote_media_desc.is_video()) {
// *** track_desc_copy->is_active_ = true;
stream_desc->video_track_descs_.push_back(track_desc_copy);
} else {
srs_freep(track_desc_copy);
}
}
...
for (int j = 0; j < (int)remote_media_desc.ssrc_groups_.size(); ++j) {
const SrsSSRCGroup &ssrc_group = remote_media_desc.ssrc_groups_.at(j);
SrsRtcTrackDescription *track_desc = stream_desc->find_track_description_by_ssrc(ssrc_group.ssrcs_[0]);
// now is_active_ is false, so track_desc is null, continue foreach
if (!track_desc) {
continue;
}
if (ssrc_group.semantic_ == "FID") {
// track_desc is null, can not set rtx ssrc
track_desc->set_rtx_ssrc(ssrc_group.ssrcs_[1]);
} else if (ssrc_group.semantic_ == "FEC") {
track_desc->set_fec_ssrc(ssrc_group.ssrcs_[1]);
}
}
}
}
...
SrsRtcConnection::set_all_tracks_status()
{
SrsRtcPublishStream::set_all_tracks_status()
{
SrsRtcRecvTrack::set_track_status()
{
track_desc_->is_active_ = true;
}
}
}
...
}
before call set_rtx_ssrc(), check track_desc status, is_active_ is false,
track_desc is null, so can not set rtx ssrc.
try to add 'track_desc_copy->is_active_ = true;' before push_back(), (just for test, maybe wrong way)
call set_rtx_ssrc() in ssrc_group.semantic_ == "FID",
webrtc server receive retransmission packets(nack) successfully.
I use server in a wrong way? or is that a Bug?
Describe the bug
I want to enable lost pkg retransmission(nack), as rfc4588-8.8,
but found server show "no ssrc ****** in publishers. rtcp type:200"
****** is whip client rtx ssrc
Version
v7.0.145
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Webrtc server receive retransmission packets(nack) successfully..
Screenshots
Additional context
call treace as bellow:
before call set_rtx_ssrc(), check track_desc status, is_active_ is false,
track_desc is null, so can not set rtx ssrc.
try to add 'track_desc_copy->is_active_ = true;' before push_back(), (just for test, maybe wrong way)
call set_rtx_ssrc() in ssrc_group.semantic_ == "FID",
webrtc server receive retransmission packets(nack) successfully.
I use server in a wrong way? or is that a Bug?