| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 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 1209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1220 // Set up A/V sync group based on sync label. | 1220 // Set up A/V sync group based on sync label. |
| 1221 config.sync_group = sp.sync_label; | 1221 config.sync_group = sp.sync_label; |
| 1222 | 1222 |
| 1223 config.rtp.remb = send_codec_ ? HasRemb(send_codec_->codec) : false; | 1223 config.rtp.remb = send_codec_ ? HasRemb(send_codec_->codec) : false; |
| 1224 config.rtp.transport_cc = | 1224 config.rtp.transport_cc = |
| 1225 send_codec_ ? HasTransportCc(send_codec_->codec) : false; | 1225 send_codec_ ? HasTransportCc(send_codec_->codec) : false; |
| 1226 config.disable_prerenderer_smoothing = | 1226 config.disable_prerenderer_smoothing = |
| 1227 video_config_.disable_prerenderer_smoothing; | 1227 video_config_.disable_prerenderer_smoothing; |
| 1228 | 1228 |
| 1229 receive_streams_[ssrc] = new WebRtcVideoReceiveStream( | 1229 receive_streams_[ssrc] = new WebRtcVideoReceiveStream( |
| 1230 call_, sp, config, external_decoder_factory_, default_stream, | 1230 call_, sp, std::move(config), external_decoder_factory_, default_stream, |
| 1231 recv_codecs_, red_disabled_by_remote_side_); | 1231 recv_codecs_, red_disabled_by_remote_side_); |
| 1232 | 1232 |
| 1233 return true; | 1233 return true; |
| 1234 } | 1234 } |
| 1235 | 1235 |
| 1236 void WebRtcVideoChannel2::ConfigureReceiverRtp( | 1236 void WebRtcVideoChannel2::ConfigureReceiverRtp( |
| 1237 webrtc::VideoReceiveStream::Config* config, | 1237 webrtc::VideoReceiveStream::Config* config, |
| 1238 const StreamParams& sp) const { | 1238 const StreamParams& sp) const { |
| 1239 uint32_t ssrc = sp.first_ssrc(); | 1239 uint32_t ssrc = sp.first_ssrc(); |
| 1240 | 1240 |
| (...skipping 949 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2190 pending_encoder_reconfiguration_ = false; | 2190 pending_encoder_reconfiguration_ = false; |
| 2191 | 2191 |
| 2192 if (sending_) { | 2192 if (sending_) { |
| 2193 stream_->Start(); | 2193 stream_->Start(); |
| 2194 } | 2194 } |
| 2195 } | 2195 } |
| 2196 | 2196 |
| 2197 WebRtcVideoChannel2::WebRtcVideoReceiveStream::WebRtcVideoReceiveStream( | 2197 WebRtcVideoChannel2::WebRtcVideoReceiveStream::WebRtcVideoReceiveStream( |
| 2198 webrtc::Call* call, | 2198 webrtc::Call* call, |
| 2199 const StreamParams& sp, | 2199 const StreamParams& sp, |
| 2200 const webrtc::VideoReceiveStream::Config& config, | 2200 webrtc::VideoReceiveStream::Config config, |
| 2201 WebRtcVideoDecoderFactory* external_decoder_factory, | 2201 WebRtcVideoDecoderFactory* external_decoder_factory, |
| 2202 bool default_stream, | 2202 bool default_stream, |
| 2203 const std::vector<VideoCodecSettings>& recv_codecs, | 2203 const std::vector<VideoCodecSettings>& recv_codecs, |
| 2204 bool red_disabled_by_remote_side) | 2204 bool red_disabled_by_remote_side) |
| 2205 : call_(call), | 2205 : call_(call), |
| 2206 ssrcs_(sp.ssrcs), | 2206 ssrcs_(sp.ssrcs), |
| 2207 ssrc_groups_(sp.ssrc_groups), | 2207 ssrc_groups_(sp.ssrc_groups), |
| 2208 stream_(NULL), | 2208 stream_(NULL), |
| 2209 default_stream_(default_stream), | 2209 default_stream_(default_stream), |
| 2210 config_(config), | 2210 config_(std::move(config)), |
| 2211 red_disabled_by_remote_side_(red_disabled_by_remote_side), | 2211 red_disabled_by_remote_side_(red_disabled_by_remote_side), |
| 2212 external_decoder_factory_(external_decoder_factory), | 2212 external_decoder_factory_(external_decoder_factory), |
| 2213 sink_(NULL), | 2213 sink_(NULL), |
| 2214 last_width_(-1), | 2214 last_width_(-1), |
| 2215 last_height_(-1), | 2215 last_height_(-1), |
| 2216 first_frame_timestamp_(-1), | 2216 first_frame_timestamp_(-1), |
| 2217 estimated_remote_start_ntp_time_ms_(0) { | 2217 estimated_remote_start_ntp_time_ms_(0) { |
| 2218 config_.renderer = this; | 2218 config_.renderer = this; |
| 2219 std::vector<AllocatedDecoder> old_decoders; | 2219 std::vector<AllocatedDecoder> old_decoders; |
| 2220 ConfigureCodecs(recv_codecs, &old_decoders); | 2220 ConfigureCodecs(recv_codecs, &old_decoders); |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2377 LOG(LS_INFO) << "RecreateWebRtcStream (recv) because of SetRecvParameters"; | 2377 LOG(LS_INFO) << "RecreateWebRtcStream (recv) because of SetRecvParameters"; |
| 2378 RecreateWebRtcStream(); | 2378 RecreateWebRtcStream(); |
| 2379 ClearDecoders(&old_decoders); | 2379 ClearDecoders(&old_decoders); |
| 2380 } | 2380 } |
| 2381 } | 2381 } |
| 2382 | 2382 |
| 2383 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::RecreateWebRtcStream() { | 2383 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::RecreateWebRtcStream() { |
| 2384 if (stream_ != NULL) { | 2384 if (stream_ != NULL) { |
| 2385 call_->DestroyVideoReceiveStream(stream_); | 2385 call_->DestroyVideoReceiveStream(stream_); |
| 2386 } | 2386 } |
| 2387 webrtc::VideoReceiveStream::Config config = config_; | 2387 webrtc::VideoReceiveStream::Config config = config_.Copy(); |
| 2388 if (red_disabled_by_remote_side_) { | 2388 if (red_disabled_by_remote_side_) { |
| 2389 config.rtp.fec.red_payload_type = -1; | 2389 config.rtp.fec.red_payload_type = -1; |
| 2390 config.rtp.fec.ulpfec_payload_type = -1; | 2390 config.rtp.fec.ulpfec_payload_type = -1; |
| 2391 config.rtp.fec.red_rtx_payload_type = -1; | 2391 config.rtp.fec.red_rtx_payload_type = -1; |
| 2392 } | 2392 } |
| 2393 stream_ = call_->CreateVideoReceiveStream(config); | 2393 stream_ = call_->CreateVideoReceiveStream(std::move(config)); |
| 2394 stream_->Start(); | 2394 stream_->Start(); |
| 2395 } | 2395 } |
| 2396 | 2396 |
| 2397 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::ClearDecoders( | 2397 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::ClearDecoders( |
| 2398 std::vector<AllocatedDecoder>* allocated_decoders) { | 2398 std::vector<AllocatedDecoder>* allocated_decoders) { |
| 2399 for (size_t i = 0; i < allocated_decoders->size(); ++i) { | 2399 for (size_t i = 0; i < allocated_decoders->size(); ++i) { |
| 2400 if ((*allocated_decoders)[i].external) { | 2400 if ((*allocated_decoders)[i].external) { |
| 2401 external_decoder_factory_->DestroyVideoDecoder( | 2401 external_decoder_factory_->DestroyVideoDecoder( |
| 2402 (*allocated_decoders)[i].external_decoder); | 2402 (*allocated_decoders)[i].external_decoder); |
| 2403 } | 2403 } |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2610 rtx_mapping[video_codecs[i].codec.id] != | 2610 rtx_mapping[video_codecs[i].codec.id] != |
| 2611 fec_settings.red_payload_type) { | 2611 fec_settings.red_payload_type) { |
| 2612 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; | 2612 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; |
| 2613 } | 2613 } |
| 2614 } | 2614 } |
| 2615 | 2615 |
| 2616 return video_codecs; | 2616 return video_codecs; |
| 2617 } | 2617 } |
| 2618 | 2618 |
| 2619 } // namespace cricket | 2619 } // namespace cricket |
| OLD | NEW |