Delete the default implementations of MediaTransportInterface methods.

This change deletes the default implementations of state and data
channel methods (SetMediaTransportStateCallback, SendData, CloseChannel,
and SetDataSink).  It adds stub implementations to LoopbackMediaTransport
and FakeMediaTransport.

Bug: webrtc:9719
Change-Id: I49b7780c055b552330546b460c2e79ce8df81833
Reviewed-on: https://webrtc-review.googlesource.com/c/108940
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25457}
This commit is contained in:
Bjorn Mellem
2018-10-31 15:25:32 -07:00
committed by Commit Bot
parent be142178aa
commit eb2c6415a9
4 changed files with 32 additions and 21 deletions

View File

@ -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<std::unique_ptr<MediaTransportInterface>>
MediaTransportFactory::CreateMediaTransport(
rtc::PacketTransportInternal* packet_transport,

View File

@ -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.
};

View File

@ -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_;
};

View File

@ -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_) {