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