OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 bool CheckNoRtp() { return rtp_packets_.empty(); } | 90 bool CheckNoRtp() { return rtp_packets_.empty(); } |
91 bool CheckNoRtcp() { return rtcp_packets_.empty(); } | 91 bool CheckNoRtcp() { return rtcp_packets_.empty(); } |
92 void set_fail_set_send_codecs(bool fail) { fail_set_send_codecs_ = fail; } | 92 void set_fail_set_send_codecs(bool fail) { fail_set_send_codecs_ = fail; } |
93 void set_fail_set_recv_codecs(bool fail) { fail_set_recv_codecs_ = fail; } | 93 void set_fail_set_recv_codecs(bool fail) { fail_set_recv_codecs_ = fail; } |
94 virtual bool AddSendStream(const StreamParams& sp) { | 94 virtual bool AddSendStream(const StreamParams& sp) { |
95 if (std::find(send_streams_.begin(), send_streams_.end(), sp) != | 95 if (std::find(send_streams_.begin(), send_streams_.end(), sp) != |
96 send_streams_.end()) { | 96 send_streams_.end()) { |
97 return false; | 97 return false; |
98 } | 98 } |
99 send_streams_.push_back(sp); | 99 send_streams_.push_back(sp); |
100 rtp_parameters_[sp.first_ssrc()] = CreateRtpParametersWithOneEncoding(); | 100 rtp_send_parameters_[sp.first_ssrc()] = |
| 101 CreateRtpParametersWithOneEncoding(); |
101 return true; | 102 return true; |
102 } | 103 } |
103 virtual bool RemoveSendStream(uint32_t ssrc) { | 104 virtual bool RemoveSendStream(uint32_t ssrc) { |
104 auto parameters_iterator = rtp_parameters_.find(ssrc); | 105 auto parameters_iterator = rtp_send_parameters_.find(ssrc); |
105 if (parameters_iterator != rtp_parameters_.end()) { | 106 if (parameters_iterator != rtp_send_parameters_.end()) { |
106 rtp_parameters_.erase(parameters_iterator); | 107 rtp_send_parameters_.erase(parameters_iterator); |
107 } | 108 } |
108 return RemoveStreamBySsrc(&send_streams_, ssrc); | 109 return RemoveStreamBySsrc(&send_streams_, ssrc); |
109 } | 110 } |
110 virtual bool AddRecvStream(const StreamParams& sp) { | 111 virtual bool AddRecvStream(const StreamParams& sp) { |
111 if (std::find(receive_streams_.begin(), receive_streams_.end(), sp) != | 112 if (std::find(receive_streams_.begin(), receive_streams_.end(), sp) != |
112 receive_streams_.end()) { | 113 receive_streams_.end()) { |
113 return false; | 114 return false; |
114 } | 115 } |
115 receive_streams_.push_back(sp); | 116 receive_streams_.push_back(sp); |
| 117 rtp_receive_parameters_[sp.first_ssrc()] = |
| 118 CreateRtpParametersWithOneEncoding(); |
116 return true; | 119 return true; |
117 } | 120 } |
118 virtual bool RemoveRecvStream(uint32_t ssrc) { | 121 virtual bool RemoveRecvStream(uint32_t ssrc) { |
| 122 auto parameters_iterator = rtp_receive_parameters_.find(ssrc); |
| 123 if (parameters_iterator != rtp_receive_parameters_.end()) { |
| 124 rtp_receive_parameters_.erase(parameters_iterator); |
| 125 } |
119 return RemoveStreamBySsrc(&receive_streams_, ssrc); | 126 return RemoveStreamBySsrc(&receive_streams_, ssrc); |
120 } | 127 } |
121 | 128 |
122 virtual webrtc::RtpParameters GetRtpParameters(uint32_t ssrc) const { | 129 virtual webrtc::RtpParameters GetRtpSendParameters(uint32_t ssrc) const { |
123 auto parameters_iterator = rtp_parameters_.find(ssrc); | 130 auto parameters_iterator = rtp_send_parameters_.find(ssrc); |
124 if (parameters_iterator != rtp_parameters_.end()) { | 131 if (parameters_iterator != rtp_send_parameters_.end()) { |
125 return parameters_iterator->second; | 132 return parameters_iterator->second; |
126 } | 133 } |
127 return webrtc::RtpParameters(); | 134 return webrtc::RtpParameters(); |
128 } | 135 } |
129 virtual bool SetRtpParameters(uint32_t ssrc, | 136 virtual bool SetRtpSendParameters(uint32_t ssrc, |
130 const webrtc::RtpParameters& parameters) { | 137 const webrtc::RtpParameters& parameters) { |
131 auto parameters_iterator = rtp_parameters_.find(ssrc); | 138 auto parameters_iterator = rtp_send_parameters_.find(ssrc); |
132 if (parameters_iterator != rtp_parameters_.end()) { | 139 if (parameters_iterator != rtp_send_parameters_.end()) { |
133 parameters_iterator->second = parameters; | 140 parameters_iterator->second = parameters; |
134 return true; | 141 return true; |
135 } | 142 } |
| 143 // Replicate the behavior of the real media channel: return false |
| 144 // when setting parameters for unknown SSRCs. |
| 145 return false; |
| 146 } |
| 147 |
| 148 virtual webrtc::RtpParameters GetRtpReceiveParameters(uint32_t ssrc) const { |
| 149 auto parameters_iterator = rtp_receive_parameters_.find(ssrc); |
| 150 if (parameters_iterator != rtp_receive_parameters_.end()) { |
| 151 return parameters_iterator->second; |
| 152 } |
| 153 return webrtc::RtpParameters(); |
| 154 } |
| 155 virtual bool SetRtpReceiveParameters( |
| 156 uint32_t ssrc, |
| 157 const webrtc::RtpParameters& parameters) { |
| 158 auto parameters_iterator = rtp_receive_parameters_.find(ssrc); |
| 159 if (parameters_iterator != rtp_receive_parameters_.end()) { |
| 160 parameters_iterator->second = parameters; |
| 161 return true; |
| 162 } |
136 // Replicate the behavior of the real media channel: return false | 163 // Replicate the behavior of the real media channel: return false |
137 // when setting parameters for unknown SSRCs. | 164 // when setting parameters for unknown SSRCs. |
138 return false; | 165 return false; |
139 } | 166 } |
140 | 167 |
141 bool IsStreamMuted(uint32_t ssrc) const { | 168 bool IsStreamMuted(uint32_t ssrc) const { |
142 bool ret = muted_streams_.find(ssrc) != muted_streams_.end(); | 169 bool ret = muted_streams_.find(ssrc) != muted_streams_.end(); |
143 // If |ssrc = 0| check if the first send stream is muted. | 170 // If |ssrc = 0| check if the first send stream is muted. |
144 if (!ret && ssrc == 0 && !send_streams_.empty()) { | 171 if (!ret && ssrc == 0 && !send_streams_.empty()) { |
145 return muted_streams_.find(send_streams_[0].first_ssrc()) != | 172 return muted_streams_.find(send_streams_[0].first_ssrc()) != |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 private: | 261 private: |
235 bool sending_; | 262 bool sending_; |
236 bool playout_; | 263 bool playout_; |
237 std::vector<RtpHeaderExtension> recv_extensions_; | 264 std::vector<RtpHeaderExtension> recv_extensions_; |
238 std::vector<RtpHeaderExtension> send_extensions_; | 265 std::vector<RtpHeaderExtension> send_extensions_; |
239 std::list<std::string> rtp_packets_; | 266 std::list<std::string> rtp_packets_; |
240 std::list<std::string> rtcp_packets_; | 267 std::list<std::string> rtcp_packets_; |
241 std::vector<StreamParams> send_streams_; | 268 std::vector<StreamParams> send_streams_; |
242 std::vector<StreamParams> receive_streams_; | 269 std::vector<StreamParams> receive_streams_; |
243 std::set<uint32_t> muted_streams_; | 270 std::set<uint32_t> muted_streams_; |
244 std::map<uint32_t, webrtc::RtpParameters> rtp_parameters_; | 271 std::map<uint32_t, webrtc::RtpParameters> rtp_send_parameters_; |
| 272 std::map<uint32_t, webrtc::RtpParameters> rtp_receive_parameters_; |
245 bool fail_set_send_codecs_; | 273 bool fail_set_send_codecs_; |
246 bool fail_set_recv_codecs_; | 274 bool fail_set_recv_codecs_; |
247 uint32_t send_ssrc_; | 275 uint32_t send_ssrc_; |
248 std::string rtcp_cname_; | 276 std::string rtcp_cname_; |
249 bool ready_to_send_; | 277 bool ready_to_send_; |
250 rtc::NetworkRoute last_network_route_; | 278 rtc::NetworkRoute last_network_route_; |
251 int num_network_route_changes_ = 0; | 279 int num_network_route_changes_ = 0; |
252 }; | 280 }; |
253 | 281 |
254 class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> { | 282 class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> { |
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
907 | 935 |
908 private: | 936 private: |
909 std::vector<FakeDataMediaChannel*> channels_; | 937 std::vector<FakeDataMediaChannel*> channels_; |
910 std::vector<DataCodec> data_codecs_; | 938 std::vector<DataCodec> data_codecs_; |
911 DataChannelType last_channel_type_; | 939 DataChannelType last_channel_type_; |
912 }; | 940 }; |
913 | 941 |
914 } // namespace cricket | 942 } // namespace cricket |
915 | 943 |
916 #endif // WEBRTC_MEDIA_BASE_FAKEMEDIAENGINE_H_ | 944 #endif // WEBRTC_MEDIA_BASE_FAKEMEDIAENGINE_H_ |
OLD | NEW |