diff --git a/modules/desktop_capture/win/window_capturer_win_gdi.cc b/modules/desktop_capture/win/window_capturer_win_gdi.cc index 22b0c44aeb..6fd3a4db6e 100644 --- a/modules/desktop_capture/win/window_capturer_win_gdi.cc +++ b/modules/desktop_capture/win/window_capturer_win_gdi.cc @@ -160,17 +160,17 @@ void WindowCapturerWinGdi::CaptureFrame() { int64_t capture_start_time_nanos = rtc::TimeNanos(); CaptureResults results = CaptureFrame(/*capture_owned_windows*/ true); - - if (results.frame) { - int capture_time_ms = (rtc::TimeNanos() - capture_start_time_nanos) / - rtc::kNumNanosecsPerMillisec; - RTC_HISTOGRAM_COUNTS_1000( - "WebRTC.DesktopCapture.Win.WindowGdiCapturerFrameTime", - capture_time_ms); - results.frame->set_capture_time_ms(capture_time_ms); - results.frame->set_capturer_id(DesktopCapturerId::kWindowCapturerWinGdi); + if (!results.frame) { + callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr); + return; } + int capture_time_ms = (rtc::TimeNanos() - capture_start_time_nanos) / + rtc::kNumNanosecsPerMillisec; + RTC_HISTOGRAM_COUNTS_1000( + "WebRTC.DesktopCapture.Win.WindowGdiCapturerFrameTime", capture_time_ms); + results.frame->set_capture_time_ms(capture_time_ms); + results.frame->set_capturer_id(DesktopCapturerId::kWindowCapturerWinGdi); callback_->OnCaptureResult(results.result, std::move(results.frame)); }