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

Unified Diff: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.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
« no previous file with comments | « third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
index a93e097575f7b153eadf2a430bede2cdb5fa05ec..2fd6badd389eea03400bf0894138b04807cfd9f7 100644
--- a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
+++ b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
@@ -216,10 +216,6 @@ MediaStreamTrack* MediaStreamTrack::clone(ScriptState* scriptState) {
return clonedTrack;
}
-void MediaStreamTrack::getConstraints(MediaTrackConstraints& constraints) {
- MediaConstraintsImpl::convertConstraints(m_constraints, constraints);
-}
-
void MediaStreamTrack::setConstraints(const WebMediaConstraints& constraints) {
m_constraints = constraints;
}
@@ -229,18 +225,43 @@ void MediaStreamTrack::getCapabilities(MediaTrackCapabilities& capabilities) {
capabilities = m_imageCapture->getMediaTrackCapabilities();
}
+void MediaStreamTrack::getConstraints(MediaTrackConstraints& constraints) {
+ MediaConstraintsImpl::convertConstraints(m_constraints, constraints);
+
+ if (!m_imageCapture)
+ return;
+ HeapVector<MediaTrackConstraintSet> vector;
+ if (constraints.hasAdvanced())
+ vector = constraints.advanced();
+ // TODO(mcasas): consider consolidating this code in MediaContraintsImpl.
+ auto imageCaptureConstraints = m_imageCapture->getMediaTrackConstraints();
+ // TODO(mcasas): add |torch|, https://crbug.com/700607.
+ if (imageCaptureConstraints.hasWhiteBalanceMode() ||
+ imageCaptureConstraints.hasExposureMode() ||
+ imageCaptureConstraints.hasFocusMode() ||
+ imageCaptureConstraints.hasExposureCompensation() ||
+ imageCaptureConstraints.hasColorTemperature() ||
+ imageCaptureConstraints.hasIso() ||
+ imageCaptureConstraints.hasBrightness() ||
+ imageCaptureConstraints.hasContrast() ||
+ imageCaptureConstraints.hasSaturation() ||
+ imageCaptureConstraints.hasSharpness() ||
+ imageCaptureConstraints.hasZoom()) {
+ // Add image capture constraints, if any, as another entry to advanced().
+ vector.emplace_back(imageCaptureConstraints);
+ constraints.setAdvanced(vector);
+ }
+}
+
void MediaStreamTrack::getSettings(MediaTrackSettings& settings) {
WebMediaStreamTrack::Settings platformSettings;
m_component->getSettings(platformSettings);
- if (platformSettings.hasFrameRate()) {
+ if (platformSettings.hasFrameRate())
settings.setFrameRate(platformSettings.frameRate);
- }
- if (platformSettings.hasWidth()) {
+ if (platformSettings.hasWidth())
settings.setWidth(platformSettings.width);
- }
- if (platformSettings.hasHeight()) {
+ if (platformSettings.hasHeight())
settings.setHeight(platformSettings.height);
- }
if (RuntimeEnabledFeatures::mediaCaptureDepthEnabled() &&
m_component->source()->type() == MediaStreamSource::TypeVideo) {
if (platformSettings.hasVideoKind())
@@ -296,6 +317,7 @@ ScriptPromise MediaStreamTrack::applyConstraints(
return promise;
}
+ // TODO(mcasas): support more advanced constraints, https://crbug.com/700607.
m_imageCapture->setMediaTrackConstraints(resolver, constraints.advanced()[0]);
return promise;
}
« no previous file with comments | « third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698