New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 823316 link

Starred by 4 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Chrome , Mac
Pri: 3
Type: Feature



Sign in to add a comment

Add support for |exposureTime| to image capture

Project Member Reported by mcasas@chromium.org, Mar 19 2018

Issue description

Add support for manual exposure time config to image capture, which 
was landed in [1], see [2].

[1] https://github.com/w3c/mediacapture-image/issues/199
[2] https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section
 
Owner: rijubrat...@intel.com
Status: Assigned (was: Available)
Status: Started (was: Assigned)
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 18

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a2d50d6a718a2a18dd4f7a53fb695baab799c312

commit a2d50d6a718a2a18dd4f7a53fb695baab799c312
Author: Rijubrata Bhaumik <rijubrata.bhaumik@intel.com>
Date: Tue Sep 18 05:23:21 2018

[Image Capture] Add exposureTime constraint.

This CL adds exposureTime to ImageCapture API.
Spec discussion:
https://github.com/w3c/mediacapture-image/issues/199
This was added to the spec in
https://github.com/w3c/mediacapture-image/pull/200

Layout tests and mock tests are updated to support the same.
Support for Android is added.

TEST= run the demo in https://codepen.io/rijuB/pen/eKwLXB
use slider to change exposureTime.

BUG=823316

Intent to Implement and Ship discussions:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ls3wQSoHOUY

Change-Id: Ic3a546d734c02df31cd8ca08ece01f006ae8d906
Reviewed-on: https://chromium-review.googlesource.com/1136439
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Rijubrata Bhaumik <rijubrata.bhaumik@intel.com>
Cr-Commit-Position: refs/heads/master@{#591946}
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/mojom/image_capture.mojom
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/mojom/image_capture_types.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/android/java/src/org/chromium/media/PhotoCapabilities.java
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/android/java/src/org/chromium/media/VideoCapture.java
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera2.java
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/android/photo_capabilities.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/android/photo_capabilities.h
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/android/video_capture_device_android.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/fake_video_capture_device.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/fake_video_capture_device_unittest.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/media/capture/video/file_video_capture_device.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/ImageCapture-MediaTrackSupportedConstraints.html
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.html
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/MediaStreamTrack-applyConstraints-reject.html
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/MediaStreamTrack-applyConstraints.html
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/MediaStreamTrack-getCapabilities.html
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/MediaStreamTrack-getConstraints-fast.html
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/MediaStreamTrack-getSettings.html
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/image_capture.mojom.js
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/mock-imagecapture.js
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/blink/renderer/modules/imagecapture/image_capture.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/blink/renderer/modules/mediastream/media_stream_track.cc
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/blink/renderer/modules/mediastream/media_track_settings.idl
[modify] https://crrev.com/a2d50d6a718a2a18dd4f7a53fb695baab799c312/third_party/blink/renderer/modules/mediastream/media_track_supported_constraints.idl

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/88dbe4b8fe5b54af0b19f67e761febe4a3ea435c

commit 88dbe4b8fe5b54af0b19f67e761febe4a3ea435c
Author: Christian Fremerey <chfremer@chromium.org>
Date: Wed Sep 19 00:07:37 2018

[Video Capture] Replace PhotoState::New() with CreateEmptyPhotoState()

This is to prevent ending up with uninitialized fields whenever new fields
are added to mojom.PhotoState.

This fixes errors on webrtc Linux Tester bot.

TBR=mcasas@chromium.org

Bug: 823316
Change-Id: I6de6bdd49d4f2161868c98b4a31b07fdf18ee7ab
Reviewed-on: https://chromium-review.googlesource.com/1232393
Reviewed-by: Christian Fremerey <chfremer@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Christian Fremerey <chfremer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592276}
[modify] https://crrev.com/88dbe4b8fe5b54af0b19f67e761febe4a3ea435c/media/capture/video/android/BUILD.gn
[modify] https://crrev.com/88dbe4b8fe5b54af0b19f67e761febe4a3ea435c/media/capture/video/android/video_capture_device_android.cc
[modify] https://crrev.com/88dbe4b8fe5b54af0b19f67e761febe4a3ea435c/media/capture/video/fake_video_capture_device.cc
[modify] https://crrev.com/88dbe4b8fe5b54af0b19f67e761febe4a3ea435c/media/capture/video/linux/v4l2_capture_delegate.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6c7e8bd7128262736e1f0936c9bbb870b741286

commit e6c7e8bd7128262736e1f0936c9bbb870b741286
Author: Rijubrata Bhaumik <rijubrata.bhaumik@intel.com>
Date: Mon Oct 29 13:57:05 2018

[Image Capture] Wire |exposureTime| in Linux/CrOS.

Tested using a brio-stream-4k-hd-webcam,
where we could change the exposure time in manual mode.

command line:
v4l2-ctl -d 1 --set-ctrl exposure_auto=1
v4l2-ctl -d 1 --set-ctrl exposure_absolute=100

GUI:
guvcview  --device=/dev/video1

TEST= run the demo in https://codepen.io/rijuB/pen/gjapBo
use slider to change exposureTime.

BUG=823316

Intent to Implement and Ship discussions:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ls3wQSoHOUY

Change-Id: I2c4faaf8bd475fedefd267aaf83e6c06f55e5afd
Reviewed-on: https://chromium-review.googlesource.com/c/1243288
Commit-Queue: Rijubrata Bhaumik <rijubrata.bhaumik@intel.com>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603482}
[modify] https://crrev.com/e6c7e8bd7128262736e1f0936c9bbb870b741286/content/browser/webrtc/webrtc_image_capture_browsertest.cc
[modify] https://crrev.com/e6c7e8bd7128262736e1f0936c9bbb870b741286/content/test/data/media/image_capture_test.html
[modify] https://crrev.com/e6c7e8bd7128262736e1f0936c9bbb870b741286/media/capture/video/fake_video_capture_device.cc
[modify] https://crrev.com/e6c7e8bd7128262736e1f0936c9bbb870b741286/media/capture/video/fake_video_capture_device.h
[modify] https://crrev.com/e6c7e8bd7128262736e1f0936c9bbb870b741286/media/capture/video/fake_video_capture_device_factory.cc
[modify] https://crrev.com/e6c7e8bd7128262736e1f0936c9bbb870b741286/media/capture/video/fake_video_capture_device_unittest.cc
[modify] https://crrev.com/e6c7e8bd7128262736e1f0936c9bbb870b741286/media/capture/video/linux/v4l2_capture_delegate.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/656eb71123bf0620dca0c8cc6aeba823350d4b2d

commit 656eb71123bf0620dca0c8cc6aeba823350d4b2d
Author: Rijubrata Bhaumik <rijubrata.bhaumik@intel.com>
Date: Wed Oct 31 07:20:57 2018

[Image Capture] No need to use exposure_mode in FakeVideoCaptureDevice.

if |exposure_time| >= 0.0f, then we assume that |exposure_mode| is
manual. FakeVideoCaptureDevice is an internal class, so such assumptions
are reasonable.

Suggested by Miguel at https://chromium-review.googlesource.com/c/chromium/src/+/1243288/6/media/capture/video/fake_video_capture_device.h#107

BUG=823316

Change-Id: I8e112be76854da0f2c4343a8d62a5619e3aa79e4
Reviewed-on: https://chromium-review.googlesource.com/c/1307397
Commit-Queue: Rijubrata Bhaumik <rijubrata.bhaumik@intel.com>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604177}
[modify] https://crrev.com/656eb71123bf0620dca0c8cc6aeba823350d4b2d/media/capture/video/fake_video_capture_device.cc
[modify] https://crrev.com/656eb71123bf0620dca0c8cc6aeba823350d4b2d/media/capture/video/fake_video_capture_device.h
[modify] https://crrev.com/656eb71123bf0620dca0c8cc6aeba823350d4b2d/media/capture/video/fake_video_capture_device_factory.cc

Sign in to add a comment