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 100cdb519ab349a7cfbf6fa00f4a42d8f8fd6ead..1d21340b31f204a47911690bf91c764f9863e82a 100644 |
--- a/webrtc/modules/video_processing/frame_preprocessor.cc |
+++ b/webrtc/modules/video_processing/frame_preprocessor.cc |
@@ -96,18 +96,20 @@ const VideoFrame* VPMFramePreprocessor::PreprocessFrame( |
const VideoFrame* current_frame = &frame; |
if (denoiser_) { |
- VideoFrame* denoised_frame = &denoised_frame_[0]; |
- VideoFrame* denoised_frame_prev = &denoised_frame_[1]; |
+ rtc::scoped_refptr<I420Buffer>* denoised_frame = &denoised_buffer_[0]; |
+ rtc::scoped_refptr<I420Buffer>* denoised_frame_prev = &denoised_buffer_[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]; |
+ denoised_frame = &denoised_buffer_[1]; |
+ denoised_frame_prev = &denoised_buffer_[0]; |
} |
// Invert the flag. |
denoised_frame_toggle_ ^= 1; |
- denoiser_->DenoiseFrame(*current_frame, denoised_frame, denoised_frame_prev, |
- true); |
- current_frame = denoised_frame; |
+ denoiser_->DenoiseFrame(current_frame->video_frame_buffer(), denoised_frame, |
+ denoised_frame_prev, true); |
+ denoised_frame_.ShallowCopy(*current_frame); |
+ denoised_frame_.set_video_frame_buffer(*denoised_frame); |
+ current_frame = &denoised_frame_; |
} |
if (spatial_resampler_->ApplyResample(current_frame->width(), |