Delete media transport integration.
MediaTransport is deprecated and the code is unused.
No-Try: True
Bug: webrtc:9719
Change-Id: I5b864c1e74bf04df16c15f51b8fac3d407331dcd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160620
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29923}
diff --git a/video/encoder_rtcp_feedback.cc b/video/encoder_rtcp_feedback.cc
index 19a8f64..a736d83 100644
--- a/video/encoder_rtcp_feedback.cc
+++ b/video/encoder_rtcp_feedback.cc
@@ -67,16 +67,6 @@
video_stream_encoder_->SendKeyFrame();
}
-void EncoderRtcpFeedback::OnKeyFrameRequested(uint64_t channel_id) {
- if (channel_id != ssrcs_[0]) {
- RTC_LOG(LS_INFO) << "Key frame request on unknown channel id " << channel_id
- << " expected " << ssrcs_[0];
- return;
- }
-
- video_stream_encoder_->SendKeyFrame();
-}
-
void EncoderRtcpFeedback::OnReceivedLossNotification(
uint32_t ssrc,
uint16_t seq_num_of_last_decodable,
diff --git a/video/encoder_rtcp_feedback.h b/video/encoder_rtcp_feedback.h
index 21624db..b5dd028 100644
--- a/video/encoder_rtcp_feedback.h
+++ b/video/encoder_rtcp_feedback.h
@@ -12,7 +12,6 @@
#include <vector>
-#include "api/transport/media/media_transport_interface.h"
#include "api/video/video_stream_encoder_interface.h"
#include "call/rtp_video_sender_interface.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
@@ -24,12 +23,9 @@
class VideoStreamEncoderInterface;
// This class passes feedback (such as key frame requests or loss notifications)
-// from either Mediatransport or the RtpRtcp module.
-// TODO(bugs.webrtc.org/9719): Should be eliminated when RtpMediaTransport is
-// implemented.
+// from the RtpRtcp module.
class EncoderRtcpFeedback : public RtcpIntraFrameObserver,
- public RtcpLossNotificationObserver,
- public MediaTransportKeyFrameRequestCallback {
+ public RtcpLossNotificationObserver {
public:
EncoderRtcpFeedback(Clock* clock,
const std::vector<uint32_t>& ssrcs,
@@ -40,9 +36,6 @@
void OnReceivedIntraFrameRequest(uint32_t ssrc) override;
- // Implements MediaTransportKeyFrameRequestCallback
- void OnKeyFrameRequested(uint64_t channel_id) override;
-
// Implements RtcpLossNotificationObserver.
void OnReceivedLossNotification(uint32_t ssrc,
uint16_t seq_num_of_last_decodable,
diff --git a/video/encoder_rtcp_feedback_unittest.cc b/video/encoder_rtcp_feedback_unittest.cc
index b49a0b9..81ac22b 100644
--- a/video/encoder_rtcp_feedback_unittest.cc
+++ b/video/encoder_rtcp_feedback_unittest.cc
@@ -55,9 +55,4 @@
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
}
-TEST_F(VieKeyRequestTest, TriggerRequestFromMediaTransport) {
- EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
- encoder_rtcp_feedback_.OnKeyFrameRequested(kSsrc);
-}
-
} // namespace webrtc
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index 8f7d612..ad8c808 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -22,7 +22,6 @@
#include "api/rtc_event_log_output_file.h"
#include "api/task_queue/default_task_queue_factory.h"
#include "api/task_queue/task_queue_base.h"
-#include "api/transport/media/media_transport_config.h"
#include "api/video/builtin_video_bitrate_allocator_factory.h"
#include "api/video_codecs/video_encoder.h"
#include "call/fake_network_pipe.h"
@@ -1410,8 +1409,7 @@
}
void VideoQualityTest::SetupAudio(Transport* transport) {
- AudioSendStream::Config audio_send_config(transport,
- webrtc::MediaTransportConfig());
+ AudioSendStream::Config audio_send_config(transport);
audio_send_config.rtp.ssrc = kAudioSendSsrc;
// Add extension to enable audio send side BWE, and allow audio bit rate
diff --git a/video/video_receive_stream.cc b/video/video_receive_stream.cc
index a683f7d..8213c64 100644
--- a/video/video_receive_stream.cc
+++ b/video/video_receive_stream.cc
@@ -125,40 +125,6 @@
const char* ImplementationName() const override { return "NullVideoDecoder"; }
};
-// Inherit video_coding::EncodedFrame, which is the class used by
-// video_coding::FrameBuffer and other components in the receive pipeline. It's
-// a subclass of EncodedImage, and it always owns the buffer.
-class EncodedFrameForMediaTransport : public video_coding::EncodedFrame {
- public:
- explicit EncodedFrameForMediaTransport(
- MediaTransportEncodedVideoFrame frame) {
- // TODO(nisse): This is ugly. We copy the EncodedImage (a base class of
- // ours, in several steps), to get all the meta data. We should be using
- // std::move in some way. Then we also need to handle the case of an unowned
- // buffer, in which case we need to make an owned copy.
- *static_cast<class EncodedImage*>(this) = frame.encoded_image();
-
- // If we don't already own the buffer, make a copy.
- Retain();
-
- _payloadType = static_cast<uint8_t>(frame.payload_type());
-
- // TODO(nisse): frame_id and picture_id are probably not the same thing. For
- // a single layer, this should be good enough.
- id.picture_id = frame.frame_id();
- id.spatial_layer = frame.encoded_image().SpatialIndex().value_or(0);
- num_references = std::min(static_cast<size_t>(kMaxFrameReferences),
- frame.referenced_frame_ids().size());
- for (size_t i = 0; i < num_references; i++) {
- references[i] = frame.referenced_frame_ids()[i];
- }
- }
-
- // TODO(nisse): Implement. Not sure how they are used.
- int64_t ReceivedTime() const override { return 0; }
- int64_t RenderTime() const override { return 0; }
-};
-
// TODO(https://bugs.webrtc.org/9974): Consider removing this workaround.
// Maximum time between frames before resetting the FrameBuffer to avoid RTP
// timestamps wraparound to affect FrameBuffer.
@@ -238,23 +204,18 @@
new video_coding::FrameBuffer(clock_, timing_.get(), &stats_proxy_));
process_thread_->RegisterModule(&rtp_stream_sync_, RTC_FROM_HERE);
- if (config_.media_transport()) {
- config_.media_transport()->SetReceiveVideoSink(this);
- config_.media_transport()->AddRttObserver(this);
+ // Register with RtpStreamReceiverController.
+ media_receiver_ = receiver_controller->CreateReceiver(
+ config_.rtp.remote_ssrc, &rtp_video_stream_receiver_);
+ if (config_.rtp.rtx_ssrc) {
+ rtx_receive_stream_ = std::make_unique<RtxReceiveStream>(
+ &rtp_video_stream_receiver_, config.rtp.rtx_associated_payload_types,
+ config_.rtp.remote_ssrc, rtp_receive_statistics_.get());
+ rtx_receiver_ = receiver_controller->CreateReceiver(
+ config_.rtp.rtx_ssrc, rtx_receive_stream_.get());
} else {
- // Register with RtpStreamReceiverController.
- media_receiver_ = receiver_controller->CreateReceiver(
- config_.rtp.remote_ssrc, &rtp_video_stream_receiver_);
- if (config_.rtp.rtx_ssrc) {
- rtx_receive_stream_ = std::make_unique<RtxReceiveStream>(
- &rtp_video_stream_receiver_, config.rtp.rtx_associated_payload_types,
- config_.rtp.remote_ssrc, rtp_receive_statistics_.get());
- rtx_receiver_ = receiver_controller->CreateReceiver(
- config_.rtp.rtx_ssrc, rtx_receive_stream_.get());
- } else {
- rtp_receive_statistics_->EnableRetransmitDetection(config.rtp.remote_ssrc,
- true);
- }
+ rtp_receive_statistics_->EnableRetransmitDetection(config.rtp.remote_ssrc,
+ true);
}
}
@@ -281,10 +242,6 @@
RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
RTC_LOG(LS_INFO) << "~VideoReceiveStream: " << config_.ToString();
Stop();
- if (config_.media_transport()) {
- config_.media_transport()->SetReceiveVideoSink(nullptr);
- config_.media_transport()->RemoveRttObserver(this);
- }
process_thread_->DeRegisterModule(&rtp_stream_sync_);
}
@@ -536,11 +493,7 @@
}
void VideoReceiveStream::RequestKeyFrame(int64_t timestamp_ms) {
- if (config_.media_transport()) {
- config_.media_transport()->RequestKeyFrame(config_.rtp.remote_ssrc);
- } else {
- rtp_video_stream_receiver_.RequestKeyFrame();
- }
+ rtp_video_stream_receiver_.RequestKeyFrame();
last_keyframe_request_ms_ = timestamp_ms;
}
@@ -573,22 +526,12 @@
rtp_video_stream_receiver_.FrameContinuous(last_continuous_pid);
}
-void VideoReceiveStream::OnData(uint64_t channel_id,
- MediaTransportEncodedVideoFrame frame) {
- OnCompleteFrame(
- std::make_unique<EncodedFrameForMediaTransport>(std::move(frame)));
-}
-
void VideoReceiveStream::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
RTC_DCHECK_RUN_ON(&module_process_sequence_checker_);
frame_buffer_->UpdateRtt(max_rtt_ms);
rtp_video_stream_receiver_.UpdateRtt(max_rtt_ms);
}
-void VideoReceiveStream::OnRttUpdated(int64_t rtt_ms) {
- frame_buffer_->UpdateRtt(rtt_ms);
-}
-
int VideoReceiveStream::id() const {
RTC_DCHECK_RUN_ON(&worker_sequence_checker_);
return config_.rtp.remote_ssrc;
diff --git a/video/video_receive_stream.h b/video/video_receive_stream.h
index 7c68563..2a4e0d1 100644
--- a/video/video_receive_stream.h
+++ b/video/video_receive_stream.h
@@ -15,7 +15,6 @@
#include <vector>
#include "api/task_queue/task_queue_factory.h"
-#include "api/transport/media/media_transport_interface.h"
#include "call/rtp_packet_sink_interface.h"
#include "call/syncable.h"
#include "call/video_receive_stream.h"
@@ -49,9 +48,7 @@
public NackSender,
public video_coding::OnCompleteFrameCallback,
public Syncable,
- public CallStatsObserver,
- public MediaTransportVideoSinkInterface,
- public MediaTransportRttObserver {
+ public CallStatsObserver {
public:
VideoReceiveStream(TaskQueueFactory* task_queue_factory,
RtpStreamReceiverControllerInterface* receiver_controller,
@@ -110,17 +107,9 @@
void OnCompleteFrame(
std::unique_ptr<video_coding::EncodedFrame> frame) override;
- // Implements MediaTransportVideoSinkInterface, converts the received frame to
- // OnCompleteFrameCallback
- void OnData(uint64_t channel_id,
- MediaTransportEncodedVideoFrame frame) override;
-
// Implements CallStatsObserver::OnRttUpdate
void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override;
- // Implements MediaTransportRttObserver::OnRttUpdated
- void OnRttUpdated(int64_t rtt_ms) override;
-
// Implements Syncable.
int id() const override;
absl::optional<Syncable::Info> GetInfo() const override;
diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index 12d9dac..8fae407 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -103,7 +103,7 @@
event_log, &config_, encoder_config.max_bitrate_bps,
encoder_config.bitrate_priority, suspended_ssrcs,
suspended_payload_states, encoder_config.content_type,
- std::move(fec_controller), config_.media_transport));
+ std::move(fec_controller)));
},
[this]() { thread_sync_event_.Set(); }));
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc
index 31dddcc..97f3bb7 100644
--- a/video/video_send_stream_impl.cc
+++ b/video/video_send_stream_impl.cc
@@ -181,8 +181,7 @@
std::map<uint32_t, RtpState> suspended_ssrcs,
std::map<uint32_t, RtpPayloadState> suspended_payload_states,
VideoEncoderConfig::ContentType content_type,
- std::unique_ptr<FecController> fec_controller,
- MediaTransportInterface* media_transport)
+ std::unique_ptr<FecController> fec_controller)
: clock_(clock),
has_alr_probing_(config->periodic_alr_bandwidth_probing ||
GetAlrSettings(content_type)),
@@ -216,8 +215,7 @@
event_log,
std::move(fec_controller),
CreateFrameEncryptionConfig(config_))),
- weak_ptr_factory_(this),
- media_transport_(media_transport) {
+ weak_ptr_factory_(this) {
video_stream_encoder->SetFecControllerOverride(rtp_video_sender_);
RTC_DCHECK_RUN_ON(worker_queue_);
RTC_LOG(LS_INFO) << "VideoSendStreamInternal: " << config_->ToString();
@@ -225,14 +223,7 @@
encoder_feedback_.SetRtpVideoSender(rtp_video_sender_);
- if (media_transport_) {
- // The configured ssrc is interpreted as a channel id, so there must be
- // exactly one.
- RTC_DCHECK_EQ(config_->rtp.ssrcs.size(), 1);
- media_transport_->SetKeyFrameRequestCallback(&encoder_feedback_);
- } else {
- RTC_DCHECK(!config_->rtp.ssrcs.empty());
- }
+ RTC_DCHECK(!config_->rtp.ssrcs.empty());
RTC_DCHECK(call_stats_);
RTC_DCHECK(transport_);
RTC_DCHECK_NE(initial_encoder_max_bitrate, 0);
@@ -310,9 +301,6 @@
<< "VideoSendStreamImpl::Stop not called";
RTC_LOG(LS_INFO) << "~VideoSendStreamInternal: " << config_->ToString();
transport_->DestroyRtpVideoSender(rtp_video_sender_);
- if (media_transport_) {
- media_transport_->SetKeyFrameRequestCallback(nullptr);
- }
}
void VideoSendStreamImpl::RegisterProcessThread(
@@ -581,31 +569,8 @@
}
EncodedImageCallback::Result result(EncodedImageCallback::Result::OK);
- if (media_transport_) {
- int64_t frame_id;
- {
- // TODO(nisse): Responsibility for allocation of frame ids should move to
- // VideoStreamEncoder.
- rtc::CritScope cs(&media_transport_id_lock_);
- frame_id = media_transport_frame_id_++;
- }
- // TODO(nisse): Responsibility for reference meta data should be moved
- // upstream, ideally close to the encoders, but probably VideoStreamEncoder
- // will need to do some translation to produce reference info using frame
- // ids.
- std::vector<int64_t> referenced_frame_ids;
- if (encoded_image._frameType != VideoFrameType::kVideoFrameKey) {
- RTC_DCHECK_GT(frame_id, 0);
- referenced_frame_ids.push_back(frame_id - 1);
- }
- media_transport_->SendVideoFrame(
- config_->rtp.ssrcs[0], webrtc::MediaTransportEncodedVideoFrame(
- frame_id, referenced_frame_ids,
- config_->rtp.payload_type, encoded_image));
- } else {
- result = rtp_video_sender_->OnEncodedImage(
- encoded_image, codec_specific_info, fragmentation);
- }
+ result = rtp_video_sender_->OnEncodedImage(encoded_image, codec_specific_info,
+ fragmentation);
// Check if there's a throttled VideoBitrateAllocation that we should try
// sending.
rtc::WeakPtr<VideoSendStreamImpl> send_stream = weak_ptr_;
diff --git a/video/video_send_stream_impl.h b/video/video_send_stream_impl.h
index 091ac0f..4195efc 100644
--- a/video/video_send_stream_impl.h
+++ b/video/video_send_stream_impl.h
@@ -87,8 +87,7 @@
std::map<uint32_t, RtpState> suspended_ssrcs,
std::map<uint32_t, RtpPayloadState> suspended_payload_states,
VideoEncoderConfig::ContentType content_type,
- std::unique_ptr<FecController> fec_controller,
- MediaTransportInterface* media_transport);
+ std::unique_ptr<FecController> fec_controller);
~VideoSendStreamImpl() override;
// RegisterProcessThread register |module_process_thread| with those objects
@@ -199,10 +198,6 @@
};
absl::optional<VbaSendContext> video_bitrate_allocation_context_
RTC_GUARDED_BY(worker_queue_);
- MediaTransportInterface* const media_transport_;
- rtc::CriticalSection media_transport_id_lock_;
- int64_t media_transport_frame_id_ RTC_GUARDED_BY(media_transport_id_lock_) =
- 0;
};
} // namespace internal
} // namespace webrtc
diff --git a/video/video_send_stream_impl_unittest.cc b/video/video_send_stream_impl_unittest.cc
index ce88a36..1c44cc8 100644
--- a/video/video_send_stream_impl_unittest.cc
+++ b/video/video_send_stream_impl_unittest.cc
@@ -137,8 +137,7 @@
&video_stream_encoder_, &event_log_, &config_,
initial_encoder_max_bitrate, initial_encoder_bitrate_priority,
suspended_ssrcs, suspended_payload_states, content_type,
- std::make_unique<FecControllerDefault>(&clock_),
- /*media_transport=*/nullptr);
+ std::make_unique<FecControllerDefault>(&clock_));
}
protected: