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

Side by Side Diff: webrtc/media/base/videocapturer.cc

Issue 1687273002: Revert of Make cricket::VideoCapturer implement VideoSourceInterface (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: 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
« no previous file with comments | « webrtc/media/base/videocapturer.h ('k') | webrtc/media/base/videocapturer_unittest.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) 2010 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2010 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 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 black_frame_count_down_ = kNumBlackFramesOnMute; 219 black_frame_count_down_ = kNumBlackFramesOnMute;
220 // Following frames will be overritten with black, then the camera will be 220 // Following frames will be overritten with black, then the camera will be
221 // paused. 221 // paused.
222 return true; 222 return true;
223 } 223 }
224 // Start the camera. 224 // Start the camera.
225 thread_->Clear(this, MSG_DO_PAUSE); 225 thread_->Clear(this, MSG_DO_PAUSE);
226 return Pause(false); 226 return Pause(false);
227 } 227 }
228 228
229 // Note that the last caller decides whether rotation should be applied if there
230 // are multiple send streams using the same camera.
231 bool VideoCapturer::SetApplyRotation(bool enable) {
232 apply_rotation_ = enable;
233 if (frame_factory_) {
234 frame_factory_->SetApplyRotation(apply_rotation_);
235 }
236 return true;
237 }
238
229 void VideoCapturer::SetSupportedFormats( 239 void VideoCapturer::SetSupportedFormats(
230 const std::vector<VideoFormat>& formats) { 240 const std::vector<VideoFormat>& formats) {
231 supported_formats_ = formats; 241 supported_formats_ = formats;
232 UpdateFilteredSupportedFormats(); 242 UpdateFilteredSupportedFormats();
233 } 243 }
234 244
235 bool VideoCapturer::GetBestCaptureFormat(const VideoFormat& format, 245 bool VideoCapturer::GetBestCaptureFormat(const VideoFormat& format,
236 VideoFormat* best_format) { 246 VideoFormat* best_format) {
237 // TODO(fbarchard): Directly support max_format. 247 // TODO(fbarchard): Directly support max_format.
238 UpdateFilteredSupportedFormats(); 248 UpdateFilteredSupportedFormats();
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 VideoFormat* last_captured_frame_format) { 316 VideoFormat* last_captured_frame_format) {
307 rtc::CritScope cs(&frame_stats_crit_); 317 rtc::CritScope cs(&frame_stats_crit_);
308 GetVariableSnapshot(adapt_frame_drops_data_, adapt_drops_stats); 318 GetVariableSnapshot(adapt_frame_drops_data_, adapt_drops_stats);
309 GetVariableSnapshot(frame_time_data_, frame_time_stats); 319 GetVariableSnapshot(frame_time_data_, frame_time_stats);
310 *last_captured_frame_format = last_captured_frame_format_; 320 *last_captured_frame_format = last_captured_frame_format_;
311 321
312 adapt_frame_drops_data_.Reset(); 322 adapt_frame_drops_data_.Reset();
313 frame_time_data_.Reset(); 323 frame_time_data_.Reset();
314 } 324 }
315 325
316 void VideoCapturer::RemoveSink(
317 rtc::VideoSinkInterface<cricket::VideoFrame>* sink) {
318 broadcaster_.RemoveSink(sink);
319 }
320
321 void VideoCapturer::AddOrUpdateSink(
322 rtc::VideoSinkInterface<cricket::VideoFrame>* sink,
323 const rtc::VideoSinkWants& wants) {
324 broadcaster_.AddOrUpdateSink(sink, wants);
325 OnSinkWantsChanged(broadcaster_.wants());
326 }
327
328 void VideoCapturer::OnSinkWantsChanged(const rtc::VideoSinkWants& wants) {
329 apply_rotation_ = wants.rotation_applied;
330 if (frame_factory_) {
331 frame_factory_->SetApplyRotation(apply_rotation_);
332 }
333 }
334
335 void VideoCapturer::OnFrameCaptured(VideoCapturer*, 326 void VideoCapturer::OnFrameCaptured(VideoCapturer*,
336 const CapturedFrame* captured_frame) { 327 const CapturedFrame* captured_frame) {
337 if (muted_) { 328 if (muted_) {
338 if (black_frame_count_down_ == 0) { 329 if (black_frame_count_down_ == 0) {
339 thread_->Post(this, MSG_DO_PAUSE, NULL); 330 thread_->Post(this, MSG_DO_PAUSE, NULL);
340 } else { 331 } else {
341 --black_frame_count_down_; 332 --black_frame_count_down_;
342 } 333 }
343 } 334 }
344 335
345 if (!broadcaster_.frame_wanted()) { 336 if (SignalVideoFrame.is_empty()) {
346 return; 337 return;
347 } 338 }
348 339
349 // Use a temporary buffer to scale 340 // Use a temporary buffer to scale
350 rtc::scoped_ptr<uint8_t[]> scale_buffer; 341 rtc::scoped_ptr<uint8_t[]> scale_buffer;
351 342
352 if (IsScreencast()) { 343 if (IsScreencast()) {
353 int scaled_width, scaled_height; 344 int scaled_width, scaled_height;
354 int desired_screencast_fps = capture_format_.get() ? 345 int desired_screencast_fps = capture_format_.get() ?
355 VideoFormat::IntervalToFps(capture_format_->interval) : 346 VideoFormat::IntervalToFps(capture_format_->interval) :
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 LOG(LS_ERROR) << "Couldn't convert to I420! " 509 LOG(LS_ERROR) << "Couldn't convert to I420! "
519 << "From " << ToString(captured_frame) << " To " 510 << "From " << ToString(captured_frame) << " To "
520 << cropped_width << " x " << cropped_height; 511 << cropped_width << " x " << cropped_height;
521 return; 512 return;
522 } 513 }
523 514
524 if (muted_) { 515 if (muted_) {
525 // TODO(pthatcher): Use frame_factory_->CreateBlackFrame() instead. 516 // TODO(pthatcher): Use frame_factory_->CreateBlackFrame() instead.
526 adapted_frame->SetToBlack(); 517 adapted_frame->SetToBlack();
527 } 518 }
528 broadcaster_.OnFrame(*adapted_frame.get()); 519 SignalVideoFrame(this, adapted_frame.get());
520
529 UpdateStats(captured_frame); 521 UpdateStats(captured_frame);
530 } 522 }
531 523
532 void VideoCapturer::SetCaptureState(CaptureState state) { 524 void VideoCapturer::SetCaptureState(CaptureState state) {
533 if (state == capture_state_) { 525 if (state == capture_state_) {
534 // Don't trigger a state changed callback if the state hasn't changed. 526 // Don't trigger a state changed callback if the state hasn't changed.
535 return; 527 return;
536 } 528 }
537 StateChangeParams* state_params = new StateChangeParams(state); 529 StateChangeParams* state_params = new StateChangeParams(state);
538 capture_state_ = state; 530 capture_state_ = state;
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 void VideoCapturer::GetVariableSnapshot( 702 void VideoCapturer::GetVariableSnapshot(
711 const rtc::RollingAccumulator<T>& data, 703 const rtc::RollingAccumulator<T>& data,
712 VariableInfo<T>* stats) { 704 VariableInfo<T>* stats) {
713 stats->max_val = data.ComputeMax(); 705 stats->max_val = data.ComputeMax();
714 stats->mean = data.ComputeMean(); 706 stats->mean = data.ComputeMean();
715 stats->min_val = data.ComputeMin(); 707 stats->min_val = data.ComputeMin();
716 stats->variance = data.ComputeVariance(); 708 stats->variance = data.ComputeVariance();
717 } 709 }
718 710
719 } // namespace cricket 711 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/media/base/videocapturer.h ('k') | webrtc/media/base/videocapturer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698