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

Issue 768887 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Feature



Sign in to add a comment

Add back support for v4l2 MPLANE devices

Reported by zon...@gmail.com, Sep 26 2017

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36

Steps to reproduce the problem:
Start Chromium on a Qualcomm embedded hardware and try to access the v4l2 cameras as HTML5 media objects.

What is the expected behavior?
The cameras start streaming video.

What went wrong?
Cameras on Qualcomm embedded hardware are exposed as multiplanar devices (V4L2_CAP_VIDEO_CAPTURE_MPLANE / V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE).

There was a change set that added support for this type of devices back in 2014 ( Issue 441836 ). However, this support broke by a later change set ( Issue 585519 ) that purely aimed for a simple cleanup but caused a severe regression instead, most probably without even noticing because the change log didn't mention the fact.

This is clearly a regression that not only affects standalone Chromium but also frameworks that depend on it, for instance, QtWebEngine.

Did this work before? Yes 50.0.2654.2

Chrome version: 61.0.3163.91  Channel: n/a
OS Version: 4.9
Flash Version:
 
Components: Internals>Media
Labels: -Type-Bug-Regression Type-Feature

Comment 2 by hdodda@chromium.org, Sep 27 2017

Cc: hdodda@chromium.org
Labels: M-63
Status: Untriaged (was: Unconfirmed)
Marking it as untraiged as this is a feature request, so that it would get addressed by respective team.

Thanks!
Components: -Internals>Media Blink>GetUserMedia
give to GetUserMedia team since it is (  Issue 585519  ) caused this bug.
Components: -Blink>GetUserMedia Blink>GetUserMedia>Webcam
Cc: chfremer@chromium.org
Status: Available (was: Untriaged)

Comment 6 by zon...@gmail.com, Oct 28 2017

The following change set implements support for MPLANE v4l2 cameras:

 https://chromium-review.googlesource.com/c/chromium/src/+/742845
Project Member

Comment 7 by bugdroid1@chromium.org, Jul 12

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

commit dbf002c655a394a5235cef285a40059f8d32d678
Author: Christian Fremerey <chfremer@chromium.org>
Date: Thu Jul 12 18:59:58 2018

[Video Capture] Abstract out V4L2 API calls to an interface

This CL abstracts V4L2 API calls made from Chromium's video capture
implementation on Linux out to an interface. This is to enable testability of
the code that makes such calls without requiring heavy-weight solutions such
as attaching actual hardware or kernel-level emulators.

This CL is a pure refactoring and has no intended function change.

This CL is part of a series, see Design Doc at
https://docs.google.com/document/d/1ihGDZloUGdDpZ5XfmiI3AcqsSxOP9kOe5GxXOTqpHW4/edit?usp=sharing

Test: capture_unittests with physical camera attached
Bug: 768887
Change-Id: I9208f4a61731c8dc5827c1f5f5ef31d078520270
Reviewed-on: https://chromium-review.googlesource.com/1120856
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Commit-Queue: Christian Fremerey <chfremer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574657}
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/BUILD.gn
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/v4l2_capture_delegate.cc
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/v4l2_capture_delegate.h
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/v4l2_capture_delegate_unittest.cc
[add] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/v4l2_capture_device.h
[add] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/v4l2_capture_device_impl.cc
[add] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/v4l2_capture_device_impl.h
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/video_capture_device_chromeos.cc
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/video_capture_device_chromeos.h
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/video_capture_device_factory_linux.cc
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/video_capture_device_factory_linux.h
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/video_capture_device_linux.cc
[modify] https://crrev.com/dbf002c655a394a5235cef285a40059f8d32d678/media/capture/video/linux/video_capture_device_linux.h

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 13

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

commit 955f9260766242110bcc7c5219463d0117882e5a
Author: Christian Fremerey <chfremer@chromium.org>
Date: Fri Jul 13 17:33:48 2018

[Video Capture, Linux] Make VideoCaptureDeviceFactoryLinux testable

Follow-up to https://chromium-review.googlesource.com/c/chromium/src/+/1120856

This CL is a pure refactoring and has no intended function change.

This CL is part of a series, see Design Doc at
https://docs.google.com/document/d/1ihGDZloUGdDpZ5XfmiI3AcqsSxOP9kOe5GxXOTqpHW4/edit?usp=sharing

Test: capture_unittests with physical camera attached
Bug: 768887
Change-Id: Ia9bb5c832066d43d3a2295e9a6c97a31ebc266ed
Reviewed-on: https://chromium-review.googlesource.com/1121239
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Commit-Queue: Christian Fremerey <chfremer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574963}
[modify] https://crrev.com/955f9260766242110bcc7c5219463d0117882e5a/media/capture/video/linux/video_capture_device_factory_linux.cc
[modify] https://crrev.com/955f9260766242110bcc7c5219463d0117882e5a/media/capture/video/linux/video_capture_device_factory_linux.h

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 18

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

commit f998ad7f5b1f29756f18bd9c54b611f19da6e6c7
Author: Christian Fremerey <chfremer@chromium.org>
Date: Wed Jul 18 18:10:27 2018

