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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2.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) 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 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 }; 292 };
293 293
294 struct Dimensions { 294 struct Dimensions {
295 // Initial encoder configuration (QCIF, 176x144) frame (to ensure that 295 // Initial encoder configuration (QCIF, 176x144) frame (to ensure that
296 // hardware encoders can be initialized). This gives us low memory usage 296 // hardware encoders can be initialized). This gives us low memory usage
297 // but also makes it so configuration errors are discovered at the time we 297 // but also makes it so configuration errors are discovered at the time we
298 // apply the settings rather than when we get the first frame (waiting for 298 // apply the settings rather than when we get the first frame (waiting for
299 // the first frame to know that you gave a bad codec parameter could make 299 // the first frame to know that you gave a bad codec parameter could make
300 // debugging hard). 300 // debugging hard).
301 // TODO(pbos): Consider setting up encoders lazily. 301 // TODO(pbos): Consider setting up encoders lazily.
302 Dimensions() : width(176), height(144), is_screencast(false) {} 302 Dimensions() : width(176), height(144) {}
303 int width; 303 int width;
304 int height; 304 int height;
305 bool is_screencast;
306 }; 305 };
307 306
308 union VideoEncoderSettings { 307 union VideoEncoderSettings {
309 webrtc::VideoCodecH264 h264; 308 webrtc::VideoCodecH264 h264;
310 webrtc::VideoCodecVP8 vp8; 309 webrtc::VideoCodecVP8 vp8;
311 webrtc::VideoCodecVP9 vp9; 310 webrtc::VideoCodecVP9 vp9;
312 }; 311 };
313 312
314 static std::vector<webrtc::VideoStream> CreateVideoStreams( 313 static std::vector<webrtc::VideoStream> CreateVideoStreams(
315 const VideoCodec& codec, 314 const VideoCodec& codec,
316 const VideoOptions& options, 315 const VideoOptions& options,
317 int max_bitrate_bps, 316 int max_bitrate_bps,
318 size_t num_streams); 317 size_t num_streams);
319 static std::vector<webrtc::VideoStream> CreateSimulcastVideoStreams( 318 static std::vector<webrtc::VideoStream> CreateSimulcastVideoStreams(
320 const VideoCodec& codec, 319 const VideoCodec& codec,
321 const VideoOptions& options, 320 const VideoOptions& options,
322 int max_bitrate_bps, 321 int max_bitrate_bps,
323 size_t num_streams); 322 size_t num_streams);
324 323
325 void* ConfigureVideoEncoderSettings(const VideoCodec& codec, 324 void* ConfigureVideoEncoderSettings(const VideoCodec& codec)
326 const VideoOptions& options,
327 bool is_screencast)
328 EXCLUSIVE_LOCKS_REQUIRED(lock_); 325 EXCLUSIVE_LOCKS_REQUIRED(lock_);
329 326
330 AllocatedEncoder CreateVideoEncoder(const VideoCodec& codec) 327 AllocatedEncoder CreateVideoEncoder(const VideoCodec& codec)
331 EXCLUSIVE_LOCKS_REQUIRED(lock_); 328 EXCLUSIVE_LOCKS_REQUIRED(lock_);
332 void DestroyVideoEncoder(AllocatedEncoder* encoder) 329 void DestroyVideoEncoder(AllocatedEncoder* encoder)
333 EXCLUSIVE_LOCKS_REQUIRED(lock_); 330 EXCLUSIVE_LOCKS_REQUIRED(lock_);
334 void SetCodecAndOptions(const VideoCodecSettings& codec, 331 void SetCodecAndOptions(const VideoCodecSettings& codec)
335 const VideoOptions& options)
336 EXCLUSIVE_LOCKS_REQUIRED(lock_); 332 EXCLUSIVE_LOCKS_REQUIRED(lock_);
337 void RecreateWebRtcStream() EXCLUSIVE_LOCKS_REQUIRED(lock_); 333 void RecreateWebRtcStream() EXCLUSIVE_LOCKS_REQUIRED(lock_);
338 webrtc::VideoEncoderConfig CreateVideoEncoderConfig( 334 webrtc::VideoEncoderConfig CreateVideoEncoderConfig(
339 const Dimensions& dimensions, 335 const Dimensions& dimensions,
340 const VideoCodec& codec) const EXCLUSIVE_LOCKS_REQUIRED(lock_); 336 const VideoCodec& codec) const EXCLUSIVE_LOCKS_REQUIRED(lock_);
341 void SetDimensions(int width, int height, bool is_screencast) 337 void SetDimensions(int width, int height)
342 EXCLUSIVE_LOCKS_REQUIRED(lock_); 338 EXCLUSIVE_LOCKS_REQUIRED(lock_);
343 339
344 const std::vector<uint32_t> ssrcs_; 340 const std::vector<uint32_t> ssrcs_;
345 const std::vector<SsrcGroup> ssrc_groups_; 341 const std::vector<SsrcGroup> ssrc_groups_;
346 webrtc::Call* const call_; 342 webrtc::Call* const call_;
347 rtc::VideoSinkWants sink_wants_; 343 rtc::VideoSinkWants sink_wants_;
348 WebRtcVideoEncoderFactory* const external_encoder_factory_ 344 WebRtcVideoEncoderFactory* const external_encoder_factory_
349 GUARDED_BY(lock_); 345 GUARDED_BY(lock_);
350 346
351 rtc::CriticalSection lock_; 347 rtc::CriticalSection lock_;
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 webrtc::Call::Config::BitrateConfig bitrate_config_; 512 webrtc::Call::Config::BitrateConfig bitrate_config_;
517 // TODO(deadbeef): Don't duplicate information between 513 // TODO(deadbeef): Don't duplicate information between
518 // send_params/recv_params, rtp_extensions, options, etc. 514 // send_params/recv_params, rtp_extensions, options, etc.
519 VideoSendParameters send_params_; 515 VideoSendParameters send_params_;
520 VideoRecvParameters recv_params_; 516 VideoRecvParameters recv_params_;
521 }; 517 };
522 518
523 } // namespace cricket 519 } // namespace cricket
524 520
525 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_ 521 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698