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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 }; | 204 }; |
205 | 205 |
206 bool GetChangedSendParameters(const VideoSendParameters& params, | 206 bool GetChangedSendParameters(const VideoSendParameters& params, |
207 ChangedSendParameters* changed_params) const; | 207 ChangedSendParameters* changed_params) const; |
208 bool GetChangedRecvParameters(const VideoRecvParameters& params, | 208 bool GetChangedRecvParameters(const VideoRecvParameters& params, |
209 ChangedRecvParameters* changed_params) const; | 209 ChangedRecvParameters* changed_params) const; |
210 | 210 |
211 bool MuteStream(uint32_t ssrc, bool mute); | 211 bool MuteStream(uint32_t ssrc, bool mute); |
212 | 212 |
213 void SetMaxSendBandwidth(int bps); | 213 void SetMaxSendBandwidth(int bps); |
214 void SetOptions(const VideoOptions& options); | 214 void SetOptions(uint32_t ssrc, const VideoOptions& options); |
215 | 215 |
216 void ConfigureReceiverRtp(webrtc::VideoReceiveStream::Config* config, | 216 void ConfigureReceiverRtp(webrtc::VideoReceiveStream::Config* config, |
217 const StreamParams& sp) const; | 217 const StreamParams& sp) const; |
218 bool CodecIsExternallySupported(const std::string& name) const; | 218 bool CodecIsExternallySupported(const std::string& name) const; |
219 bool ValidateSendSsrcAvailability(const StreamParams& sp) const | 219 bool ValidateSendSsrcAvailability(const StreamParams& sp) const |
220 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); | 220 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); |
221 bool ValidateReceiveSsrcAvailability(const StreamParams& sp) const | 221 bool ValidateReceiveSsrcAvailability(const StreamParams& sp) const |
222 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); | 222 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); |
223 void DeleteReceiveStream(WebRtcVideoReceiveStream* stream) | 223 void DeleteReceiveStream(WebRtcVideoReceiveStream* stream) |
224 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); | 224 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); |
225 | 225 |
226 static std::string CodecSettingsVectorToString( | 226 static std::string CodecSettingsVectorToString( |
227 const std::vector<VideoCodecSettings>& codecs); | 227 const std::vector<VideoCodecSettings>& codecs); |
228 | 228 |
229 // Wrapper for the sender part, this is where the capturer is connected and | 229 // Wrapper for the sender part, this is where the capturer is connected and |
230 // frames are then converted from cricket frames to webrtc frames. | 230 // frames are then converted from cricket frames to webrtc frames. |
231 class WebRtcVideoSendStream | 231 class WebRtcVideoSendStream |
232 : public rtc::VideoSinkInterface<cricket::VideoFrame> { | 232 : public rtc::VideoSinkInterface<cricket::VideoFrame> { |
233 public: | 233 public: |
234 WebRtcVideoSendStream( | 234 WebRtcVideoSendStream( |
235 webrtc::Call* call, | 235 webrtc::Call* call, |
236 const StreamParams& sp, | 236 const StreamParams& sp, |
237 const webrtc::VideoSendStream::Config& config, | 237 const webrtc::VideoSendStream::Config& config, |
238 WebRtcVideoEncoderFactory* external_encoder_factory, | 238 WebRtcVideoEncoderFactory* external_encoder_factory, |
239 const VideoOptions& options, | |
240 int max_bitrate_bps, | 239 int max_bitrate_bps, |
241 const rtc::Optional<VideoCodecSettings>& codec_settings, | 240 const rtc::Optional<VideoCodecSettings>& codec_settings, |
242 const std::vector<webrtc::RtpExtension>& rtp_extensions, | 241 const std::vector<webrtc::RtpExtension>& rtp_extensions, |
243 const VideoSendParameters& send_params); | 242 const VideoSendParameters& send_params); |
244 virtual ~WebRtcVideoSendStream(); | 243 virtual ~WebRtcVideoSendStream(); |
245 | 244 |
246 void SetOptions(const VideoOptions& options); | 245 void SetOptions(const VideoOptions& options); |
247 // TODO(pbos): Move logic from SetOptions into this method. | 246 // TODO(pbos): Move logic from SetOptions into this method. |
248 void SetSendParameters(const ChangedSendParameters& send_params); | 247 void SetSendParameters(const ChangedSendParameters& send_params); |
249 | 248 |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 // the stream has been running. | 447 // the stream has been running. |
449 rtc::TimestampWrapAroundHandler timestamp_wraparound_handler_ | 448 rtc::TimestampWrapAroundHandler timestamp_wraparound_handler_ |
450 GUARDED_BY(sink_lock_); | 449 GUARDED_BY(sink_lock_); |
451 int64_t first_frame_timestamp_ GUARDED_BY(sink_lock_); | 450 int64_t first_frame_timestamp_ GUARDED_BY(sink_lock_); |
452 // Start NTP time is estimated as current remote NTP time (estimated from | 451 // Start NTP time is estimated as current remote NTP time (estimated from |
453 // RTCP) minus the elapsed time, as soon as remote NTP time is available. | 452 // RTCP) minus the elapsed time, as soon as remote NTP time is available. |
454 int64_t estimated_remote_start_ntp_time_ms_ GUARDED_BY(sink_lock_); | 453 int64_t estimated_remote_start_ntp_time_ms_ GUARDED_BY(sink_lock_); |
455 }; | 454 }; |
456 | 455 |
457 void Construct(webrtc::Call* call, WebRtcVideoEngine2* engine); | 456 void Construct(webrtc::Call* call, WebRtcVideoEngine2* engine); |
458 void SetDefaultOptions(); | |
459 | 457 |
460 bool SendRtp(const uint8_t* data, | 458 bool SendRtp(const uint8_t* data, |
461 size_t len, | 459 size_t len, |
462 const webrtc::PacketOptions& options) override; | 460 const webrtc::PacketOptions& options) override; |
463 bool SendRtcp(const uint8_t* data, size_t len) override; | 461 bool SendRtcp(const uint8_t* data, size_t len) override; |
464 | 462 |
465 void StartAllSendStreams(); | 463 void StartAllSendStreams(); |
466 void StopAllSendStreams(); | 464 void StopAllSendStreams(); |
467 | 465 |
468 static std::vector<VideoCodecSettings> MapCodecs( | 466 static std::vector<VideoCodecSettings> MapCodecs( |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 std::set<uint32_t> receive_ssrcs_ GUARDED_BY(stream_crit_); | 505 std::set<uint32_t> receive_ssrcs_ GUARDED_BY(stream_crit_); |
508 | 506 |
509 rtc::Optional<VideoCodecSettings> send_codec_; | 507 rtc::Optional<VideoCodecSettings> send_codec_; |
510 std::vector<webrtc::RtpExtension> send_rtp_extensions_; | 508 std::vector<webrtc::RtpExtension> send_rtp_extensions_; |
511 | 509 |
512 WebRtcVideoEncoderFactory* const external_encoder_factory_; | 510 WebRtcVideoEncoderFactory* const external_encoder_factory_; |
513 WebRtcVideoDecoderFactory* const external_decoder_factory_; | 511 WebRtcVideoDecoderFactory* const external_decoder_factory_; |
514 std::vector<VideoCodecSettings> recv_codecs_; | 512 std::vector<VideoCodecSettings> recv_codecs_; |
515 std::vector<webrtc::RtpExtension> recv_rtp_extensions_; | 513 std::vector<webrtc::RtpExtension> recv_rtp_extensions_; |
516 webrtc::Call::Config::BitrateConfig bitrate_config_; | 514 webrtc::Call::Config::BitrateConfig bitrate_config_; |
517 VideoOptions options_; | |
518 // TODO(deadbeef): Don't duplicate information between | 515 // TODO(deadbeef): Don't duplicate information between |
519 // send_params/recv_params, rtp_extensions, options, etc. | 516 // send_params/recv_params, rtp_extensions, options, etc. |
520 VideoSendParameters send_params_; | 517 VideoSendParameters send_params_; |
521 VideoRecvParameters recv_params_; | 518 VideoRecvParameters recv_params_; |
522 }; | 519 }; |
523 | 520 |
524 } // namespace cricket | 521 } // namespace cricket |
525 | 522 |
526 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_ | 523 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_ |
OLD | NEW |