1 /*
2 * Copyright (c) 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 #include "media/base/media_channel.h"
12
13 namespace cricket {
14
VideoOptions()15 VideoOptions::VideoOptions()
16 : content_hint(webrtc::VideoTrackInterface::ContentHint::kNone) {}
17 VideoOptions::~VideoOptions() = default;
18
MediaChannel(const MediaConfig & config)19 MediaChannel::MediaChannel(const MediaConfig& config)
20 : enable_dscp_(config.enable_dscp) {}
21
MediaChannel()22 MediaChannel::MediaChannel() : enable_dscp_(false) {}
23
~MediaChannel()24 MediaChannel::~MediaChannel() {}
25
SetInterface(NetworkInterface * iface,const webrtc::MediaTransportConfig & media_transport_config)26 void MediaChannel::SetInterface(
27 NetworkInterface* iface,
28 const webrtc::MediaTransportConfig& media_transport_config) {
29 rtc::CritScope cs(&network_interface_crit_);
30 network_interface_ = iface;
31 media_transport_config_ = media_transport_config;
32 UpdateDscp();
33 }
34
GetRtpSendTimeExtnId() const35 int MediaChannel::GetRtpSendTimeExtnId() const {
36 return -1;
37 }
38
SetFrameEncryptor(uint32_t ssrc,rtc::scoped_refptr<webrtc::FrameEncryptorInterface> frame_encryptor)39 void MediaChannel::SetFrameEncryptor(
40 uint32_t ssrc,
41 rtc::scoped_refptr<webrtc::FrameEncryptorInterface> frame_encryptor) {
42 // Placeholder should be pure virtual once internal supports it.
43 }
44
SetFrameDecryptor(uint32_t ssrc,rtc::scoped_refptr<webrtc::FrameDecryptorInterface> frame_decryptor)45 void MediaChannel::SetFrameDecryptor(
46 uint32_t ssrc,
47 rtc::scoped_refptr<webrtc::FrameDecryptorInterface> frame_decryptor) {
48 // Placeholder should be pure virtual once internal supports it.
49 }
50
SetVideoCodecSwitchingEnabled(bool enabled)51 void MediaChannel::SetVideoCodecSwitchingEnabled(bool enabled) {}
52
SetEncoderToPacketizerFrameTransformer(uint32_t ssrc,rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer)53 void MediaChannel::SetEncoderToPacketizerFrameTransformer(
54 uint32_t ssrc,
55 rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer) {}
SetDepacketizerToDecoderFrameTransformer(uint32_t ssrc,rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer)56 void MediaChannel::SetDepacketizerToDecoderFrameTransformer(
57 uint32_t ssrc,
58 rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer) {}
59
60 MediaSenderInfo::MediaSenderInfo() = default;
61 MediaSenderInfo::~MediaSenderInfo() = default;
62
63 MediaReceiverInfo::MediaReceiverInfo() = default;
64 MediaReceiverInfo::~MediaReceiverInfo() = default;
65
66 VoiceSenderInfo::VoiceSenderInfo() = default;
67 VoiceSenderInfo::~VoiceSenderInfo() = default;
68
69 VoiceReceiverInfo::VoiceReceiverInfo() = default;
70 VoiceReceiverInfo::~VoiceReceiverInfo() = default;
71
72 VideoSenderInfo::VideoSenderInfo() = default;
73 VideoSenderInfo::~VideoSenderInfo() = default;
74
75 VideoReceiverInfo::VideoReceiverInfo() = default;
76 VideoReceiverInfo::~VideoReceiverInfo() = default;
77
78 VoiceMediaInfo::VoiceMediaInfo() = default;
79 VoiceMediaInfo::~VoiceMediaInfo() = default;
80
81 VideoMediaInfo::VideoMediaInfo() = default;
82 VideoMediaInfo::~VideoMediaInfo() = default;
83
84 DataMediaInfo::DataMediaInfo() = default;
85 DataMediaInfo::~DataMediaInfo() = default;
86
87 AudioSendParameters::AudioSendParameters() = default;
88 AudioSendParameters::~AudioSendParameters() = default;
89
ToStringMap() const90 std::map<std::string, std::string> AudioSendParameters::ToStringMap() const {
91 auto params = RtpSendParameters<AudioCodec>::ToStringMap();
92 params["options"] = options.ToString();
93 return params;
94 }
95
media_type() const96 cricket::MediaType VoiceMediaChannel::media_type() const {
97 return cricket::MediaType::MEDIA_TYPE_AUDIO;
98 }
99
100 VideoSendParameters::VideoSendParameters() = default;
101 VideoSendParameters::~VideoSendParameters() = default;
102
ToStringMap() const103 std::map<std::string, std::string> VideoSendParameters::ToStringMap() const {
104 auto params = RtpSendParameters<VideoCodec>::ToStringMap();
105 params["conference_mode"] = (conference_mode ? "yes" : "no");
106 return params;
107 }
108
media_type() const109 cricket::MediaType VideoMediaChannel::media_type() const {
110 return cricket::MediaType::MEDIA_TYPE_VIDEO;
111 }
112
113 DataMediaChannel::DataMediaChannel() = default;
DataMediaChannel(const MediaConfig & config)114 DataMediaChannel::DataMediaChannel(const MediaConfig& config)
115 : MediaChannel(config) {}
116 DataMediaChannel::~DataMediaChannel() = default;
117
GetRtpSendParameters(uint32_t ssrc) const118 webrtc::RtpParameters DataMediaChannel::GetRtpSendParameters(
119 uint32_t ssrc) const {
120 // GetRtpSendParameters is not supported for DataMediaChannel.
121 RTC_NOTREACHED();
122 return webrtc::RtpParameters();
123 }
SetRtpSendParameters(uint32_t ssrc,const webrtc::RtpParameters & parameters)124 webrtc::RTCError DataMediaChannel::SetRtpSendParameters(
125 uint32_t ssrc,
126 const webrtc::RtpParameters& parameters) {
127 // SetRtpSendParameters is not supported for DataMediaChannel.
128 RTC_NOTREACHED();
129 return webrtc::RTCError(webrtc::RTCErrorType::UNSUPPORTED_OPERATION);
130 }
131
media_type() const132 cricket::MediaType DataMediaChannel::media_type() const {
133 return cricket::MediaType::MEDIA_TYPE_DATA;
134 }
135
GetStats(DataMediaInfo * info)136 bool DataMediaChannel::GetStats(DataMediaInfo* info) {
137 return true;
138 }
139
140 } // namespace cricket
141