| Index: webrtc/modules/video_processing/frame_preprocessor.cc
|
| diff --git a/webrtc/modules/video_processing/frame_preprocessor.cc b/webrtc/modules/video_processing/frame_preprocessor.cc
|
| index fd0d0efb97d2a713ba45b191e198ace584bc763c..c2042148a2afc07029351790d923eed0e1a46df0 100644
|
| --- a/webrtc/modules/video_processing/frame_preprocessor.cc
|
| +++ b/webrtc/modules/video_processing/frame_preprocessor.cc
|
| @@ -23,6 +23,7 @@ VPMFramePreprocessor::VPMFramePreprocessor()
|
| ca_ = new VPMContentAnalysis(true);
|
| vd_ = new VPMVideoDecimator();
|
| EnableDenosing(false);
|
| + denoised_frame_toggle_ = 0;
|
| }
|
|
|
| VPMFramePreprocessor::~VPMFramePreprocessor() {
|
| @@ -116,9 +117,18 @@ const VideoFrame* VPMFramePreprocessor::PreprocessFrame(
|
|
|
| const VideoFrame* current_frame = &frame;
|
| if (denoiser_) {
|
| - denoiser_->DenoiseFrame(*current_frame, &denoised_frame_,
|
| - &denoised_frame_prev_, 0);
|
| - current_frame = &denoised_frame_;
|
| + VideoFrame* denoised_frame = &denoised_frame_[0];
|
| + VideoFrame* denoised_frame_prev = &denoised_frame_[1];
|
| + // Swap the buffer to save one memcpy in DenoiseFrame.
|
| + if (denoised_frame_toggle_) {
|
| + denoised_frame = &denoised_frame_[1];
|
| + denoised_frame_prev = &denoised_frame_[0];
|
| + }
|
| + // Invert the flag.
|
| + denoised_frame_toggle_ ^= 1;
|
| + denoiser_->DenoiseFrame(*current_frame, denoised_frame, denoised_frame_prev,
|
| + true);
|
| + current_frame = denoised_frame;
|
| }
|
|
|
| if (spatial_resampler_->ApplyResample(current_frame->width(),
|
|
|