Makes padding prefer video SSRCs instead of audio.

Some clients will not count audio packets into the bandwidth estimate
despite negotiating e.g. abs-send-time for that SSRC.
If padding is sent on such an RTP module, we might get stuck in a low
resolution.

This CL works around that by preferring to send padding on video SSRCs.

Bug: webrtc:11196
Change-Id: I1ff503a31a85bc32315006a4f15f8b08e5d4e883
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161941
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30066}
This commit is contained in:
Erik Språng
2019-12-11 16:47:09 +01:00
committed by Commit Bot
parent 184da528a7
commit 1e51a388bc
9 changed files with 94 additions and 10 deletions

View File

@ -334,6 +334,11 @@ bool ModuleRtpRtcpImpl::SendingMedia() const {
return rtp_sender_ ? rtp_sender_->packet_generator.SendingMedia() : false;
}
bool ModuleRtpRtcpImpl::IsAudioConfigured() const {
return rtp_sender_ ? rtp_sender_->packet_generator.IsAudioConfigured()
: false;
}
void ModuleRtpRtcpImpl::SetAsPartOfAllocation(bool part_of_allocation) {
RTC_CHECK(rtp_sender_);
rtp_sender_->packet_sender.ForceIncludeSendPacketsInAllocation(

View File

@ -125,6 +125,8 @@ class ModuleRtpRtcpImpl : public RtpRtcp, public RTCPReceiver::ModuleRtpRtcp {
bool SendingMedia() const override;
bool IsAudioConfigured() const override;
void SetAsPartOfAllocation(bool part_of_allocation) override;
bool OnSendingRtpFrame(uint32_t timestamp,

View File

@ -545,6 +545,10 @@ bool RTPSender::SendingMedia() const {
return sending_media_;
}
bool RTPSender::IsAudioConfigured() const {
return audio_configured_;
}
void RTPSender::SetTimestampOffset(uint32_t timestamp) {
rtc::CritScope lock(&send_critsect_);
timestamp_offset_ = timestamp;

View File

@ -54,6 +54,7 @@ class RTPSender {
void SetSendingMediaStatus(bool enabled);
bool SendingMedia() const;
bool IsAudioConfigured() const;
uint32_t TimestampOffset() const;
void SetTimestampOffset(uint32_t timestamp);