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 |