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
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
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
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
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
Comment 1 by rijubrat...@intel.com
, Jul 4Status: Assigned (was: Available)