1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-15 04:42:04 +00:00

RTC: Support disable nack

This commit is contained in:
winlin 2021-02-05 15:52:44 +08:00
parent dffbebfe6f
commit 2b60112130
3 changed files with 9 additions and 9 deletions

View file

@ -1211,12 +1211,12 @@ srs_error_t SrsRtcPublishStream::do_on_rtp(char* plaintext, int nb_plaintext)
SrsRtcVideoRecvTrack* video_track = get_video_track(ssrc); SrsRtcVideoRecvTrack* video_track = get_video_track(ssrc);
if (audio_track) { if (audio_track) {
pkt->frame_type = SrsFrameTypeAudio; pkt->frame_type = SrsFrameTypeAudio;
if ((err = audio_track->on_rtp(source, pkt)) != srs_success) { if ((err = audio_track->on_rtp(source, pkt, nack_enabled_)) != srs_success) {
return srs_error_wrap(err, "on audio"); return srs_error_wrap(err, "on audio");
} }
} else if (video_track) { } else if (video_track) {
pkt->frame_type = SrsFrameTypeVideo; pkt->frame_type = SrsFrameTypeVideo;
if ((err = video_track->on_rtp(source, pkt)) != srs_success) { if ((err = video_track->on_rtp(source, pkt, nack_enabled_)) != srs_success) {
return srs_error_wrap(err, "on video"); return srs_error_wrap(err, "on video");
} }
} else { } else {

View file

@ -1841,7 +1841,7 @@ void SrsRtcAudioRecvTrack::on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffe
*ppayload = new SrsRtpRawPayload(); *ppayload = new SrsRtpRawPayload();
} }
srs_error_t SrsRtcAudioRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt) srs_error_t SrsRtcAudioRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt, bool nack_enabled)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1857,7 +1857,7 @@ srs_error_t SrsRtcAudioRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pk
} }
// For NACK to handle packet. // For NACK to handle packet.
if ((err = on_nack(pkt)) != srs_success) { if (nack_enabled && (err = on_nack(pkt)) != srs_success) {
return srs_error_wrap(err, "on nack"); return srs_error_wrap(err, "on nack");
} }
@ -1902,7 +1902,7 @@ void SrsRtcVideoRecvTrack::on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffe
} }
} }
srs_error_t SrsRtcVideoRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt) srs_error_t SrsRtcVideoRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt, bool nack_enabled)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1920,7 +1920,7 @@ srs_error_t SrsRtcVideoRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pk
} }
// For NACK to handle packet. // For NACK to handle packet.
if ((err = on_nack(pkt)) != srs_success) { if (nack_enabled && (err = on_nack(pkt)) != srs_success) {
return srs_error_wrap(err, "on nack"); return srs_error_wrap(err, "on nack");
} }

View file

@ -526,7 +526,7 @@ public:
protected: protected:
srs_error_t on_nack(SrsRtpPacket2* pkt); srs_error_t on_nack(SrsRtpPacket2* pkt);
public: public:
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt) = 0; virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt, bool nack_enabled) = 0;
virtual srs_error_t check_send_nacks() = 0; virtual srs_error_t check_send_nacks() = 0;
protected: protected:
virtual srs_error_t do_check_send_nacks(uint32_t& timeout_nacks); virtual srs_error_t do_check_send_nacks(uint32_t& timeout_nacks);
@ -540,7 +540,7 @@ public:
public: public:
virtual void on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* buf, ISrsRtpPayloader** ppayload); virtual void on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* buf, ISrsRtpPayloader** ppayload);
public: public:
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt); virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt, bool nack_enabled);
virtual srs_error_t check_send_nacks(); virtual srs_error_t check_send_nacks();
}; };
@ -552,7 +552,7 @@ public:
public: public:
virtual void on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* buf, ISrsRtpPayloader** ppayload); virtual void on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* buf, ISrsRtpPayloader** ppayload);
public: public:
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt); virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt, bool nack_enabled);
virtual srs_error_t check_send_nacks(); virtual srs_error_t check_send_nacks();
}; };