From 17c64d1c9632c7d7901bf9002af028e5880f8bf4 Mon Sep 17 00:00:00 2001 From: "magjed@webrtc.org" Date: Thu, 19 Mar 2015 10:57:35 +0000 Subject: [PATCH] Revert "Put ViEFrameProviderBase::DeliverFrame back in the critical section in ViECapturer::DeliverI420Frame" This reverts commit r8724. Reason for revert: This was not the cause of the tsan issues. BUG=1128 R=mflodman@webrtc.org, pbos@webrtc.org, tommi@webrtc.org Review URL: https://webrtc-codereview.appspot.com/50389004 Cr-Commit-Position: refs/heads/master@{#8790} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8790 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/video_engine/vie_capturer.cc | 82 ++++++++++++++--------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/webrtc/video_engine/vie_capturer.cc b/webrtc/video_engine/vie_capturer.cc index 68014708d4..608d6049b6 100644 --- a/webrtc/video_engine/vie_capturer.cc +++ b/webrtc/video_engine/vie_capturer.cc @@ -509,56 +509,56 @@ bool ViECapturer::ViECaptureProcess() { } void ViECapturer::DeliverI420Frame(I420VideoFrame* video_frame) { - CriticalSectionScoped cs(effects_and_stats_cs_.get()); - if (video_frame->native_handle() != NULL) { ViEFrameProviderBase::DeliverFrame(video_frame, std::vector()); return; } // Apply image enhancement and effect filter. - if (deflicker_frame_stats_) { - if (image_proc_module_->GetFrameStats(deflicker_frame_stats_, - *video_frame) == 0) { - image_proc_module_->Deflickering(video_frame, deflicker_frame_stats_); - } else { - LOG_F(LS_ERROR) << "Could not get frame stats."; - } - } - if (brightness_frame_stats_) { - if (image_proc_module_->GetFrameStats(brightness_frame_stats_, - *video_frame) == 0) { - int32_t brightness = image_proc_module_->BrightnessDetection( - *video_frame, *brightness_frame_stats_); - - switch (brightness) { - case VideoProcessingModule::kNoWarning: - current_brightness_level_ = Normal; - break; - case VideoProcessingModule::kDarkWarning: - current_brightness_level_ = Dark; - break; - case VideoProcessingModule::kBrightWarning: - current_brightness_level_ = Bright; - break; - default: - break; + { + CriticalSectionScoped cs(effects_and_stats_cs_.get()); + if (deflicker_frame_stats_) { + if (image_proc_module_->GetFrameStats(deflicker_frame_stats_, + *video_frame) == 0) { + image_proc_module_->Deflickering(video_frame, deflicker_frame_stats_); + } else { + LOG_F(LS_ERROR) << "Could not get frame stats."; } } - } - if (effect_filter_) { - size_t length = - CalcBufferSize(kI420, video_frame->width(), video_frame->height()); - rtc::scoped_ptr video_buffer(new uint8_t[length]); - ExtractBuffer(*video_frame, length, video_buffer.get()); - effect_filter_->Transform(length, - video_buffer.get(), - video_frame->ntp_time_ms(), - video_frame->timestamp(), - video_frame->width(), - video_frame->height()); - } + if (brightness_frame_stats_) { + if (image_proc_module_->GetFrameStats(brightness_frame_stats_, + *video_frame) == 0) { + int32_t brightness = image_proc_module_->BrightnessDetection( + *video_frame, *brightness_frame_stats_); + switch (brightness) { + case VideoProcessingModule::kNoWarning: + current_brightness_level_ = Normal; + break; + case VideoProcessingModule::kDarkWarning: + current_brightness_level_ = Dark; + break; + case VideoProcessingModule::kBrightWarning: + current_brightness_level_ = Bright; + break; + default: + break; + } + } + } + if (effect_filter_) { + size_t length = + CalcBufferSize(kI420, video_frame->width(), video_frame->height()); + rtc::scoped_ptr video_buffer(new uint8_t[length]); + ExtractBuffer(*video_frame, length, video_buffer.get()); + effect_filter_->Transform(length, + video_buffer.get(), + video_frame->ntp_time_ms(), + video_frame->timestamp(), + video_frame->width(), + video_frame->height()); + } + } // Deliver the captured frame to all observers (channels, renderer or file). ViEFrameProviderBase::DeliverFrame(video_frame, std::vector()); }