| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 | 101 |
| 102 // Video-specific config. | 102 // Video-specific config. |
| 103 struct Video { | 103 struct Video { |
| 104 // Enable WebRTC CPU Overuse Detection. This flag comes from the | 104 // Enable WebRTC CPU Overuse Detection. This flag comes from the |
| 105 // PeerConnection constraint 'googCpuOveruseDetection'. | 105 // PeerConnection constraint 'googCpuOveruseDetection'. |
| 106 bool enable_cpu_overuse_detection = true; | 106 bool enable_cpu_overuse_detection = true; |
| 107 | 107 |
| 108 // Enable WebRTC suspension of video. No video frames will be sent | 108 // Enable WebRTC suspension of video. No video frames will be sent |
| 109 // when the bitrate is below the configured minimum bitrate. This | 109 // when the bitrate is below the configured minimum bitrate. This |
| 110 // flag comes from the PeerConnection constraint | 110 // flag comes from the PeerConnection constraint |
| 111 // 'googSuspendBelowMinBitrate', and WebRtcVideoChannel2 copies it | 111 // 'googSuspendBelowMinBitrate', and WebRtcVideoChannel copies it |
| 112 // to VideoSendStream::Config::suspend_below_min_bitrate. | 112 // to VideoSendStream::Config::suspend_below_min_bitrate. |
| 113 bool suspend_below_min_bitrate = false; | 113 bool suspend_below_min_bitrate = false; |
| 114 | 114 |
| 115 // Set to true if the renderer has an algorithm of frame selection. | 115 // Set to true if the renderer has an algorithm of frame selection. |
| 116 // If the value is true, then WebRTC will hand over a frame as soon as | 116 // If the value is true, then WebRTC will hand over a frame as soon as |
| 117 // possible without delay, and rendering smoothness is completely the duty | 117 // possible without delay, and rendering smoothness is completely the duty |
| 118 // of the renderer; | 118 // of the renderer; |
| 119 // If the value is false, then WebRTC is responsible to delay frame release | 119 // If the value is false, then WebRTC is responsible to delay frame release |
| 120 // in order to increase rendering smoothness. | 120 // in order to increase rendering smoothness. |
| 121 // | 121 // |
| 122 // This flag comes from PeerConnection's RtcConfiguration, but is | 122 // This flag comes from PeerConnection's RtcConfiguration, but is |
| 123 // currently only set by the command line flag | 123 // currently only set by the command line flag |
| 124 // 'disable-rtc-smoothness-algorithm'. | 124 // 'disable-rtc-smoothness-algorithm'. |
| 125 // WebRtcVideoChannel2::AddRecvStream copies it to the created | 125 // WebRtcVideoChannel::AddRecvStream copies it to the created |
| 126 // WebRtcVideoReceiveStream, where it is returned by the | 126 // WebRtcVideoReceiveStream, where it is returned by the |
| 127 // SmoothsRenderedFrames method. This method is used by the | 127 // SmoothsRenderedFrames method. This method is used by the |
| 128 // VideoReceiveStream, where the value is passed on to the | 128 // VideoReceiveStream, where the value is passed on to the |
| 129 // IncomingVideoStream constructor. | 129 // IncomingVideoStream constructor. |
| 130 bool disable_prerenderer_smoothing = false; | 130 bool disable_prerenderer_smoothing = false; |
| 131 | 131 |
| 132 // Enables periodic bandwidth probing in application-limited region. | 132 // Enables periodic bandwidth probing in application-limited region. |
| 133 bool periodic_alr_bandwidth_probing = false; | 133 bool periodic_alr_bandwidth_probing = false; |
| 134 } video; | 134 } video; |
| 135 | 135 |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 ost << "VideoOptions {"; | 336 ost << "VideoOptions {"; |
| 337 ost << ToStringIfSet("noise reduction", video_noise_reduction); | 337 ost << ToStringIfSet("noise reduction", video_noise_reduction); |
| 338 ost << ToStringIfSet("screencast min bitrate kbps", | 338 ost << ToStringIfSet("screencast min bitrate kbps", |
| 339 screencast_min_bitrate_kbps); | 339 screencast_min_bitrate_kbps); |
| 340 ost << ToStringIfSet("is_screencast ", is_screencast); | 340 ost << ToStringIfSet("is_screencast ", is_screencast); |
| 341 ost << "}"; | 341 ost << "}"; |
| 342 return ost.str(); | 342 return ost.str(); |
| 343 } | 343 } |
| 344 | 344 |
| 345 // Enable denoising? This flag comes from the getUserMedia | 345 // Enable denoising? This flag comes from the getUserMedia |
| 346 // constraint 'googNoiseReduction', and WebRtcVideoEngine2 passes it | 346 // constraint 'googNoiseReduction', and WebRtcVideoEngine passes it |
| 347 // on to the codec options. Disabled by default. | 347 // on to the codec options. Disabled by default. |
| 348 rtc::Optional<bool> video_noise_reduction; | 348 rtc::Optional<bool> video_noise_reduction; |
| 349 // Force screencast to use a minimum bitrate. This flag comes from | 349 // Force screencast to use a minimum bitrate. This flag comes from |
| 350 // the PeerConnection constraint 'googScreencastMinBitrate'. It is | 350 // the PeerConnection constraint 'googScreencastMinBitrate'. It is |
| 351 // copied to the encoder config by WebRtcVideoChannel2. | 351 // copied to the encoder config by WebRtcVideoChannel. |
| 352 rtc::Optional<int> screencast_min_bitrate_kbps; | 352 rtc::Optional<int> screencast_min_bitrate_kbps; |
| 353 // Set by screencast sources. Implies selection of encoding settings | 353 // Set by screencast sources. Implies selection of encoding settings |
| 354 // suitable for screencast. Most likely not the right way to do | 354 // suitable for screencast. Most likely not the right way to do |
| 355 // things, e.g., screencast of a text document and screencast of a | 355 // things, e.g., screencast of a text document and screencast of a |
| 356 // youtube video have different needs. | 356 // youtube video have different needs. |
| 357 rtc::Optional<bool> is_screencast; | 357 rtc::Optional<bool> is_screencast; |
| 358 | 358 |
| 359 private: | 359 private: |
| 360 template <typename T> | 360 template <typename T> |
| 361 static void SetFrom(rtc::Optional<T>* s, const rtc::Optional<T>& o) { | 361 static void SetFrom(rtc::Optional<T>* s, const rtc::Optional<T>& o) { |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1014 std::unique_ptr<webrtc::AudioSinkInterface> sink) = 0; | 1014 std::unique_ptr<webrtc::AudioSinkInterface> sink) = 0; |
| 1015 }; | 1015 }; |
| 1016 | 1016 |
| 1017 // TODO(deadbeef): Rename to VideoSenderParameters, since they're intended to | 1017 // TODO(deadbeef): Rename to VideoSenderParameters, since they're intended to |
| 1018 // encapsulate all the parameters needed for a video RtpSender. | 1018 // encapsulate all the parameters needed for a video RtpSender. |
| 1019 struct VideoSendParameters : RtpSendParameters<VideoCodec> { | 1019 struct VideoSendParameters : RtpSendParameters<VideoCodec> { |
| 1020 // Use conference mode? This flag comes from the remote | 1020 // Use conference mode? This flag comes from the remote |
| 1021 // description's SDP line 'a=x-google-flag:conference', copied over | 1021 // description's SDP line 'a=x-google-flag:conference', copied over |
| 1022 // by VideoChannel::SetRemoteContent_w, and ultimately used by | 1022 // by VideoChannel::SetRemoteContent_w, and ultimately used by |
| 1023 // conference mode screencast logic in | 1023 // conference mode screencast logic in |
| 1024 // WebRtcVideoChannel2::WebRtcVideoSendStream::CreateVideoEncoderConfig. | 1024 // WebRtcVideoChannel::WebRtcVideoSendStream::CreateVideoEncoderConfig. |
| 1025 // The special screencast behaviour is disabled by default. | 1025 // The special screencast behaviour is disabled by default. |
| 1026 bool conference_mode = false; | 1026 bool conference_mode = false; |
| 1027 }; | 1027 }; |
| 1028 | 1028 |
| 1029 // TODO(deadbeef): Rename to VideoReceiverParameters, since they're intended to | 1029 // TODO(deadbeef): Rename to VideoReceiverParameters, since they're intended to |
| 1030 // encapsulate all the parameters needed for a video RtpReceiver. | 1030 // encapsulate all the parameters needed for a video RtpReceiver. |
| 1031 struct VideoRecvParameters : RtpParameters<VideoCodec> { | 1031 struct VideoRecvParameters : RtpParameters<VideoCodec> { |
| 1032 }; | 1032 }; |
| 1033 | 1033 |
| 1034 class VideoMediaChannel : public MediaChannel { | 1034 class VideoMediaChannel : public MediaChannel { |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1215 const char*, | 1215 const char*, |
| 1216 size_t> SignalDataReceived; | 1216 size_t> SignalDataReceived; |
| 1217 // Signal when the media channel is ready to send the stream. Arguments are: | 1217 // Signal when the media channel is ready to send the stream. Arguments are: |
| 1218 // writable(bool) | 1218 // writable(bool) |
| 1219 sigslot::signal1<bool> SignalReadyToSend; | 1219 sigslot::signal1<bool> SignalReadyToSend; |
| 1220 }; | 1220 }; |
| 1221 | 1221 |
| 1222 } // namespace cricket | 1222 } // namespace cricket |
| 1223 | 1223 |
| 1224 #endif // WEBRTC_MEDIA_BASE_MEDIACHANNEL_H_ | 1224 #endif // WEBRTC_MEDIA_BASE_MEDIACHANNEL_H_ |
| OLD | NEW |