| Index: webrtc/modules/desktop_capture/window_capturer_mac.mm
|
| diff --git a/webrtc/modules/desktop_capture/window_capturer_mac.mm b/webrtc/modules/desktop_capture/window_capturer_mac.mm
|
| index ac5fdb6bc1abd003873b6cee4579816f5e55ff5f..cbdf14be6fce24671d5518094cfd45320158823e 100644
|
| --- a/webrtc/modules/desktop_capture/window_capturer_mac.mm
|
| +++ b/webrtc/modules/desktop_capture/window_capturer_mac.mm
|
| @@ -32,7 +32,7 @@ namespace {
|
| // Returns true if the window exists.
|
| bool IsWindowValid(CGWindowID id) {
|
| CFArrayRef window_id_array =
|
| - CFArrayCreate(NULL, reinterpret_cast<const void **>(&id), 1, NULL);
|
| + CFArrayCreate(nullptr, reinterpret_cast<const void**>(&id), 1, nullptr);
|
| CFArrayRef window_array =
|
| CGWindowListCreateDescriptionFromArray(window_id_array);
|
| bool valid = window_array && CFArrayGetCount(window_array);
|
| @@ -58,10 +58,10 @@ class WindowCapturerMac : public WindowCapturer {
|
| void Capture(const DesktopRegion& region) override;
|
|
|
| private:
|
| - Callback* callback_;
|
| + Callback* callback_ = nullptr;
|
|
|
| // The window being captured.
|
| - CGWindowID window_id_;
|
| + CGWindowID window_id_ = 0;
|
|
|
| rtc::scoped_refptr<FullScreenChromeWindowDetector>
|
| full_screen_chrome_window_detector_;
|
| @@ -69,15 +69,12 @@ class WindowCapturerMac : public WindowCapturer {
|
| RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerMac);
|
| };
|
|
|
| -WindowCapturerMac::WindowCapturerMac(rtc::scoped_refptr<
|
| - FullScreenChromeWindowDetector> full_screen_chrome_window_detector)
|
| - : callback_(NULL),
|
| - window_id_(0),
|
| - full_screen_chrome_window_detector_(full_screen_chrome_window_detector) {
|
| -}
|
| +WindowCapturerMac::WindowCapturerMac(
|
| + rtc::scoped_refptr<FullScreenChromeWindowDetector>
|
| + full_screen_chrome_window_detector)
|
| + : full_screen_chrome_window_detector_(full_screen_chrome_window_detector) {}
|
|
|
| -WindowCapturerMac::~WindowCapturerMac() {
|
| -}
|
| +WindowCapturerMac::~WindowCapturerMac() {}
|
|
|
| bool WindowCapturerMac::GetWindowList(WindowList* windows) {
|
| // Only get on screen, non-desktop windows.
|
| @@ -142,11 +139,11 @@ bool WindowCapturerMac::BringSelectedWindowToFront() {
|
| CGWindowID ids[1];
|
| ids[0] = window_id_;
|
| CFArrayRef window_id_array =
|
| - CFArrayCreate(NULL, reinterpret_cast<const void **>(&ids), 1, NULL);
|
| + CFArrayCreate(nullptr, reinterpret_cast<const void**>(&ids), 1, nullptr);
|
|
|
| CFArrayRef window_array =
|
| CGWindowListCreateDescriptionFromArray(window_id_array);
|
| - if (window_array == NULL || 0 == CFArrayGetCount(window_array)) {
|
| + if (!window_array || 0 == CFArrayGetCount(window_array)) {
|
| // Could not find the window. It might have been closed.
|
| LOG(LS_INFO) << "Window not found";
|
| CFRelease(window_id_array);
|
| @@ -181,7 +178,7 @@ void WindowCapturerMac::Start(Callback* callback) {
|
|
|
| void WindowCapturerMac::Capture(const DesktopRegion& region) {
|
| if (!IsWindowValid(window_id_)) {
|
| - callback_->OnCaptureCompleted(NULL);
|
| + callback_->OnCaptureResult(Result::ERROR_PERMANENT, nullptr);
|
| return;
|
| }
|
|
|
| @@ -199,7 +196,7 @@ void WindowCapturerMac::Capture(const DesktopRegion& region) {
|
| on_screen_window, kCGWindowImageBoundsIgnoreFraming);
|
|
|
| if (!window_image) {
|
| - callback_->OnCaptureCompleted(NULL);
|
| + callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr);
|
| return;
|
| }
|
|
|
| @@ -207,7 +204,7 @@ void WindowCapturerMac::Capture(const DesktopRegion& region) {
|
| if (bits_per_pixel != 32) {
|
| LOG(LS_ERROR) << "Unsupported window image depth: " << bits_per_pixel;
|
| CFRelease(window_image);
|
| - callback_->OnCaptureCompleted(NULL);
|
| + callback_->OnCaptureResult(Result::ERROR_PERMANENT, nullptr);
|
| return;
|
| }
|
|
|
| @@ -215,8 +212,8 @@ void WindowCapturerMac::Capture(const DesktopRegion& region) {
|
| int height = CGImageGetHeight(window_image);
|
| CGDataProviderRef provider = CGImageGetDataProvider(window_image);
|
| CFDataRef cf_data = CGDataProviderCopyData(provider);
|
| - DesktopFrame* frame = new BasicDesktopFrame(
|
| - DesktopSize(width, height));
|
| + std::unique_ptr<DesktopFrame> frame(
|
| + new BasicDesktopFrame(DesktopSize(width, height)));
|
|
|
| int src_stride = CGImageGetBytesPerRow(window_image);
|
| const uint8_t* src_data = CFDataGetBytePtr(cf_data);
|
| @@ -231,7 +228,7 @@ void WindowCapturerMac::Capture(const DesktopRegion& region) {
|
| frame->mutable_updated_region()->SetRect(
|
| DesktopRect::MakeSize(frame->size()));
|
|
|
| - callback_->OnCaptureCompleted(frame);
|
| + callback_->OnCaptureResult(Result::SUCCESS, std::move(frame));
|
|
|
| if (full_screen_chrome_window_detector_)
|
| full_screen_chrome_window_detector_->UpdateWindowListIfNeeded(window_id_);
|
|
|