| 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 1167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1178 | 1178 |
| 1179 webrtc::VideoReceiveStream::Config config(this); | 1179 webrtc::VideoReceiveStream::Config config(this); |
| 1180 ConfigureReceiverRtp(&config, sp); | 1180 ConfigureReceiverRtp(&config, sp); |
| 1181 | 1181 |
| 1182 // Set up A/V sync group based on sync label. | 1182 // Set up A/V sync group based on sync label. |
| 1183 config.sync_group = sp.sync_label; | 1183 config.sync_group = sp.sync_label; |
| 1184 | 1184 |
| 1185 config.rtp.remb = send_codec_ ? HasRemb(send_codec_->codec) : false; | 1185 config.rtp.remb = send_codec_ ? HasRemb(send_codec_->codec) : false; |
| 1186 config.rtp.transport_cc = | 1186 config.rtp.transport_cc = |
| 1187 send_codec_ ? HasTransportCc(send_codec_->codec) : false; | 1187 send_codec_ ? HasTransportCc(send_codec_->codec) : false; |
| 1188 config.disable_prerenderer_smoothing = |
| 1189 video_config_.disable_prerenderer_smoothing; |
| 1188 | 1190 |
| 1189 receive_streams_[ssrc] = new WebRtcVideoReceiveStream( | 1191 receive_streams_[ssrc] = new WebRtcVideoReceiveStream( |
| 1190 call_, sp, config, external_decoder_factory_, default_stream, | 1192 call_, sp, config, external_decoder_factory_, default_stream, |
| 1191 recv_codecs_, video_config_.disable_prerenderer_smoothing); | 1193 recv_codecs_); |
| 1192 | 1194 |
| 1193 return true; | 1195 return true; |
| 1194 } | 1196 } |
| 1195 | 1197 |
| 1196 void WebRtcVideoChannel2::ConfigureReceiverRtp( | 1198 void WebRtcVideoChannel2::ConfigureReceiverRtp( |
| 1197 webrtc::VideoReceiveStream::Config* config, | 1199 webrtc::VideoReceiveStream::Config* config, |
| 1198 const StreamParams& sp) const { | 1200 const StreamParams& sp) const { |
| 1199 uint32_t ssrc = sp.first_ssrc(); | 1201 uint32_t ssrc = sp.first_ssrc(); |
| 1200 | 1202 |
| 1201 config->rtp.remote_ssrc = ssrc; | 1203 config->rtp.remote_ssrc = ssrc; |
| (...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2200 stream_->Start(); | 2202 stream_->Start(); |
| 2201 } | 2203 } |
| 2202 } | 2204 } |
| 2203 | 2205 |
| 2204 WebRtcVideoChannel2::WebRtcVideoReceiveStream::WebRtcVideoReceiveStream( | 2206 WebRtcVideoChannel2::WebRtcVideoReceiveStream::WebRtcVideoReceiveStream( |
| 2205 webrtc::Call* call, | 2207 webrtc::Call* call, |
| 2206 const StreamParams& sp, | 2208 const StreamParams& sp, |
| 2207 const webrtc::VideoReceiveStream::Config& config, | 2209 const webrtc::VideoReceiveStream::Config& config, |
| 2208 WebRtcVideoDecoderFactory* external_decoder_factory, | 2210 WebRtcVideoDecoderFactory* external_decoder_factory, |
| 2209 bool default_stream, | 2211 bool default_stream, |
| 2210 const std::vector<VideoCodecSettings>& recv_codecs, | 2212 const std::vector<VideoCodecSettings>& recv_codecs) |
| 2211 bool disable_prerenderer_smoothing) | |
| 2212 : call_(call), | 2213 : call_(call), |
| 2213 ssrcs_(sp.ssrcs), | 2214 ssrcs_(sp.ssrcs), |
| 2214 ssrc_groups_(sp.ssrc_groups), | 2215 ssrc_groups_(sp.ssrc_groups), |
| 2215 stream_(NULL), | 2216 stream_(NULL), |
| 2216 default_stream_(default_stream), | 2217 default_stream_(default_stream), |
| 2217 config_(config), | 2218 config_(config), |
| 2218 external_decoder_factory_(external_decoder_factory), | 2219 external_decoder_factory_(external_decoder_factory), |
| 2219 disable_prerenderer_smoothing_(disable_prerenderer_smoothing), | |
| 2220 sink_(NULL), | 2220 sink_(NULL), |
| 2221 last_width_(-1), | 2221 last_width_(-1), |
| 2222 last_height_(-1), | 2222 last_height_(-1), |
| 2223 first_frame_timestamp_(-1), | 2223 first_frame_timestamp_(-1), |
| 2224 estimated_remote_start_ntp_time_ms_(0) { | 2224 estimated_remote_start_ntp_time_ms_(0) { |
| 2225 config_.renderer = this; | 2225 config_.renderer = this; |
| 2226 std::vector<AllocatedDecoder> old_decoders; | 2226 std::vector<AllocatedDecoder> old_decoders; |
| 2227 ConfigureCodecs(recv_codecs, &old_decoders); | 2227 ConfigureCodecs(recv_codecs, &old_decoders); |
| 2228 RecreateWebRtcStream(); | 2228 RecreateWebRtcStream(); |
| 2229 RTC_DCHECK(old_decoders.empty()); | 2229 RTC_DCHECK(old_decoders.empty()); |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2428 | 2428 |
| 2429 last_width_ = frame.width(); | 2429 last_width_ = frame.width(); |
| 2430 last_height_ = frame.height(); | 2430 last_height_ = frame.height(); |
| 2431 | 2431 |
| 2432 const WebRtcVideoFrame render_frame( | 2432 const WebRtcVideoFrame render_frame( |
| 2433 frame.video_frame_buffer(), | 2433 frame.video_frame_buffer(), |
| 2434 frame.render_time_ms() * rtc::kNumNanosecsPerMillisec, frame.rotation()); | 2434 frame.render_time_ms() * rtc::kNumNanosecsPerMillisec, frame.rotation()); |
| 2435 sink_->OnFrame(render_frame); | 2435 sink_->OnFrame(render_frame); |
| 2436 } | 2436 } |
| 2437 | 2437 |
| 2438 bool WebRtcVideoChannel2::WebRtcVideoReceiveStream::SmoothsRenderedFrames() | |
| 2439 const { | |
| 2440 return disable_prerenderer_smoothing_; | |
| 2441 } | |
| 2442 | |
| 2443 bool WebRtcVideoChannel2::WebRtcVideoReceiveStream::IsDefaultStream() const { | 2438 bool WebRtcVideoChannel2::WebRtcVideoReceiveStream::IsDefaultStream() const { |
| 2444 return default_stream_; | 2439 return default_stream_; |
| 2445 } | 2440 } |
| 2446 | 2441 |
| 2447 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetSink( | 2442 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::SetSink( |
| 2448 rtc::VideoSinkInterface<cricket::VideoFrame>* sink) { | 2443 rtc::VideoSinkInterface<cricket::VideoFrame>* sink) { |
| 2449 rtc::CritScope crit(&sink_lock_); | 2444 rtc::CritScope crit(&sink_lock_); |
| 2450 sink_ = sink; | 2445 sink_ = sink; |
| 2451 } | 2446 } |
| 2452 | 2447 |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2610 rtx_mapping[video_codecs[i].codec.id] != | 2605 rtx_mapping[video_codecs[i].codec.id] != |
| 2611 fec_settings.red_payload_type) { | 2606 fec_settings.red_payload_type) { |
| 2612 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; | 2607 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; |
| 2613 } | 2608 } |
| 2614 } | 2609 } |
| 2615 | 2610 |
| 2616 return video_codecs; | 2611 return video_codecs; |
| 2617 } | 2612 } |
| 2618 | 2613 |
| 2619 } // namespace cricket | 2614 } // namespace cricket |
| OLD | NEW |