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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2.h

Issue 2347843002: Add proper lifetime of encoder-specific settings (Closed)
Patch Set: nitpicks Created 4 years, 3 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
« no previous file with comments | « webrtc/media/engine/fakewebrtccall.cc ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 : width(176), 332 : width(176),
333 height(144), 333 height(144),
334 rotation(webrtc::kVideoRotation_0), 334 rotation(webrtc::kVideoRotation_0),
335 is_texture(false) {} 335 is_texture(false) {}
336 int width; 336 int width;
337 int height; 337 int height;
338 webrtc::VideoRotation rotation; 338 webrtc::VideoRotation rotation;
339 bool is_texture; 339 bool is_texture;
340 }; 340 };
341 341
342 union VideoEncoderSettings {
343 webrtc::VideoCodecH264 h264;
344 webrtc::VideoCodecVP8 vp8;
345 webrtc::VideoCodecVP9 vp9;
346 };
347
348 static std::vector<webrtc::VideoStream> CreateVideoStreams( 342 static std::vector<webrtc::VideoStream> CreateVideoStreams(
349 const VideoCodec& codec, 343 const VideoCodec& codec,
350 const VideoOptions& options, 344 const VideoOptions& options,
351 int max_bitrate_bps, 345 int max_bitrate_bps,
352 size_t num_streams); 346 size_t num_streams);
353 static std::vector<webrtc::VideoStream> CreateSimulcastVideoStreams( 347 static std::vector<webrtc::VideoStream> CreateSimulcastVideoStreams(
354 const VideoCodec& codec, 348 const VideoCodec& codec,
355 const VideoOptions& options, 349 const VideoOptions& options,
356 int max_bitrate_bps, 350 int max_bitrate_bps,
357 size_t num_streams); 351 size_t num_streams);
358 352
359 void* ConfigureVideoEncoderSettings(const VideoCodec& codec) 353 rtc::scoped_refptr<webrtc::VideoEncoderConfig::EncoderSpecificSettings>
354 ConfigureVideoEncoderSettings(const VideoCodec& codec)
360 EXCLUSIVE_LOCKS_REQUIRED(lock_); 355 EXCLUSIVE_LOCKS_REQUIRED(lock_);
361 356
362 AllocatedEncoder CreateVideoEncoder(const VideoCodec& codec) 357 AllocatedEncoder CreateVideoEncoder(const VideoCodec& codec)
363 EXCLUSIVE_LOCKS_REQUIRED(lock_); 358 EXCLUSIVE_LOCKS_REQUIRED(lock_);
364 void DestroyVideoEncoder(AllocatedEncoder* encoder) 359 void DestroyVideoEncoder(AllocatedEncoder* encoder)
365 EXCLUSIVE_LOCKS_REQUIRED(lock_); 360 EXCLUSIVE_LOCKS_REQUIRED(lock_);
366 void SetCodec(const VideoCodecSettings& codec) 361 void SetCodec(const VideoCodecSettings& codec)
367 EXCLUSIVE_LOCKS_REQUIRED(lock_); 362 EXCLUSIVE_LOCKS_REQUIRED(lock_);
368 void RecreateWebRtcStream() EXCLUSIVE_LOCKS_REQUIRED(lock_); 363 void RecreateWebRtcStream() EXCLUSIVE_LOCKS_REQUIRED(lock_);
369 webrtc::VideoEncoderConfig CreateVideoEncoderConfig( 364 webrtc::VideoEncoderConfig CreateVideoEncoderConfig(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 // such as codecs, header extensions, and the global bitrate limit for the 401 // such as codecs, header extensions, and the global bitrate limit for the
407 // entire channel. 402 // entire channel.
408 VideoSendStreamParameters parameters_ GUARDED_BY(lock_); 403 VideoSendStreamParameters parameters_ GUARDED_BY(lock_);
409 // Contains settings that are unique for each stream, such as max_bitrate. 404 // Contains settings that are unique for each stream, such as max_bitrate.
410 // Does *not* contain codecs, however. 405 // Does *not* contain codecs, however.
411 // TODO(skvlad): Move ssrcs_ and ssrc_groups_ into rtp_parameters_. 406 // TODO(skvlad): Move ssrcs_ and ssrc_groups_ into rtp_parameters_.
412 // TODO(skvlad): Combine parameters_ and rtp_parameters_ once we have only 407 // TODO(skvlad): Combine parameters_ and rtp_parameters_ once we have only
413 // one stream per MediaChannel. 408 // one stream per MediaChannel.
414 webrtc::RtpParameters rtp_parameters_ GUARDED_BY(lock_); 409 webrtc::RtpParameters rtp_parameters_ GUARDED_BY(lock_);
415 bool pending_encoder_reconfiguration_ GUARDED_BY(lock_); 410 bool pending_encoder_reconfiguration_ GUARDED_BY(lock_);
416 VideoEncoderSettings encoder_settings_ GUARDED_BY(lock_);
417 AllocatedEncoder allocated_encoder_ GUARDED_BY(lock_); 411 AllocatedEncoder allocated_encoder_ GUARDED_BY(lock_);
418 VideoFrameInfo last_frame_info_ GUARDED_BY(lock_); 412 VideoFrameInfo last_frame_info_ GUARDED_BY(lock_);
419 413
420 bool sending_ GUARDED_BY(lock_); 414 bool sending_ GUARDED_BY(lock_);
421 415
422 // The timestamp of the last frame received 416 // The timestamp of the last frame received
423 // Used to generate timestamp for the black frame when source is removed 417 // Used to generate timestamp for the black frame when source is removed
424 int64_t last_frame_timestamp_us_ GUARDED_BY(lock_); 418 int64_t last_frame_timestamp_us_ GUARDED_BY(lock_);
425 }; 419 };
426 420
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 VideoSendParameters send_params_; 559 VideoSendParameters send_params_;
566 VideoOptions default_send_options_; 560 VideoOptions default_send_options_;
567 VideoRecvParameters recv_params_; 561 VideoRecvParameters recv_params_;
568 bool red_disabled_by_remote_side_; 562 bool red_disabled_by_remote_side_;
569 int64_t last_stats_log_ms_; 563 int64_t last_stats_log_ms_;
570 }; 564 };
571 565
572 } // namespace cricket 566 } // namespace cricket
573 567
574 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_ 568 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_
OLDNEW
« no previous file with comments | « webrtc/media/engine/fakewebrtccall.cc ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698