[Video Capture Linux] Add FakeV4L2Impl and a simple first test case

Adds a class FakeV4L2Impl for replacing the actual V4L2 Apis in unit testing.
Adds a simple first test case for enumerating a single fake device.

This CL is part of a series, see Design Doc at
https://docs.google.com/document/d/1ihGDZloUGdDpZ5XfmiI3AcqsSxOP9kOe5GxXOTqpHW4/edit?usp=sharing

Test: capture_unittests --gtest_filter=VideoCaptureDeviceFactoryLinuxTest
Bug: 768887
Change-Id: I7db4bed17453c4636158b9660ad1a5da4d74781c
Reviewed-on: https://chromium-review.googlesource.com/1123021
Commit-Queue: Christian Fremerey <chfremer@chromium.org>
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576138}
[modify] https://crrev.com/f998ad7f5b1f29756f18bd9c54b611f19da6e6c7/media/capture/BUILD.gn
[add] https://crrev.com/f998ad7f5b1f29756f18bd9c54b611f19da6e6c7/media/capture/video/linux/fake_v4l2_impl.cc
[add] https://crrev.com/f998ad7f5b1f29756f18bd9c54b611f19da6e6c7/media/capture/video/linux/fake_v4l2_impl.h
[modify] https://crrev.com/f998ad7f5b1f29756f18bd9c54b611f19da6e6c7/media/capture/video/linux/video_capture_device_factory_linux.cc
[modify] https://crrev.com/f998ad7f5b1f29756f18bd9c54b611f19da6e6c7/media/capture/video/linux/video_capture_device_factory_linux.h
[add] https://crrev.com/f998ad7f5b1f29756f18bd9c54b611f19da6e6c7/media/capture/video/linux/video_capture_device_factory_linux_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 19

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

commit 3afbec1f424d4077673d9898a37e892adb106e97
Author: Christian Fremerey <chfremer@chromium.org>
Date: Thu Jul 19 00:11:54 2018

[Video Capture ChromeOS] Make hard-coded camera config obtaining logic configurable in tests

This CL is part of a series, see Design Doc at
https://docs.google.com/document/d/1ihGDZloUGdDpZ5XfmiI3AcqsSxOP9kOe5GxXOTqpHW4/edit?usp=sharing

Test: capture_unittests --gtest_filter=VideoCaptureDeviceFactoryLinuxTest
Bug: 768887
Change-Id: I91c8f3ccd30663532437a62410a2f8bc6536308e
Reviewed-on: https://chromium-review.googlesource.com/1123655
Commit-Queue: Christian Fremerey <chfremer@chromium.org>
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576269}
[modify] https://crrev.com/3afbec1f424d4077673d9898a37e892adb106e97/media/capture/video/linux/camera_config_chromeos.h
[modify] https://crrev.com/3afbec1f424d4077673d9898a37e892adb106e97/media/capture/video/linux/video_capture_device_chromeos.cc
[modify] https://crrev.com/3afbec1f424d4077673d9898a37e892adb106e97/media/capture/video/linux/video_capture_device_chromeos.h
[modify] https://crrev.com/3afbec1f424d4077673d9898a37e892adb106e97/media/capture/video/linux/video_capture_device_factory_linux.cc
[modify] https://crrev.com/3afbec1f424d4077673d9898a37e892adb106e97/media/capture/video/linux/video_capture_device_factory_linux.h
[modify] https://crrev.com/3afbec1f424d4077673d9898a37e892adb106e97/media/capture/video/linux/video_capture_device_factory_linux_unittest.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 28

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

commit 6e051039df09c5244e77bf3a5a6b4570e23696fd
Author: Christian Fremerey <chfremer@chromium.org>
Date: Sat Jul 28 16:09:19 2018

[Video Capture, Tests] Consolidate Mock implementations of VideoCaptureDevice::Client interface

There are several redundant mock implementations of interface
VideoCaptureDevice::Client scattered across the test code. This CL consolidates
them into a single implementation that is reused where needed.

This CL is part of a series, see Design Doc at
https://docs.google.com/document/d/1ihGDZloUGdDpZ5XfmiI3AcqsSxOP9kOe5GxXOTqpHW4/edit?usp=sharing

Bug: 768887
Change-Id: Iaec91f3ad4956eeb6a265631bf9029c2baeaf7fe
Reviewed-on: https://chromium-review.googlesource.com/1124972
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Commit-Queue: Christian Fremerey <chfremer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578916}
[modify] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/content/browser/media/capture/desktop_capture_device_unittest.cc
[modify] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/content/test/BUILD.gn
[modify] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/media/capture/BUILD.gn
[modify] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/media/capture/video/fake_video_capture_device_unittest.cc
[modify] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/media/capture/video/file_video_capture_device_unittest.cc
[modify] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/media/capture/video/linux/v4l2_capture_delegate_unittest.cc
[add] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/media/capture/video/mock_video_capture_device_client.cc
[add] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/media/capture/video/mock_video_capture_device_client.h
[modify] https://crrev.com/6e051039df09c5244e77bf3a5a6b4570e23696fd/media/capture/video/video_capture_device_unittest.cc

Sign in to add a comment