OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
184 private: | 184 private: |
185 PacketReceiver* packet_receiver_; | 185 PacketReceiver* packet_receiver_; |
186 const MediaType media_type_; | 186 const MediaType media_type_; |
187 | 187 |
188 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(MediaTypePacketReceiver); | 188 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(MediaTypePacketReceiver); |
189 }; | 189 }; |
190 | 190 |
191 FakeNetworkPipe::Config audio_net_config; | 191 FakeNetworkPipe::Config audio_net_config; |
192 audio_net_config.queue_delay_ms = 500; | 192 audio_net_config.queue_delay_ms = 500; |
193 audio_net_config.loss_percent = 5; | 193 audio_net_config.loss_percent = 5; |
194 | |
195 std::map<uint8_t, MediaType> audio_pt_map; | |
196 std::map<uint8_t, MediaType> video_pt_map; | |
197 std::copy_if(std::begin(payload_type_map_), std::end(payload_type_map_), | |
198 std::inserter(audio_pt_map, audio_pt_map.end()), | |
199 [](const std::pair<const uint8_t, MediaType>& pair) { | |
200 return pair.second == MediaType::AUDIO; | |
201 }); | |
202 std::copy_if(std::begin(payload_type_map_), std::end(payload_type_map_), | |
203 std::inserter(video_pt_map, video_pt_map.end()), | |
204 [](const std::pair<const uint8_t, MediaType>& pair) { | |
205 return pair.second == MediaType::VIDEO; | |
206 }); | |
nisse-webrtc
2017/04/06 12:23:56
Why do you need to split payload_type_map into aud
minyue-webrtc
2017/04/06 18:45:10
Actually, it is always safe to use the superset. B
| |
207 | |
194 test::PacketTransport audio_send_transport(sender_call_.get(), &observer, | 208 test::PacketTransport audio_send_transport(sender_call_.get(), &observer, |
195 test::PacketTransport::kSender, | 209 test::PacketTransport::kSender, |
196 MediaType::AUDIO, | 210 audio_pt_map, audio_net_config); |
197 audio_net_config); | |
198 MediaTypePacketReceiver audio_receiver(receiver_call_->Receiver(), | 211 MediaTypePacketReceiver audio_receiver(receiver_call_->Receiver(), |
199 MediaType::AUDIO); | 212 MediaType::AUDIO); |
200 audio_send_transport.SetReceiver(&audio_receiver); | 213 audio_send_transport.SetReceiver(&audio_receiver); |
201 | 214 |
202 test::PacketTransport video_send_transport(sender_call_.get(), &observer, | 215 test::PacketTransport video_send_transport( |
203 test::PacketTransport::kSender, | 216 sender_call_.get(), &observer, test::PacketTransport::kSender, |
204 MediaType::VIDEO, | 217 video_pt_map, FakeNetworkPipe::Config()); |
205 FakeNetworkPipe::Config()); | |
206 MediaTypePacketReceiver video_receiver(receiver_call_->Receiver(), | 218 MediaTypePacketReceiver video_receiver(receiver_call_->Receiver(), |
207 MediaType::VIDEO); | 219 MediaType::VIDEO); |
208 video_send_transport.SetReceiver(&video_receiver); | 220 video_send_transport.SetReceiver(&video_receiver); |
209 | 221 |
210 test::PacketTransport receive_transport( | 222 test::PacketTransport receive_transport( |
211 receiver_call_.get(), &observer, test::PacketTransport::kReceiver, | 223 receiver_call_.get(), &observer, test::PacketTransport::kReceiver, |
212 MediaType::VIDEO, | 224 payload_type_map_, FakeNetworkPipe::Config()); |
213 FakeNetworkPipe::Config()); | |
214 receive_transport.SetReceiver(sender_call_->Receiver()); | 225 receive_transport.SetReceiver(sender_call_->Receiver()); |
215 | 226 |
216 test::FakeDecoder fake_decoder; | 227 test::FakeDecoder fake_decoder; |
217 | 228 |
218 CreateSendConfig(1, 0, 0, &video_send_transport); | 229 CreateSendConfig(1, 0, 0, &video_send_transport); |
219 CreateMatchingReceiveConfigs(&receive_transport); | 230 CreateMatchingReceiveConfigs(&receive_transport); |
220 | 231 |
221 AudioSendStream::Config audio_send_config(&audio_send_transport); | 232 AudioSendStream::Config audio_send_config(&audio_send_transport); |
222 audio_send_config.voe_channel_id = send_channel_id; | 233 audio_send_config.voe_channel_id = send_channel_id; |
223 audio_send_config.rtp.ssrc = kAudioSendSsrc; | 234 audio_send_config.rtp.ssrc = kAudioSendSsrc; |
224 audio_send_config.send_codec_spec.codec_inst = | 235 audio_send_config.send_codec_spec.codec_inst = |
225 CodecInst{103, "ISAC", 16000, 480, 1, 32000}; | 236 CodecInst{kAudioSendPayloadType, "ISAC", 16000, 480, 1, 32000}; |
226 AudioSendStream* audio_send_stream = | 237 AudioSendStream* audio_send_stream = |
227 sender_call_->CreateAudioSendStream(audio_send_config); | 238 sender_call_->CreateAudioSendStream(audio_send_config); |
228 | 239 |
229 video_send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs; | 240 video_send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs; |
230 if (fec == FecMode::kOn) { | 241 if (fec == FecMode::kOn) { |
231 video_send_config_.rtp.ulpfec.red_payload_type = kRedPayloadType; | 242 video_send_config_.rtp.ulpfec.red_payload_type = kRedPayloadType; |
232 video_send_config_.rtp.ulpfec.ulpfec_payload_type = kUlpfecPayloadType; | 243 video_send_config_.rtp.ulpfec.ulpfec_payload_type = kUlpfecPayloadType; |
233 video_receive_configs_[0].rtp.ulpfec.red_payload_type = kRedPayloadType; | 244 video_receive_configs_[0].rtp.ulpfec.red_payload_type = kRedPayloadType; |
234 video_receive_configs_[0].rtp.ulpfec.ulpfec_payload_type = | 245 video_receive_configs_[0].rtp.ulpfec.ulpfec_payload_type = |
235 kUlpfecPayloadType; | 246 kUlpfecPayloadType; |
236 } | 247 } |
237 video_receive_configs_[0].rtp.nack.rtp_history_ms = 1000; | 248 video_receive_configs_[0].rtp.nack.rtp_history_ms = 1000; |
238 video_receive_configs_[0].renderer = &observer; | 249 video_receive_configs_[0].renderer = &observer; |
239 video_receive_configs_[0].sync_group = kSyncGroup; | 250 video_receive_configs_[0].sync_group = kSyncGroup; |
240 | 251 |
241 AudioReceiveStream::Config audio_recv_config; | 252 AudioReceiveStream::Config audio_recv_config; |
242 audio_recv_config.rtp.remote_ssrc = kAudioSendSsrc; | 253 audio_recv_config.rtp.remote_ssrc = kAudioSendSsrc; |
243 audio_recv_config.rtp.local_ssrc = kAudioRecvSsrc; | 254 audio_recv_config.rtp.local_ssrc = kAudioRecvSsrc; |
244 audio_recv_config.voe_channel_id = recv_channel_id; | 255 audio_recv_config.voe_channel_id = recv_channel_id; |
245 audio_recv_config.sync_group = kSyncGroup; | 256 audio_recv_config.sync_group = kSyncGroup; |
246 audio_recv_config.decoder_factory = decoder_factory_; | 257 audio_recv_config.decoder_factory = decoder_factory_; |
247 audio_recv_config.decoder_map = {{103, {"ISAC", 16000, 1}}}; | 258 audio_recv_config.decoder_map = {{kAudioSendPayloadType, {"ISAC", 16000, 1}}}; |
248 | 259 |
249 AudioReceiveStream* audio_receive_stream; | 260 AudioReceiveStream* audio_receive_stream; |
250 | 261 |
251 if (create_first == CreateOrder::kAudioFirst) { | 262 if (create_first == CreateOrder::kAudioFirst) { |
252 audio_receive_stream = | 263 audio_receive_stream = |
253 receiver_call_->CreateAudioReceiveStream(audio_recv_config); | 264 receiver_call_->CreateAudioReceiveStream(audio_recv_config); |
254 CreateVideoStreams(); | 265 CreateVideoStreams(); |
255 } else { | 266 } else { |
256 CreateVideoStreams(); | 267 CreateVideoStreams(); |
257 audio_receive_stream = | 268 audio_receive_stream = |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
338 threshold_ms_(threshold_ms), | 349 threshold_ms_(threshold_ms), |
339 start_time_ms_(start_time_ms), | 350 start_time_ms_(start_time_ms), |
340 run_time_ms_(run_time_ms), | 351 run_time_ms_(run_time_ms), |
341 creation_time_ms_(clock_->TimeInMilliseconds()), | 352 creation_time_ms_(clock_->TimeInMilliseconds()), |
342 capturer_(nullptr), | 353 capturer_(nullptr), |
343 rtp_start_timestamp_set_(false), | 354 rtp_start_timestamp_set_(false), |
344 rtp_start_timestamp_(0) {} | 355 rtp_start_timestamp_(0) {} |
345 | 356 |
346 private: | 357 private: |
347 test::PacketTransport* CreateSendTransport(Call* sender_call) override { | 358 test::PacketTransport* CreateSendTransport(Call* sender_call) override { |
348 return new test::PacketTransport( | 359 return new test::PacketTransport(sender_call, this, |
349 sender_call, this, test::PacketTransport::kSender, MediaType::VIDEO, | 360 test::PacketTransport::kSender, |
350 net_config_); | 361 payload_type_map_, net_config_); |
351 } | 362 } |
352 | 363 |
353 test::PacketTransport* CreateReceiveTransport() override { | 364 test::PacketTransport* CreateReceiveTransport() override { |
354 return new test::PacketTransport( | 365 return new test::PacketTransport(nullptr, this, |
355 nullptr, this, test::PacketTransport::kReceiver, MediaType::VIDEO, | 366 test::PacketTransport::kReceiver, |
356 net_config_); | 367 payload_type_map_, net_config_); |
357 } | 368 } |
358 | 369 |
359 void OnFrame(const VideoFrame& video_frame) override { | 370 void OnFrame(const VideoFrame& video_frame) override { |
360 rtc::CritScope lock(&crit_); | 371 rtc::CritScope lock(&crit_); |
361 if (video_frame.ntp_time_ms() <= 0) { | 372 if (video_frame.ntp_time_ms() <= 0) { |
362 // Haven't got enough RTCP SR in order to calculate the capture ntp | 373 // Haven't got enough RTCP SR in order to calculate the capture ntp |
363 // time. | 374 // time. |
364 return; | 375 return; |
365 } | 376 } |
366 | 377 |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
763 uint32_t last_set_bitrate_kbps_; | 774 uint32_t last_set_bitrate_kbps_; |
764 VideoSendStream* send_stream_; | 775 VideoSendStream* send_stream_; |
765 test::FrameGeneratorCapturer* frame_generator_; | 776 test::FrameGeneratorCapturer* frame_generator_; |
766 VideoEncoderConfig encoder_config_; | 777 VideoEncoderConfig encoder_config_; |
767 } test; | 778 } test; |
768 | 779 |
769 RunBaseTest(&test); | 780 RunBaseTest(&test); |
770 } | 781 } |
771 | 782 |
772 } // namespace webrtc | 783 } // namespace webrtc |
OLD | NEW |