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 |