mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Refine PLI log
This commit is contained in:
parent
2bc6632a22
commit
2cbc00bf61
2 changed files with 19 additions and 5 deletions
|
@ -765,7 +765,7 @@ srs_error_t SrsRtcPlayStream::on_rtcp_ps_feedback(SrsRtcpPsfbCommon* rtcp)
|
||||||
uint32_t ssrc = get_video_publish_ssrc(rtcp->get_media_ssrc());
|
uint32_t ssrc = get_video_publish_ssrc(rtcp->get_media_ssrc());
|
||||||
if (ssrc != 0) {
|
if (ssrc != 0) {
|
||||||
publisher->request_keyframe(ssrc);
|
publisher->request_keyframe(ssrc);
|
||||||
srs_trace("RTC request PLI");
|
srs_info("RTC request PLI");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -812,6 +812,7 @@ SrsRtcPublishStream::SrsRtcPublishStream(SrsRtcConnection* session, SrsContextId
|
||||||
is_started = false;
|
is_started = false;
|
||||||
session_ = session;
|
session_ = session;
|
||||||
request_keyframe_ = false;
|
request_keyframe_ = false;
|
||||||
|
pli_epp = new SrsErrorPithyPrint();
|
||||||
|
|
||||||
req = NULL;
|
req = NULL;
|
||||||
source = NULL;
|
source = NULL;
|
||||||
|
@ -837,6 +838,7 @@ SrsRtcPublishStream::~SrsRtcPublishStream()
|
||||||
|
|
||||||
// TODO: FIXME: Should remove and delete source.
|
// TODO: FIXME: Should remove and delete source.
|
||||||
|
|
||||||
|
srs_freep(pli_epp);
|
||||||
srs_freep(req);
|
srs_freep(req);
|
||||||
srs_freep(timer_);
|
srs_freep(timer_);
|
||||||
}
|
}
|
||||||
|
@ -1270,9 +1272,13 @@ srs_error_t SrsRtcPublishStream::on_rtcp_xr(SrsRtcpXr* rtcp)
|
||||||
// TODO: FIXME: Use async request PLI to prevent dup requests.
|
// TODO: FIXME: Use async request PLI to prevent dup requests.
|
||||||
void SrsRtcPublishStream::request_keyframe(uint32_t ssrc)
|
void SrsRtcPublishStream::request_keyframe(uint32_t ssrc)
|
||||||
{
|
{
|
||||||
SrsContextId scid = _srs_context->get_id();
|
uint32_t nn = 0;
|
||||||
SrsContextId pcid = session_->context_id();
|
if (pli_epp->can_print(ssrc, &nn)) {
|
||||||
srs_trace("RTC play=[%d][%s] SSRC=%u PLI from publish=[%d][%s]", ::getpid(), scid.c_str(), ssrc, ::getpid(), pcid.c_str());
|
SrsContextId scid = _srs_context->get_id();
|
||||||
|
SrsContextId pcid = session_->context_id();
|
||||||
|
srs_trace("RTC: Request PLI ssrc=%u, play=[%d][%s], publish=[%d][%s], count=%u/%u", ssrc, ::getpid(), scid.c_str(),
|
||||||
|
::getpid(), pcid.c_str(), nn, pli_epp->nn_count);
|
||||||
|
}
|
||||||
|
|
||||||
SrsRtcVideoRecvTrack* video_track = get_video_track(ssrc);
|
SrsRtcVideoRecvTrack* video_track = get_video_track(ssrc);
|
||||||
if (video_track) {
|
if (video_track) {
|
||||||
|
@ -1454,6 +1460,7 @@ SrsRtcConnection::SrsRtcConnection(SrsRtcServer* s, SrsContextId context_id)
|
||||||
twcc_id_ = 0;
|
twcc_id_ = 0;
|
||||||
nn_simulate_player_nack_drop = 0;
|
nn_simulate_player_nack_drop = 0;
|
||||||
pp_address_change = new SrsErrorPithyPrint();
|
pp_address_change = new SrsErrorPithyPrint();
|
||||||
|
pli_epp = new SrsErrorPithyPrint();
|
||||||
}
|
}
|
||||||
|
|
||||||
SrsRtcConnection::~SrsRtcConnection()
|
SrsRtcConnection::~SrsRtcConnection()
|
||||||
|
@ -1488,6 +1495,7 @@ SrsRtcConnection::~SrsRtcConnection()
|
||||||
srs_freep(req);
|
srs_freep(req);
|
||||||
srs_freep(stat_);
|
srs_freep(stat_);
|
||||||
srs_freep(pp_address_change);
|
srs_freep(pp_address_change);
|
||||||
|
srs_freep(pli_epp);
|
||||||
}
|
}
|
||||||
|
|
||||||
SrsSdp* SrsRtcConnection::get_local_sdp()
|
SrsSdp* SrsRtcConnection::get_local_sdp()
|
||||||
|
@ -2223,7 +2231,10 @@ srs_error_t SrsRtcConnection::send_rtcp_fb_pli(uint32_t ssrc)
|
||||||
stream.write_4bytes(ssrc);
|
stream.write_4bytes(ssrc);
|
||||||
stream.write_4bytes(ssrc);
|
stream.write_4bytes(ssrc);
|
||||||
|
|
||||||
srs_trace("RTC PLI ssrc=%u", ssrc);
|
uint32_t nn = 0;
|
||||||
|
if (pli_epp->can_print(ssrc, &nn)) {
|
||||||
|
srs_trace("RTC: Request PLI ssrc=%u, count=%u/%u, bytes=%uB", ssrc, nn, pli_epp->nn_count, stream.pos());
|
||||||
|
}
|
||||||
|
|
||||||
if (_srs_blackhole->blackhole) {
|
if (_srs_blackhole->blackhole) {
|
||||||
_srs_blackhole->sendto(stream.data(), stream.pos());
|
_srs_blackhole->sendto(stream.data(), stream.pos());
|
||||||
|
|
|
@ -283,6 +283,7 @@ private:
|
||||||
bool nack_enabled_;
|
bool nack_enabled_;
|
||||||
private:
|
private:
|
||||||
bool request_keyframe_;
|
bool request_keyframe_;
|
||||||
|
SrsErrorPithyPrint* pli_epp;
|
||||||
private:
|
private:
|
||||||
SrsRequest* req;
|
SrsRequest* req;
|
||||||
SrsRtcStream* source;
|
SrsRtcStream* source;
|
||||||
|
@ -419,6 +420,8 @@ private:
|
||||||
int nn_simulate_player_nack_drop;
|
int nn_simulate_player_nack_drop;
|
||||||
// Pithy print for address change, use port as error code.
|
// Pithy print for address change, use port as error code.
|
||||||
SrsErrorPithyPrint* pp_address_change;
|
SrsErrorPithyPrint* pp_address_change;
|
||||||
|
// Pithy print for PLI request.
|
||||||
|
SrsErrorPithyPrint* pli_epp;
|
||||||
public:
|
public:
|
||||||
SrsRtcConnection(SrsRtcServer* s, SrsContextId context_id);
|
SrsRtcConnection(SrsRtcServer* s, SrsContextId context_id);
|
||||||
virtual ~SrsRtcConnection();
|
virtual ~SrsRtcConnection();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue