diff --git a/api/media_transport_interface.cc b/api/media_transport_interface.cc index a97b7894cc..cb2fdabc5c 100644 --- a/api/media_transport_interface.cc +++ b/api/media_transport_interface.cc @@ -85,19 +85,6 @@ MediaTransportEncodedVideoFrame::MediaTransportEncodedVideoFrame( SendDataParams::SendDataParams() = default; -RTCError MediaTransportInterface::SendData( - int channel_id, - const SendDataParams& params, - const rtc::CopyOnWriteBuffer& buffer) { - RTC_NOTREACHED(); - return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); -} - -RTCError MediaTransportInterface::CloseChannel(int channel_id) { - RTC_NOTREACHED(); - return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); -} - RTCErrorOr> MediaTransportFactory::CreateMediaTransport( rtc::PacketTransportInternal* packet_transport, diff --git a/api/media_transport_interface.h b/api/media_transport_interface.h index e0e7453067..4eb55c4336 100644 --- a/api/media_transport_interface.h +++ b/api/media_transport_interface.h @@ -336,29 +336,25 @@ class MediaTransportInterface { // callback must be unregistered by setting it to nullptr. // A newly registered callback will be called with the current state. // Media transport does not invoke this callback concurrently. - // TODO(mellem): Make this pure virtual once all implementations support it. virtual void SetMediaTransportStateCallback( - MediaTransportStateCallback* callback) {} + MediaTransportStateCallback* callback) = 0; // Sends a data buffer to the remote endpoint using the given send parameters. // |buffer| may not be larger than 256 KiB. Returns an error if the send // fails. - // TODO(mellem): Make this pure virtual once all implementations support it. virtual RTCError SendData(int channel_id, const SendDataParams& params, - const rtc::CopyOnWriteBuffer& buffer); + const rtc::CopyOnWriteBuffer& buffer) = 0; // Closes |channel_id| gracefully. Returns an error if |channel_id| is not // open. Data sent after the closing procedure begins will not be // transmitted. The channel becomes closed after pending data is transmitted. - // TODO(mellem): Make this pure virtual once all implementations support it. - virtual RTCError CloseChannel(int channel_id); + virtual RTCError CloseChannel(int channel_id) = 0; // Sets a sink for data messages and channel state callbacks. Before media // transport is destroyed, the sink must be unregistered by setting it to // nullptr. - // TODO(mellem): Make this pure virtual once all implementations support it. - virtual void SetDataSink(DataChannelSink* sink) {} + virtual void SetDataSink(DataChannelSink* sink) = 0; // TODO(sukhanov): RtcEventLogs. }; diff --git a/api/test/fake_media_transport.h b/api/test/fake_media_transport.h index 5609126941..1ef7c1f3e4 100644 --- a/api/test/fake_media_transport.h +++ b/api/test/fake_media_transport.h @@ -57,6 +57,19 @@ class FakeMediaTransport : public MediaTransportInterface { void SetTargetTransferRateObserver( webrtc::TargetTransferRateObserver* observer) override {} + void SetMediaTransportStateCallback( + MediaTransportStateCallback* callback) override {} + + RTCError SendData(int channel_id, + const SendDataParams& params, + const rtc::CopyOnWriteBuffer& buffer) override { + return RTCError::OK(); + } + + RTCError CloseChannel(int channel_id) override { return RTCError::OK(); } + + void SetDataSink(DataChannelSink* sink) override {} + private: const MediaTransportSettings settings_; }; diff --git a/api/test/loopback_media_transport.h b/api/test/loopback_media_transport.h index 3195f979ba..9ce50a7c8c 100644 --- a/api/test/loopback_media_transport.h +++ b/api/test/loopback_media_transport.h @@ -64,6 +64,21 @@ class MediaTransportPair { void SetTargetTransferRateObserver( webrtc::TargetTransferRateObserver* observer) override {} + void SetMediaTransportStateCallback( + MediaTransportStateCallback* callback) override {} + + RTCError SendData(int channel_id, + const SendDataParams& params, + const rtc::CopyOnWriteBuffer& buffer) override { + return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); + } + + RTCError CloseChannel(int channel_id) override { + return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); + } + + void SetDataSink(DataChannelSink* sink) override {} + private: void OnData(uint64_t channel_id, MediaTransportEncodedAudioFrame frame) { if (sink_) {