blob: de04e197fa8c97ea06df6bd1bba253983b3fb6f7 [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,
40 bool is_caller) {
Piotr (Peter) Slatalaed7b8b12018-10-29 10:43:16 -070041 MediaTransportSettings settings;
42 settings.is_caller = is_caller;
43 return CreateMediaTransport(packet_transport, network_thread, settings);
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070044}
45
46RTCErrorOr<std::unique_ptr<MediaTransportInterface>>
47MediaTransportFactory::CreateMediaTransport(
48 rtc::PacketTransportInternal* packet_transport,
49 rtc::Thread* network_thread,
Piotr (Peter) Slatalaed7b8b12018-10-29 10:43:16 -070050 const MediaTransportSettings& settings) {
Piotr (Peter) Slatalaa0677d12018-10-29 07:31:42 -070051 return std::unique_ptr<MediaTransportInterface>(nullptr);
52}
53
Piotr (Peter) Slatala309aafe2019-01-15 14:24:34 -080054MediaTransportInterface::MediaTransportInterface() = default;
55MediaTransportInterface::~MediaTransportInterface() = default;
56
Niels Möller1c7f5f62018-12-10 11:06:02 +010057void MediaTransportInterface::SetKeyFrameRequestCallback(
58 MediaTransportKeyFrameRequestCallback* callback) {}
59
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080060absl::optional<TargetTransferRate>
61MediaTransportInterface::GetLatestTargetTransferRate() {
62 return absl::nullopt;
63}
64
Niels Möller30b182a2019-02-05 00:59:35 +010065void MediaTransportInterface::AddNetworkChangeCallback(
66 MediaTransportNetworkChangeCallback* callback) {}
67
68void MediaTransportInterface::RemoveNetworkChangeCallback(
69 MediaTransportNetworkChangeCallback* callback) {}
70
Piotr (Peter) Slatala309aafe2019-01-15 14:24:34 -080071void MediaTransportInterface::SetFirstAudioPacketReceivedObserver(
72 AudioPacketReceivedObserver* observer) {}
73
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080074void MediaTransportInterface::AddTargetTransferRateObserver(
Niels Möller46879152019-01-07 15:54:47 +010075 TargetTransferRateObserver* observer) {}
76void MediaTransportInterface::RemoveTargetTransferRateObserver(
77 TargetTransferRateObserver* observer) {}
78
79void MediaTransportInterface::AddRttObserver(
80 MediaTransportRttObserver* observer) {}
81void MediaTransportInterface::RemoveRttObserver(
82 MediaTransportRttObserver* observer) {}
Piotr (Peter) Slatalaada077f2018-11-08 07:43:31 -080083
84size_t MediaTransportInterface::GetAudioPacketOverhead() const {
85 return 0;
86}
87
Piotr (Peter) Slatala48c54932019-01-28 06:50:38 -080088void MediaTransportInterface::SetAllocatedBitrateLimits(
89 const MediaTransportAllocatedBitrateLimits& limits) {}
90
Niels Möller3a742392018-10-08 11:13:58 +020091} // namespace webrtc