Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(884)

Unified Diff: third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp

Issue 2758063002: Image Capture: cache constraints and append them to MediaStreamTrack.getConstraints() (Closed)
Patch Set: guidou@ TODO()s Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp
diff --git a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp
index 74672df28853710172195b191624a5ed0c87459b..2e1170ba7d5907d5505d6d73f67c89a2fda03337 100644
--- a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp
+++ b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp
@@ -16,7 +16,6 @@
#include "modules/imagecapture/PhotoSettings.h"
#include "modules/mediastream/MediaStreamTrack.h"
#include "modules/mediastream/MediaTrackCapabilities.h"
-#include "modules/mediastream/MediaTrackConstraintSet.h"
#include "platform/WaitableEvent.h"
#include "platform/mojo/MojoHelper.h"
#include "public/platform/InterfaceProvider.h"
@@ -300,12 +299,14 @@ void ImageCapture::setMediaTrackConstraints(
settings->has_white_balance_mode = constraints.hasWhiteBalanceMode() &&
constraints.whiteBalanceMode().isString();
if (settings->has_white_balance_mode) {
+ m_currentConstraints.setWhiteBalanceMode(constraints.whiteBalanceMode());
settings->white_balance_mode =
parseMeteringMode(constraints.whiteBalanceMode().getAsString());
}
settings->has_exposure_mode =
constraints.hasExposureMode() && constraints.exposureMode().isString();
if (settings->has_exposure_mode) {
+ m_currentConstraints.setExposureMode(constraints.exposureMode());
settings->exposure_mode =
parseMeteringMode(constraints.exposureMode().getAsString());
}
@@ -313,6 +314,7 @@ void ImageCapture::setMediaTrackConstraints(
settings->has_focus_mode =
constraints.hasFocusMode() && constraints.focusMode().isString();
if (settings->has_focus_mode) {
+ m_currentConstraints.setFocusMode(constraints.focusMode());
settings->focus_mode =
parseMeteringMode(constraints.focusMode().getAsString());
}
@@ -322,37 +324,53 @@ void ImageCapture::setMediaTrackConstraints(
constraints.hasExposureCompensation() &&
constraints.exposureCompensation().isDouble();
if (settings->has_exposure_compensation) {
+ m_currentConstraints.setExposureCompensation(
+ constraints.exposureCompensation());
settings->exposure_compensation =
constraints.exposureCompensation().getAsDouble();
}
settings->has_color_temperature = constraints.hasColorTemperature() &&
constraints.colorTemperature().isDouble();
- if (settings->has_color_temperature)
+ if (settings->has_color_temperature) {
+ m_currentConstraints.setColorTemperature(constraints.colorTemperature());
settings->color_temperature = constraints.colorTemperature().getAsDouble();
+ }
settings->has_iso = constraints.hasIso() && constraints.iso().isDouble();
- if (settings->has_iso)
+ if (settings->has_iso) {
+ m_currentConstraints.setIso(constraints.iso());
settings->iso = constraints.iso().getAsDouble();
+ }
settings->has_brightness =
constraints.hasBrightness() && constraints.brightness().isDouble();
- if (settings->has_brightness)
+ if (settings->has_brightness) {
+ m_currentConstraints.setBrightness(constraints.brightness());
settings->brightness = constraints.brightness().getAsDouble();
+ }
settings->has_contrast =
constraints.hasContrast() && constraints.contrast().isDouble();
- if (settings->has_contrast)
+ if (settings->has_contrast) {
+ m_currentConstraints.setContrast(constraints.contrast());
settings->contrast = constraints.contrast().getAsDouble();
+ }
settings->has_saturation =
constraints.hasSaturation() && constraints.saturation().isDouble();
- if (settings->has_saturation)
+ if (settings->has_saturation) {
+ m_currentConstraints.setSaturation(constraints.saturation());
settings->saturation = constraints.saturation().getAsDouble();
+ }
settings->has_sharpness =
constraints.hasSharpness() && constraints.sharpness().isDouble();
- if (settings->has_sharpness)
+ if (settings->has_sharpness) {
+ m_currentConstraints.setSharpness(constraints.sharpness());
settings->sharpness = constraints.sharpness().getAsDouble();
+ }
settings->has_zoom = constraints.hasZoom() && constraints.zoom().isDouble();
- if (settings->has_zoom)
+ if (settings->has_zoom) {
+ m_currentConstraints.setZoom(constraints.zoom());
settings->zoom = constraints.zoom().getAsDouble();
+ }
// TODO(mcasas): add |torch| when the mojom interface is updated,
// https://crbug.com/700607.
@@ -364,6 +382,10 @@ void ImageCapture::setMediaTrackConstraints(
wrapPersistent(resolver))));
}
+const MediaTrackConstraintSet& ImageCapture::getMediaTrackConstraints() const {
+ return m_currentConstraints;
+}
+
ImageCapture::ImageCapture(ExecutionContext* context, MediaStreamTrack* track)
: ContextLifecycleObserver(context), m_streamTrack(track) {
DCHECK(m_streamTrack);

Powered by Google App Engine
This is Rietveld 408576698