Revert "Add plumbing for video NACK to be coupled between channels."

This reverts commit a087f6f1c842f1d70ad207b44c48321ab60d2d95.

Reason for revert: Needed to roll back other CL

Original change's description:
> Add plumbing for video NACK to be coupled between channels.
>
> Bug: webrtc:13931, webrtc:14920
> Change-Id: I451869e295e099a1d08c0c80e481decd53149f1b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/294382
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39373}

Bug: webrtc:13931, webrtc:14920
Change-Id: I19e176e75630313da470542e7ff1e89b6d717fc9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/295664
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39432}
This commit is contained in:
Harald Alvestrand 2023-03-01 08:54:53 +00:00 committed by WebRTC LUCI CQ
parent 0f43da2248
commit ba088b1dce
6 changed files with 8 additions and 106 deletions

View File

@ -513,18 +513,6 @@ class FakeVideoMediaChannel : public RtpHelper<VideoMediaChannel> {
void RequestRecvKeyFrame(uint32_t ssrc) override;
void GenerateSendKeyFrame(uint32_t ssrc,
const std::vector<std::string>& rids) override;
webrtc::RtcpMode SendCodecRtcpMode() const override {
return webrtc::RtcpMode::kCompound;
}
bool SendCodecHasLntf() const override { return false; }
bool SendCodecHasNack() const override { return false; }
absl::optional<int> SendCodecRtxTime() const override {
return absl::nullopt;
}
void SetReceiverFeedbackParameters(bool lntf_enabled,
bool nack_enabled,
webrtc::RtcpMode rtcp_mode,
absl::optional<int> rtx_time) override {}
private:
bool SetRecvCodecs(const std::vector<VideoCodec>& codecs);

View File

@ -959,11 +959,6 @@ class VideoMediaSendChannelInterface : public MediaSendChannelInterface {
virtual void SetVideoCodecSwitchingEnabled(bool enabled) = 0;
virtual bool GetStats(VideoMediaSendInfo* stats) = 0;
virtual void FillBitrateInfo(BandwidthEstimationInfo* bwe_info) = 0;
// Information queries to support SetReceiverFeedbackParameters
virtual webrtc::RtcpMode SendCodecRtcpMode() const = 0;
virtual bool SendCodecHasLntf() const = 0;
virtual bool SendCodecHasNack() const = 0;
virtual absl::optional<int> SendCodecRtxTime() const = 0;
};
class VideoMediaReceiveChannelInterface : public MediaReceiveChannelInterface {
@ -993,10 +988,6 @@ class VideoMediaReceiveChannelInterface : public MediaReceiveChannelInterface {
// Clear recordable encoded frame callback for `ssrc`
virtual void ClearRecordableEncodedFrameCallback(uint32_t ssrc) = 0;
virtual bool GetStats(VideoMediaReceiveInfo* stats) = 0;
virtual void SetReceiverFeedbackParameters(bool lntf_enabled,
bool nack_enabled,
webrtc::RtcpMode rtcp_mode,
absl::optional<int> rtx_time) = 0;
};
// Info about data received in DataMediaChannel. For use in

View File

@ -652,15 +652,6 @@ class VideoMediaSendChannel : public VideoMediaSendChannelInterface {
void FillBitrateInfo(BandwidthEstimationInfo* bwe_info) override {
return impl_->FillBitrateInfo(bwe_info);
}
// Information queries to support SetReceiverFeedbackParameters
webrtc::RtcpMode SendCodecRtcpMode() const override {
return impl()->SendCodecRtcpMode();
}
bool SendCodecHasLntf() const override { return impl()->SendCodecHasLntf(); }
bool SendCodecHasNack() const override { return impl()->SendCodecHasNack(); }
absl::optional<int> SendCodecRtxTime() const override {
return impl()->SendCodecRtxTime();
}
MediaChannel* ImplForTesting() override { return impl_; }
@ -784,13 +775,6 @@ class VideoMediaReceiveChannel : public VideoMediaReceiveChannelInterface {
bool GetStats(VideoMediaReceiveInfo* info) override {
return impl_->GetReceiveStats(info);
}
void SetReceiverFeedbackParameters(bool lntf_enabled,
bool nack_enabled,
webrtc::RtcpMode rtcp_mode,
absl::optional<int> rtx_time) override {
impl()->SetReceiverFeedbackParameters(lntf_enabled, nack_enabled, rtcp_mode,
rtx_time);
}
MediaChannel* ImplForTesting() override { return impl_; }
private:

View File

@ -982,13 +982,14 @@ bool WebRtcVideoChannel::ApplyChangedParams(
for (auto& kv : send_streams_) {
kv.second->SetSendParameters(changed_params);
}
if (role() == MediaChannel::Role::kBoth) {
if (changed_params.send_codec || changed_params.rtcp_mode) {
// Update receive feedback parameters from new codec or RTCP mode.
RTC_LOG(LS_INFO) << "SetFeedbackParameters on all the receive streams "
"because the send "
"codec or RTCP mode has changed.";
SetReceiverFeedbackParameters(
if (changed_params.send_codec || changed_params.rtcp_mode) {
// Update receive feedback parameters from new codec or RTCP mode.
RTC_LOG(LS_INFO)
<< "SetFeedbackParameters on all the receive streams because the send "
"codec or RTCP mode has changed.";
for (auto& kv : receive_streams_) {
RTC_DCHECK(kv.second != nullptr);
kv.second->SetFeedbackParameters(
HasLntf(send_codec_->codec), HasNack(send_codec_->codec),
send_params_.rtcp.reduced_size ? webrtc::RtcpMode::kReducedSize
: webrtc::RtcpMode::kCompound,
@ -998,23 +999,6 @@ bool WebRtcVideoChannel::ApplyChangedParams(
return true;
}
void WebRtcVideoChannel::SetReceiverFeedbackParameters(
bool lntf_enabled,
bool nack_enabled,
webrtc::RtcpMode rtcp_mode,
absl::optional<int> rtx_time) {
RTC_DCHECK_RUN_ON(&thread_checker_);
RTC_DCHECK(role() == MediaChannel::Role::kReceive ||
role() == MediaChannel::Role::kBoth);
// Update receive feedback parameters from new codec or RTCP mode.
for (auto& kv : receive_streams_) {
RTC_DCHECK(kv.second != nullptr);
kv.second->SetFeedbackParameters(lntf_enabled, nack_enabled, rtcp_mode,
rtx_time);
}
}
webrtc::RtpParameters WebRtcVideoChannel::GetRtpSendParameters(
uint32_t ssrc) const {
RTC_DCHECK_RUN_ON(&thread_checker_);

View File

@ -231,39 +231,6 @@ class WebRtcVideoChannel : public VideoMediaChannel,
rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer)
override;
// Information queries to support SetReceiverFeedbackParameters
webrtc::RtcpMode SendCodecRtcpMode() const override {
RTC_DCHECK_RUN_ON(&thread_checker_);
return send_params_.rtcp.reduced_size ? webrtc::RtcpMode::kReducedSize
: webrtc::RtcpMode::kCompound;
}
bool SendCodecHasLntf() const override {
RTC_DCHECK_RUN_ON(&thread_checker_);
if (!send_codec_) {
return false;
}
return HasLntf(send_codec_->codec);
}
bool SendCodecHasNack() const override {
RTC_DCHECK_RUN_ON(&thread_checker_);
if (!send_codec_) {
return false;
}
return HasNack(send_codec_->codec);
}
absl::optional<int> SendCodecRtxTime() const override {
RTC_DCHECK_RUN_ON(&thread_checker_);
if (!send_codec_) {
return absl::nullopt;
}
return send_codec_->rtx_time;
}
void SetReceiverFeedbackParameters(bool lntf_enabled,
bool nack_enabled,
webrtc::RtcpMode rtcp_mode,
absl::optional<int> rtx_time) override;
private:
class WebRtcVideoReceiveStream;

View File

@ -1064,12 +1064,6 @@ bool VideoChannel::SetLocalContent_w(const MediaContentDescription* content,
mid().c_str());
return false;
}
// adjust receive streams based on send codec
media_receive_channel()->SetReceiverFeedbackParameters(
media_send_channel()->SendCodecHasLntf(),
media_send_channel()->SendCodecHasNack(),
media_send_channel()->SendCodecRtcpMode(),
media_send_channel()->SendCodecRtxTime());
last_send_params_ = send_params;
}
@ -1137,12 +1131,6 @@ bool VideoChannel::SetRemoteContent_w(const MediaContentDescription* content,
mid().c_str());
return false;
}
// adjust receive streams based on send codec
media_receive_channel()->SetReceiverFeedbackParameters(
media_send_channel()->SendCodecHasLntf(),
media_send_channel()->SendCodecHasNack(),
media_send_channel()->SendCodecRtcpMode(),
media_send_channel()->SendCodecRtxTime());
last_send_params_ = send_params;
if (needs_recv_params_update) {