Commit a893356e authored by Francois Beaufort's avatar Francois Beaufort Committed by Commit Bot

[PTZ] Handle PTZ when processing constraints

This CL makes sure an OverConstrainedError is returned in getUserMedia
if constraints require PTZ and system does not support PTZ.

Bug: 934063
Change-Id: Ia17167bce8eac0d45f4c97d30edbebb032fa55d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2247820Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/heads/master@{#779974}
parent 0d911112
...@@ -114,14 +114,20 @@ VideoCaptureSettings::VideoCaptureSettings( ...@@ -114,14 +114,20 @@ VideoCaptureSettings::VideoCaptureSettings(
base::Optional<bool> noise_reduction, base::Optional<bool> noise_reduction,
const VideoTrackAdapterSettings& track_adapter_settings, const VideoTrackAdapterSettings& track_adapter_settings,
base::Optional<double> min_frame_rate, base::Optional<double> min_frame_rate,
base::Optional<double> max_frame_rate) base::Optional<double> max_frame_rate,
base::Optional<double> pan,
base::Optional<double> tilt,
base::Optional<double> zoom)
: failed_constraint_name_(nullptr), : failed_constraint_name_(nullptr),
device_id_(std::move(device_id)), device_id_(std::move(device_id)),
capture_params_(capture_params), capture_params_(capture_params),
noise_reduction_(noise_reduction), noise_reduction_(noise_reduction),
track_adapter_settings_(track_adapter_settings), track_adapter_settings_(track_adapter_settings),
min_frame_rate_(min_frame_rate), min_frame_rate_(min_frame_rate),
max_frame_rate_(max_frame_rate) { max_frame_rate_(max_frame_rate),
pan_(pan),
tilt_(tilt),
zoom_(zoom) {
DCHECK(!min_frame_rate || DCHECK(!min_frame_rate ||
*min_frame_rate_ <= capture_params.requested_format.frame_rate); *min_frame_rate_ <= capture_params.requested_format.frame_rate);
DCHECK(!track_adapter_settings.target_size() || DCHECK(!track_adapter_settings.target_size() ||
......
...@@ -69,7 +69,10 @@ class MODULES_EXPORT VideoCaptureSettings { ...@@ -69,7 +69,10 @@ class MODULES_EXPORT VideoCaptureSettings {
base::Optional<bool> noise_reduction_, base::Optional<bool> noise_reduction_,
const VideoTrackAdapterSettings& track_adapter_settings, const VideoTrackAdapterSettings& track_adapter_settings,
base::Optional<double> min_frame_rate, base::Optional<double> min_frame_rate,
base::Optional<double> max_frame_rate); base::Optional<double> max_frame_rate,
base::Optional<double> pan = base::nullopt,
base::Optional<double> tilt = base::nullopt,
base::Optional<double> zoom = base::nullopt);
VideoCaptureSettings(const VideoCaptureSettings& other); VideoCaptureSettings(const VideoCaptureSettings& other);
VideoCaptureSettings& operator=(const VideoCaptureSettings& other); VideoCaptureSettings& operator=(const VideoCaptureSettings& other);
...@@ -127,6 +130,18 @@ class MODULES_EXPORT VideoCaptureSettings { ...@@ -127,6 +130,18 @@ class MODULES_EXPORT VideoCaptureSettings {
DCHECK(HasValue()); DCHECK(HasValue());
return max_frame_rate_; return max_frame_rate_;
} }
const base::Optional<double>& pan() const {
DCHECK(HasValue());
return pan_;
}
const base::Optional<double>& tilt() const {
DCHECK(HasValue());
return tilt_;
}
const base::Optional<double>& zoom() const {
DCHECK(HasValue());
return zoom_;
}
private: private:
const char* failed_constraint_name_; const char* failed_constraint_name_;
...@@ -136,6 +151,9 @@ class MODULES_EXPORT VideoCaptureSettings { ...@@ -136,6 +151,9 @@ class MODULES_EXPORT VideoCaptureSettings {
VideoTrackAdapterSettings track_adapter_settings_; VideoTrackAdapterSettings track_adapter_settings_;
base::Optional<double> min_frame_rate_; base::Optional<double> min_frame_rate_;
base::Optional<double> max_frame_rate_; base::Optional<double> max_frame_rate_;
base::Optional<double> pan_;
base::Optional<double> tilt_;
base::Optional<double> zoom_;
}; };
// This class represents the output the SelectSettings algorithm for audio // This class represents the output the SelectSettings algorithm for audio
......
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