mirror of
https://github.com/ossrs/srs.git
synced 2025-02-14 20:31:56 +00:00
RTC: fix rtc publisher pli cid (#3318)
* RTC: fix rtc publisher pli cid
* RTC: log bridge request keyframe
* Update release v6.0.19 v5.0.138
PICK 7922057467
Co-authored-by: Winlin <winlin@vip.126.com>
Co-authored-by: ChenGH <chengh_math@126.com>
This commit is contained in:
parent
9600e495c7
commit
d6477c24d6
6 changed files with 12 additions and 9 deletions
|
@ -8,6 +8,7 @@ The changelog for SRS.
|
|||
|
||||
## SRS 5.0 Changelog
|
||||
|
||||
* v5.0, 2023-01-19, Merge [#3318](https://github.com/ossrs/srs/pull/3318): RTC: fix rtc publisher pli cid. v5.0.138 (#3318)
|
||||
* v5.0, 2023-01-18, Merge [#3382](https://github.com/ossrs/srs/pull/3382): Rewrite research/api-server code by Go, remove Python. v5.0.137 (#3382)
|
||||
* v5.0, 2023-01-18, Merge [#3386](https://github.com/ossrs/srs/pull/3386): SRT: fix crash when srt_to_rtmp off. v5.0.136 (#3386)
|
||||
* v5.0, 2023-01-17, Merge [#3385](https://github.com/ossrs/srs/pull/3385): API: Support server/pid/service label for exporter and api. v5.0.135 (#3385)
|
||||
|
|
|
@ -912,7 +912,7 @@ srs_error_t SrsRtcPlayStream::do_request_keyframe(uint32_t ssrc, SrsContextId ci
|
|||
return err;
|
||||
}
|
||||
|
||||
publisher->request_keyframe(ssrc);
|
||||
publisher->request_keyframe(ssrc, cid);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@ -1611,15 +1611,14 @@ srs_error_t SrsRtcPublishStream::on_rtcp_xr(SrsRtcpXr* rtcp)
|
|||
return err;
|
||||
}
|
||||
|
||||
void SrsRtcPublishStream::request_keyframe(uint32_t ssrc)
|
||||
void SrsRtcPublishStream::request_keyframe(uint32_t ssrc, SrsContextId cid)
|
||||
{
|
||||
SrsContextId sub_cid = _srs_context->get_id();
|
||||
pli_worker_->request_keyframe(ssrc, sub_cid);
|
||||
pli_worker_->request_keyframe(ssrc, cid);
|
||||
|
||||
uint32_t nn = 0;
|
||||
if (pli_epp->can_print(ssrc, &nn)) {
|
||||
// The player(subscriber) cid, which requires PLI.
|
||||
srs_trace("RTC: Need PLI ssrc=%u, play=[%s], publish=[%s], count=%u/%u", ssrc, sub_cid.c_str(),
|
||||
srs_trace("RTC: Need PLI ssrc=%u, play=[%s], publish=[%s], count=%u/%u", ssrc, cid.c_str(),
|
||||
cid_.c_str(), nn, pli_epp->nn_count);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -384,7 +384,7 @@ private:
|
|||
srs_error_t on_rtcp_sr(SrsRtcpSR* rtcp);
|
||||
srs_error_t on_rtcp_xr(SrsRtcpXr* rtcp);
|
||||
public:
|
||||
void request_keyframe(uint32_t ssrc);
|
||||
void request_keyframe(uint32_t ssrc, SrsContextId cid);
|
||||
virtual srs_error_t do_request_keyframe(uint32_t ssrc, SrsContextId cid);
|
||||
public:
|
||||
void simulate_nack_drop(int nn);
|
||||
|
|
|
@ -703,7 +703,8 @@ srs_error_t SrsRtcSource::on_timer(srs_utime_t interval)
|
|||
|
||||
for (int i = 0; i < (int)stream_desc_->video_track_descs_.size(); i++) {
|
||||
SrsRtcTrackDescription* desc = stream_desc_->video_track_descs_.at(i);
|
||||
publish_stream_->request_keyframe(desc->ssrc_);
|
||||
srs_trace("RTC: to rtmp bridge request key frame, ssrc=%u, publisher cid=%s", desc->ssrc_, publish_stream_->context_id().c_str());
|
||||
publish_stream_->request_keyframe(desc->ssrc_, publish_stream_->context_id());
|
||||
}
|
||||
|
||||
return err;
|
||||
|
|
|
@ -128,7 +128,9 @@ public:
|
|||
virtual ~ISrsRtcPublishStream();
|
||||
public:
|
||||
// Request keyframe(PLI) from publisher, for fresh consumer.
|
||||
virtual void request_keyframe(uint32_t ssrc) = 0;
|
||||
virtual void request_keyframe(uint32_t ssrc, SrsContextId cid) = 0;
|
||||
// Get context id.
|
||||
virtual const SrsContextId& context_id() = 0;
|
||||
};
|
||||
|
||||
class ISrsRtcSourceEventHandler
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
#define VERSION_MAJOR 5
|
||||
#define VERSION_MINOR 0
|
||||
#define VERSION_REVISION 137
|
||||
#define VERSION_REVISION 138
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue