Commit dcda8c2e authored by François Beaufort's avatar François Beaufort Committed by Commit Bot

Reland "[PTZ] Add macOS support"

This reverts commit 1e32efc6.

Reason for revert:
Some tests used to fail in WebRTC Chromium Mac Tester bot.
Since macOS now supports detecting PTZ-capable cameras with this patch,
it is no longer correct to assume that pan_tilt_zoom_supported() will be
false for every enumerated camera, so let's remove the test named
VideoCaptureDeviceFactoryMacTest.ListDevicesWithNoPanTiltZoomSupport


Original change's description:
> Revert "[PTZ] Add macOS support"
>
> This reverts commit 6fc7c32c.
>
> Reason for revert: crbug.com/1128470
>
> Original change's description:
> > [PTZ] Add macOS support
> >
> > This CL makes sure a USB Webcam device on macOS properly advertises its
> > PTZ support. When supported, the pan, tilt, and zoom controls (ranges
> > and values) are available to websites that user has granted access to.
> >
> > Bug: 934063
> > Change-Id: I9d92d41fba0a6e9d518efb2501355d66cf77998f
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2368596
> > Reviewed-by: François Beaufort <beaufort.francois@gmail.com>
> > Reviewed-by: Guido Urdaneta <guidou@chromium.org>
> > Reviewed-by: Reilly Grant <reillyg@chromium.org>
> > Reviewed-by: Avi Drissman <avi@chromium.org>
> > Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
> > Cr-Commit-Position: refs/heads/master@{#807387}
>
> TBR=avi@chromium.org,beaufort.francois@gmail.com,reillyg@chromium.org,guidou@chromium.org
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: 934063
> Change-Id: I88b1a41d28f5ad34f149f489b22eae6753e051dd
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2418577
> Reviewed-by: Markus Handell <handellm@google.com>
> Commit-Queue: Markus Handell <handellm@google.com>
> Cr-Commit-Position: refs/heads/master@{#808384}

TBR=avi@chromium.org,beaufort.francois@gmail.com,reillyg@chromium.org,guidou@chromium.org,handellm@google.com

# Not skipping CQ checks because this is a reland.

Bug: 934063
Change-Id: I82b757e1b5d3e6e62f520982ac5e4ef216849550
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2420031Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Reviewed-by: default avatarMarkus Handell <handellm@google.com>
Reviewed-by: default avatarFrançois Beaufort <beaufort.francois@gmail.com>
Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/heads/master@{#809727}
parent a1e91012
...@@ -120,10 +120,11 @@ void VideoCaptureDeviceFactoryMac::GetDevicesInfo( ...@@ -120,10 +120,11 @@ void VideoCaptureDeviceFactoryMac::GetDevicesInfo(
: VideoCaptureTransportType::OTHER_TRANSPORT; : VideoCaptureTransportType::OTHER_TRANSPORT;
const std::string model_id = VideoCaptureDeviceMac::GetDeviceModelId( const std::string model_id = VideoCaptureDeviceMac::GetDeviceModelId(
device_id, capture_api, device_transport_type); device_id, capture_api, device_transport_type);
bool pan_tilt_zoom_supported =
VideoCaptureDeviceMac::IsPanTiltZoomSupported(model_id);
VideoCaptureDeviceDescriptor descriptor( VideoCaptureDeviceDescriptor descriptor(
[[[capture_devices valueForKey:key] deviceName] UTF8String], device_id, [[[capture_devices valueForKey:key] deviceName] UTF8String], device_id,
model_id, capture_api, model_id, capture_api, pan_tilt_zoom_supported, device_transport_type);
/*pan_tilt_zoom_supported=*/false, device_transport_type);
if (IsDeviceBlocked(descriptor)) if (IsDeviceBlocked(descriptor))
continue; continue;
devices_info.emplace_back(descriptor); devices_info.emplace_back(descriptor);
......
...@@ -47,21 +47,6 @@ TEST_P(VideoCaptureDeviceFactoryMacTest, ListDevicesAVFoundation) { ...@@ -47,21 +47,6 @@ TEST_P(VideoCaptureDeviceFactoryMacTest, ListDevicesAVFoundation) {
})); }));
} }
TEST_P(VideoCaptureDeviceFactoryMacTest, ListDevicesWithNoPanTiltZoomSupport) {
RunTestCase(base::BindOnce([]() {
VideoCaptureDeviceFactoryMac video_capture_device_factory;
std::vector<VideoCaptureDeviceInfo> devices_info =
GetDevicesInfo(&video_capture_device_factory);
if (devices_info.empty()) {
DVLOG(1) << "No camera available. Exiting test.";
return;
}
for (const auto& device : devices_info)
EXPECT_FALSE(device.descriptor.pan_tilt_zoom_supported());
}));
}
INSTANTIATE_TEST_SUITE_P(, INSTANTIATE_TEST_SUITE_P(,
VideoCaptureDeviceFactoryMacTest, VideoCaptureDeviceFactoryMacTest,
::testing::Values(AVFoundationCaptureV2::kEnabled, ::testing::Values(AVFoundationCaptureV2::kEnabled,
......
...@@ -103,6 +103,8 @@ class VideoCaptureDeviceMac ...@@ -103,6 +103,8 @@ class VideoCaptureDeviceMac
VideoCaptureApi capture_api, VideoCaptureApi capture_api,
VideoCaptureTransportType transport_type); VideoCaptureTransportType transport_type);
static bool IsPanTiltZoomSupported(const std::string& device_model);
private: private:
void SetErrorState(VideoCaptureError error, void SetErrorState(VideoCaptureError error,
const base::Location& from_here, const base::Location& from_here,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment