Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: webrtc/media/base/mediachannel.h

Issue 1711763003: New flag is_screencast in VideoOptions. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fix use-after-free of FakeVideoSendStream. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 } 245 }
246 }; 246 };
247 247
248 // Options that can be applied to a VideoMediaChannel or a VideoMediaEngine. 248 // Options that can be applied to a VideoMediaChannel or a VideoMediaEngine.
249 // Used to be flags, but that makes it hard to selectively apply options. 249 // Used to be flags, but that makes it hard to selectively apply options.
250 // We are moving all of the setting of options to structs like this, 250 // We are moving all of the setting of options to structs like this,
251 // but some things currently still use flags. 251 // but some things currently still use flags.
252 struct VideoOptions { 252 struct VideoOptions {
253 void SetAll(const VideoOptions& change) { 253 void SetAll(const VideoOptions& change) {
254 SetFrom(&video_noise_reduction, change.video_noise_reduction); 254 SetFrom(&video_noise_reduction, change.video_noise_reduction);
255 SetFrom(&suspend_below_min_bitrate, change.suspend_below_min_bitrate); 255 SetFrom(&suspend_below_min_bitrate, change.suspend_below_min_bitrate);
perkj_webrtc 2016/02/21 18:09:06 not this cl but is suspend_below_min_bitrate and s
nisse-webrtc 2016/02/22 07:52:34 By the comment I added below, they're PeerConnecti
256 SetFrom(&screencast_min_bitrate_kbps, change.screencast_min_bitrate_kbps); 256 SetFrom(&screencast_min_bitrate_kbps, change.screencast_min_bitrate_kbps);
257 SetFrom(&is_screencast, change.is_screencast);
257 } 258 }
258 259
259 bool operator==(const VideoOptions& o) const { 260 bool operator==(const VideoOptions& o) const {
260 return video_noise_reduction == o.video_noise_reduction && 261 return video_noise_reduction == o.video_noise_reduction &&
261 suspend_below_min_bitrate == o.suspend_below_min_bitrate && 262 suspend_below_min_bitrate == o.suspend_below_min_bitrate &&
262 screencast_min_bitrate_kbps == o.screencast_min_bitrate_kbps; 263 screencast_min_bitrate_kbps == o.screencast_min_bitrate_kbps &&
264 is_screencast == o.is_screencast;
263 } 265 }
264 266
265 std::string ToString() const { 267 std::string ToString() const {
266 std::ostringstream ost; 268 std::ostringstream ost;
267 ost << "VideoOptions {"; 269 ost << "VideoOptions {";
268 ost << ToStringIfSet("noise reduction", video_noise_reduction); 270 ost << ToStringIfSet("noise reduction", video_noise_reduction);
269 ost << ToStringIfSet("suspend below min bitrate", 271 ost << ToStringIfSet("suspend below min bitrate",
270 suspend_below_min_bitrate); 272 suspend_below_min_bitrate);
271 ost << ToStringIfSet("screencast min bitrate kbps", 273 ost << ToStringIfSet("screencast min bitrate kbps",
272 screencast_min_bitrate_kbps); 274 screencast_min_bitrate_kbps);
275 ost << ToStringIfSet("is_screencast ", is_screencast);
273 ost << "}"; 276 ost << "}";
274 return ost.str(); 277 return ost.str();
275 } 278 }
276 279
277 // Enable denoising? This flag comes from the getUserMedia 280 // Enable denoising? This flag comes from the getUserMedia
278 // constraint 'googNoiseReduction', and WebRtcVideoEngine2 passes it 281 // constraint 'googNoiseReduction', and WebRtcVideoEngine2 passes it
279 // on to the codec options. Disabled by default. 282 // on to the codec options. Disabled by default.
280 rtc::Optional<bool> video_noise_reduction; 283 rtc::Optional<bool> video_noise_reduction;
281 // Enable WebRTC suspension of video. No video frames will be sent 284 // Enable WebRTC suspension of video. No video frames will be sent
282 // when the bitrate is below the configured minimum bitrate. This 285 // when the bitrate is below the configured minimum bitrate. This
283 // flag comes from the PeerConnection constraint 286 // flag comes from the PeerConnection constraint
284 // 'googSuspendBelowMinBitrate', and WebRtcVideoChannel2 copies it 287 // 'googSuspendBelowMinBitrate', and WebRtcVideoChannel2 copies it
285 // to VideoSendStream::Config::suspend_below_min_bitrate. 288 // to VideoSendStream::Config::suspend_below_min_bitrate.
286 rtc::Optional<bool> suspend_below_min_bitrate; 289 rtc::Optional<bool> suspend_below_min_bitrate;
287 // Force screencast to use a minimum bitrate. This flag comes from 290 // Force screencast to use a minimum bitrate. This flag comes from
288 // the PeerConnection constraint 'googScreencastMinBitrate'. It is 291 // the PeerConnection constraint 'googScreencastMinBitrate'. It is
289 // copied to the encoder config by WebRtcVideoChannel2. 292 // copied to the encoder config by WebRtcVideoChannel2.
290 rtc::Optional<int> screencast_min_bitrate_kbps; 293 rtc::Optional<int> screencast_min_bitrate_kbps;
294 // Set by screencast sources. Implies selection of encoding settings
295 // suitable for screencast. Most likely not the right way to do
296 // things, e.g., screencast of a text document and screencast of a
297 // youtube video have different needs.
298 rtc::Optional<bool> is_screencast;
291 299
292 private: 300 private:
293 template <typename T> 301 template <typename T>
294 static void SetFrom(rtc::Optional<T>* s, const rtc::Optional<T>& o) { 302 static void SetFrom(rtc::Optional<T>* s, const rtc::Optional<T>& o) {
295 if (o) { 303 if (o) {
296 *s = o; 304 *s = o;
297 } 305 }
298 } 306 }
299 }; 307 };
300 308
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 // Signal when the media channel is ready to send the stream. Arguments are: 1115 // Signal when the media channel is ready to send the stream. Arguments are:
1108 // writable(bool) 1116 // writable(bool)
1109 sigslot::signal1<bool> SignalReadyToSend; 1117 sigslot::signal1<bool> SignalReadyToSend;
1110 // Signal for notifying that the remote side has closed the DataChannel. 1118 // Signal for notifying that the remote side has closed the DataChannel.
1111 sigslot::signal1<uint32_t> SignalStreamClosedRemotely; 1119 sigslot::signal1<uint32_t> SignalStreamClosedRemotely;
1112 }; 1120 };
1113 1121
1114 } // namespace cricket 1122 } // namespace cricket
1115 1123
1116 #endif // WEBRTC_MEDIA_BASE_MEDIACHANNEL_H_ 1124 #endif // WEBRTC_MEDIA_BASE_MEDIACHANNEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698