blob: c3f3d19063db40db7ec40b00a173cbbf8b08bb86 [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
18#include "api/media_transport_interface.h"
19
Yves Gerey988cc082018-10-23 12:03:01 +020020#include <cstdint>
21#include <utility>
22
Niels Möller3a742392018-10-08 11:13:58 +020023namespace webrtc {
24
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070025MediaTransportSettings::MediaTransportSettings() = default;
Piotr (Peter) Slatalaed7b8b12018-10-29 10:43:16 -070026MediaTransportSettings::MediaTransportSettings(const MediaTransportSettings&) =
27 default;
28MediaTransportSettings& MediaTransportSettings::operator=(
29 const MediaTransportSettings&) = default;
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070030MediaTransportSettings::~MediaTransportSettings() = default;
31
Piotr (Peter) Slatalae0c2e972018-10-08 09:43:21 -070032
Bjorn Mellem1f6aa9f2018-10-30 15:15:00 -070033SendDataParams::SendDataParams() = default;
Niels Möllere0446cb2018-11-30 09:35:52 +010034SendDataParams::SendDataParams(const SendDataParams&) = default;
Bjorn Mellem1f6aa9f2018-10-30 15:15:00 -070035
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070036RTCErrorOr<std::unique_ptr<MediaTransportInterface>>
37MediaTransportFactory::CreateMediaTransport(
38 rtc::PacketTransportInternal* packet_transport,
39 rtc::Thread* network_thread,
Piotr (Peter) Slatalaed7b8b12018-10-29 10:43:16 -070040 const MediaTransportSettings& settings) {
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070041 return std::unique_ptr<MediaTransportInterface>(nullptr);
42}
43
Piotr (Peter) Slatala309aafe2019-01-15 14:24:34 -080044MediaTransportInterface::MediaTransportInterface() = default;
45MediaTransportInterface::~MediaTransportInterface() = default;
46
Niels Möller1c7f5f62018-12-10 11:06:02 +010047void MediaTransportInterface::SetKeyFrameRequestCallback(
48 MediaTransportKeyFrameRequestCallback* callback) {}
49
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080050absl::optional<TargetTransferRate>
51MediaTransportInterface::GetLatestTargetTransferRate() {
52 return absl::nullopt;
53}
54
Niels Möller30b182a2019-02-05 00:59:35 +010055void MediaTransportInterface::AddNetworkChangeCallback(
56 MediaTransportNetworkChangeCallback* callback) {}
57
58void MediaTransportInterface::RemoveNetworkChangeCallback(
59 MediaTransportNetworkChangeCallback* callback) {}
60
Piotr (Peter) Slatala309aafe2019-01-15 14:24:34 -080061void MediaTransportInterface::SetFirstAudioPacketReceivedObserver(
62 AudioPacketReceivedObserver* observer) {}
63
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080064void MediaTransportInterface::AddTargetTransferRateObserver(
Niels Möller46879152019-01-07 15:54:47 +010065 TargetTransferRateObserver* observer) {}
66void MediaTransportInterface::RemoveTargetTransferRateObserver(
67 TargetTransferRateObserver* observer) {}
68
69void MediaTransportInterface::AddRttObserver(
70 MediaTransportRttObserver* observer) {}
71void MediaTransportInterface::RemoveRttObserver(
72 MediaTransportRttObserver* observer) {}
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080073
74size_t MediaTransportInterface::GetAudioPacketOverhead() const {
75 return 0;
76}
77
Piotr (Peter) Slatala48c54932019-01-28 06:50:38 -080078void MediaTransportInterface::SetAllocatedBitrateLimits(
79 const MediaTransportAllocatedBitrateLimits& limits) {}
80
Bjorn Mellemf58e43e2019-02-22 10:31:48 -080081// TODO(mellem): Delete when all implementations support it.
82RTCError MediaTransportInterface::OpenChannel(int channel_id) {
83 // NB: This must return OK to avoid breaking existing implementations, which
84 // do not require calling OpenChannel.
85 return RTCError::OK();
86}
87
Niels Möller3a742392018-10-08 11:13:58 +020088} // namespace webrtc