In order to enable ::Connect method, we also need to split the factory and create a method that creates media transport, but doesn't connect it. So far media transport was connecting right away after creation. We would however want to expose some of the settings in SDP. SDP is created before connection is connected (and before ICE transport is created), and so we would like to be able to get the settings from the caller to the callee. Bug: webrtc:9719 Change-Id: I1dc2f30c9a2dae8b3db04f14c8b334cd1b3ab5ab Reviewed-on: https://webrtc-review.googlesource.com/c/124517 Reviewed-by: Bjorn Mellem <mellem@webrtc.org> Commit-Queue: Peter Slatala <psla@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26863}
108 lines
3.6 KiB
C++
108 lines
3.6 KiB
C++
/*
|
|
* Copyright 2018 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
// This is EXPERIMENTAL interface for media transport.
|
|
//
|
|
// The goal is to refactor WebRTC code so that audio and video frames
|
|
// are sent / received through the media transport interface. This will
|
|
// enable different media transport implementations, including QUIC-based
|
|
// media transport.
|
|
|
|
#include "api/media_transport_interface.h"
|
|
|
|
#include <cstdint>
|
|
#include <utility>
|
|
|
|
namespace webrtc {
|
|
|
|
MediaTransportSettings::MediaTransportSettings() = default;
|
|
MediaTransportSettings::MediaTransportSettings(const MediaTransportSettings&) =
|
|
default;
|
|
MediaTransportSettings& MediaTransportSettings::operator=(
|
|
const MediaTransportSettings&) = default;
|
|
MediaTransportSettings::~MediaTransportSettings() = default;
|
|
|
|
|
|
SendDataParams::SendDataParams() = default;
|
|
SendDataParams::SendDataParams(const SendDataParams&) = default;
|
|
|
|
RTCErrorOr<std::unique_ptr<MediaTransportInterface>>
|
|
MediaTransportFactory::CreateMediaTransport(
|
|
rtc::PacketTransportInternal* packet_transport,
|
|
rtc::Thread* network_thread,
|
|
const MediaTransportSettings& settings) {
|
|
return std::unique_ptr<MediaTransportInterface>(nullptr);
|
|
}
|
|
|
|
RTCErrorOr<std::unique_ptr<MediaTransportInterface>>
|
|
MediaTransportFactory::CreateMediaTransport(
|
|
rtc::Thread* network_thread,
|
|
const MediaTransportSettings& settings) {
|
|
return std::unique_ptr<MediaTransportInterface>(nullptr);
|
|
}
|
|
|
|
std::string MediaTransportFactory::GetTransportName() const {
|
|
return "";
|
|
}
|
|
|
|
MediaTransportInterface::MediaTransportInterface() = default;
|
|
MediaTransportInterface::~MediaTransportInterface() = default;
|
|
|
|
absl::optional<std::string>
|
|
MediaTransportInterface::GetTransportParametersOffer() const {
|
|
return absl::nullopt;
|
|
}
|
|
|
|
void MediaTransportInterface::Connect(
|
|
rtc::PacketTransportInternal* packet_transport) {}
|
|
|
|
void MediaTransportInterface::SetKeyFrameRequestCallback(
|
|
MediaTransportKeyFrameRequestCallback* callback) {}
|
|
|
|
absl::optional<TargetTransferRate>
|
|
MediaTransportInterface::GetLatestTargetTransferRate() {
|
|
return absl::nullopt;
|
|
}
|
|
|
|
void MediaTransportInterface::AddNetworkChangeCallback(
|
|
MediaTransportNetworkChangeCallback* callback) {}
|
|
|
|
void MediaTransportInterface::RemoveNetworkChangeCallback(
|
|
MediaTransportNetworkChangeCallback* callback) {}
|
|
|
|
void MediaTransportInterface::SetFirstAudioPacketReceivedObserver(
|
|
AudioPacketReceivedObserver* observer) {}
|
|
|
|
void MediaTransportInterface::AddTargetTransferRateObserver(
|
|
TargetTransferRateObserver* observer) {}
|
|
void MediaTransportInterface::RemoveTargetTransferRateObserver(
|
|
TargetTransferRateObserver* observer) {}
|
|
|
|
void MediaTransportInterface::AddRttObserver(
|
|
MediaTransportRttObserver* observer) {}
|
|
void MediaTransportInterface::RemoveRttObserver(
|
|
MediaTransportRttObserver* observer) {}
|
|
|
|
size_t MediaTransportInterface::GetAudioPacketOverhead() const {
|
|
return 0;
|
|
}
|
|
|
|
void MediaTransportInterface::SetAllocatedBitrateLimits(
|
|
const MediaTransportAllocatedBitrateLimits& limits) {}
|
|
|
|
// TODO(mellem): Delete when all implementations support it.
|
|
RTCError MediaTransportInterface::OpenChannel(int channel_id) {
|
|
// NB: This must return OK to avoid breaking existing implementations, which
|
|
// do not require calling OpenChannel.
|
|
return RTCError::OK();
|
|
}
|
|
|
|
} // namespace webrtc
|