blob: f46c8ec7f5134b44b78dd1e01d1d7910a92e5796 [file] [log] [blame]
Niels Möller3a742392018-10-08 11:13:58 +02001/*
2 * Copyright 2018 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11// This is EXPERIMENTAL interface for media transport.
12//
13// The goal is to refactor WebRTC code so that audio and video frames
14// are sent / received through the media transport interface. This will
15// enable different media transport implementations, including QUIC-based
16// media transport.
17
Yves Gerey988cc082018-10-23 12:03:01 +020018#include <cstdint>
19#include <utility>
20
Anton Sukhanov6b319e62019-05-17 14:48:23 -070021#include "api/datagram_transport_interface.h"
22#include "api/media_transport_interface.h"
23
Niels Möller3a742392018-10-08 11:13:58 +020024namespace webrtc {
25
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070026MediaTransportSettings::MediaTransportSettings() = default;
Piotr (Peter) Slatalaed7b8b12018-10-29 10:43:16 -070027MediaTransportSettings::MediaTransportSettings(const MediaTransportSettings&) =
28 default;
29MediaTransportSettings& MediaTransportSettings::operator=(
30 const MediaTransportSettings&) = default;
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070031MediaTransportSettings::~MediaTransportSettings() = default;
32
Piotr (Peter) Slatalae0c2e972018-10-08 09:43:21 -070033
Bjorn Mellem1f6aa9f2018-10-30 15:15:00 -070034SendDataParams::SendDataParams() = default;
Niels Möllere0446cb2018-11-30 09:35:52 +010035SendDataParams::SendDataParams(const SendDataParams&) = default;
Bjorn Mellem1f6aa9f2018-10-30 15:15:00 -070036
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070037RTCErrorOr<std::unique_ptr<MediaTransportInterface>>
38MediaTransportFactory::CreateMediaTransport(
39 rtc::PacketTransportInternal* packet_transport,
40 rtc::Thread* network_thread,
Piotr (Peter) Slatalaed7b8b12018-10-29 10:43:16 -070041 const MediaTransportSettings& settings) {
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070042 return std::unique_ptr<MediaTransportInterface>(nullptr);
43}
44
Piotr (Peter) Slatalad6f61dd2019-02-26 12:08:27 -080045RTCErrorOr<std::unique_ptr<MediaTransportInterface>>
46MediaTransportFactory::CreateMediaTransport(
47 rtc::Thread* network_thread,
48 const MediaTransportSettings& settings) {
49 return std::unique_ptr<MediaTransportInterface>(nullptr);
50}
51
Anton Sukhanov6b319e62019-05-17 14:48:23 -070052RTCErrorOr<std::unique_ptr<DatagramTransportInterface>>
53MediaTransportFactory::CreateDatagramTransport(
54 rtc::Thread* network_thread,
55 const MediaTransportSettings& settings) {
56 return std::unique_ptr<DatagramTransportInterface>(nullptr);
57}
58
Piotr (Peter) Slatalad6f61dd2019-02-26 12:08:27 -080059std::string MediaTransportFactory::GetTransportName() const {
60 return "";
61}
62
Piotr (Peter) Slatala309aafe2019-01-15 14:24:34 -080063MediaTransportInterface::MediaTransportInterface() = default;
64MediaTransportInterface::~MediaTransportInterface() = default;
65
Piotr (Peter) Slatalad6f61dd2019-02-26 12:08:27 -080066absl::optional<std::string>
67MediaTransportInterface::GetTransportParametersOffer() const {
68 return absl::nullopt;
69}
70
71void MediaTransportInterface::Connect(
72 rtc::PacketTransportInternal* packet_transport) {}
73
Niels Möller1c7f5f62018-12-10 11:06:02 +010074void MediaTransportInterface::SetKeyFrameRequestCallback(
75 MediaTransportKeyFrameRequestCallback* callback) {}
76
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080077absl::optional<TargetTransferRate>
78MediaTransportInterface::GetLatestTargetTransferRate() {
79 return absl::nullopt;
80}
81
Niels Möller30b182a2019-02-05 00:59:35 +010082void MediaTransportInterface::AddNetworkChangeCallback(
83 MediaTransportNetworkChangeCallback* callback) {}
84
85void MediaTransportInterface::RemoveNetworkChangeCallback(
86 MediaTransportNetworkChangeCallback* callback) {}
87
Piotr (Peter) Slatala309aafe2019-01-15 14:24:34 -080088void MediaTransportInterface::SetFirstAudioPacketReceivedObserver(
89 AudioPacketReceivedObserver* observer) {}
90
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080091void MediaTransportInterface::AddTargetTransferRateObserver(
Niels Möller46879152019-01-07 15:54:47 +010092 TargetTransferRateObserver* observer) {}
93void MediaTransportInterface::RemoveTargetTransferRateObserver(
94 TargetTransferRateObserver* observer) {}
95
96void MediaTransportInterface::AddRttObserver(
97 MediaTransportRttObserver* observer) {}
98void MediaTransportInterface::RemoveRttObserver(
99 MediaTransportRttObserver* observer) {}
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -0800100
101size_t MediaTransportInterface::GetAudioPacketOverhead() const {
102 return 0;
103}
104
Piotr (Peter) Slatala48c54932019-01-28 06:50:38 -0800105void MediaTransportInterface::SetAllocatedBitrateLimits(
106 const MediaTransportAllocatedBitrateLimits& limits) {}
107
Niels Möller3a742392018-10-08 11:13:58 +0200108} // namespace webrtc