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

RTC: Set tracks to active for publisher

This commit is contained in:
winlin 2020-08-04 13:45:17 +08:00
parent dd13889772
commit c659098f71
6 changed files with 84 additions and 15 deletions

View file

@ -551,7 +551,7 @@ void SrsRtcPlayStream::set_all_tracks_status(bool status)
}
}
srs_trace("set status, %s", merged_log.str().c_str());
srs_trace("RTC: Init tracks %s ok", merged_log.str().c_str());
}
srs_error_t SrsRtcPlayStream::notify(int type, srs_utime_t interval, srs_utime_t tick)
@ -922,6 +922,35 @@ srs_error_t SrsRtcPublishStream::start()
return err;
}
void SrsRtcPublishStream::set_all_tracks_status(bool status)
{
std::ostringstream merged_log;
// set video track status
if (true) {
std::vector<SrsRtcVideoRecvTrack*>::iterator it;
for (it = video_tracks_.begin(); it != video_tracks_.end(); ++it) {
SrsRtcVideoRecvTrack* track = *it;
bool previous = track->set_track_status(status);
merged_log << "{track: " << track->get_track_id() << ", is_active: " << previous << "=>" << status << "},";
}
}
// set audio track status
if (true) {
std::vector<SrsRtcAudioRecvTrack*>::iterator it;
for (it = audio_tracks_.begin(); it != audio_tracks_.end(); ++it) {
SrsRtcAudioRecvTrack* track = *it;
bool previous = track->set_track_status(status);
merged_log << "{track: " << track->get_track_id() << ", is_active: " << previous << "=>" << status << "},";
}
}
srs_trace("RTC: Init tracks %s ok", merged_log.str().c_str());
}
srs_error_t SrsRtcPublishStream::send_rtcp_rr()
{
srs_error_t err = srs_success;
@ -2305,17 +2334,15 @@ srs_error_t SrsRtcConnection::do_send_packets(const std::vector<SrsRtpPacket2*>&
return err;
}
srs_error_t SrsRtcConnection::set_all_tracks_status_for_play(bool status)
void SrsRtcConnection::set_all_tracks_status(bool status)
{
srs_error_t err = srs_success;
if (!player_) {
return srs_error_new(ERROR_RTC_NO_PLAYER, "set play track status");
if (player_) {
player_->set_all_tracks_status(status);
}
player_->set_all_tracks_status(status);
return err;
if (publisher_) {
publisher_->set_all_tracks_status(status);
}
}
#ifdef SRS_OSX