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

Issue 709819 link

Starred by 9 users

Issue metadata

Status: Archived
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Web camera picture rubbish in M57 and M58

Reported by graemehe...@agbarr.co.uk, Apr 9 2017

Issue description

UserAgent: Mozilla/5.0 (X11; CrOS armv7l 9202.64.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.146 Safari/537.36
Platform: 9202.64.0 (Official Build) stable-channel veyron_mickey

Example URL:

Steps to reproduce the problem:
1. open camera
2. open meets
3. try test my web cam

What is the expected behavior?
picture should be 720p

What went wrong?
image is rubbish, contrast too high or too dark, red or yellow !
Camera works fine on PC,MAC or Chromebook, but not on bit
wotrked great on os56, dies on os57

Did this work before? Yes os56

Is it a problem with Flash or HTML5? N/A

Does this work in other browsers? N/A

Chrome version: 57.0.2987.146  Channel: stable
OS Version: 9202.64.0
Flash Version: Shockwave Flash 25.0 r0

Contents of chrome://gpu: 
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Panel Fitting: Unavailable
Rasterization: Software only. Hardware acceleration disabled
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
disable_discard_framebuffer
disable_framebuffer_cmaa
disable_post_sub_buffers_for_onscreen_surfaces
scalarize_vec_and_mat_constructor_args
use_virtualized_gl_contexts
Problems Detected
Chrome OS panel fitting is only supported for Intel IVB and SNB Graphics Controllers
Disabled Features: panel_fitting
The Mali-Txxx driver does not guarantee flush ordering: 154715, 10068, 269829, 294779, 285292
Applied Workarounds: use_virtualized_gl_contexts
Framebuffer discarding causes jumpy scrolling on Mali drivers: 301988
Applied Workarounds: disable_discard_framebuffer
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
The Mali-Txxx driver hangs when reading from currently displayed buffer: 457511
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: rasterization
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported	09/04/2017, 20:59:57
Chrome version	Chrome/57.0.2987.146
Operating system	Linux 3.14.0
Software rendering list version	12.13
Driver bug list version	9.29
ANGLE commit id	c1a5d16e964a
2D graphics backend	Skia/57 0
Command Line Args	--ppapi-flash-path=/opt/google/chrome/pepper/libpepflashplayer.so --ppapi-flash-version=25.0.0.148 --ui-prioritize-in-gpu-process --use-gl=egl --gpu-sandbox-failures-fatal=yes --gpu-sandbox-start-early --enable-logging --log-level=1 --use-cras --enable-wayland-server --user-data-dir=/home/chronos --max-unused-resource-memory-usage-percentage=5 --login-profile=user --aura-legacy-power-button --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/oem_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/oem_small.jpg --default-wallpaper-is-oem --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --enable-prefixed-encrypted-media --enable-consumer-kiosk --enterprise-enrollment-initial-modulus=15 --enterprise-enrollment-modulus-limit=19 --oobe-bootstrapping-slave --login-manager --first-exec-after-boot --vmodule=screen_locker=2,webui_screen_locker=2,lock_state_controller=2,webui_login_view=2,power_button_observer=2,*/ui/display/manager/chromeos/*=1,*/ash/display/*=1,*/ui/ozone/*=1,*zygote*=1,*plugin*=2,auto_enrollment_controller=1,*chromeos/login/*=1
Driver Information
Initialization time	38
In-process GPU	false
Passthrough Command Decoder	false
Sandboxed	true
GPU0	VENDOR = 0x0000, DEVICE= 0x0000
Optimus	false
AMD switchable	false
Driver vendor	ES
Driver version	3.1
Driver date	
Pixel shader version	3.10
Vertex shader version	3.10
Max. MSAA samples	8
Machine model name	
Machine model version	
GL_VENDOR	ARM
GL_RENDERER	Mali-T760
GL_VERSION	OpenGL ES 3.1 v1.r12p0-04rel0.dfb06b468ceb6634dbcb6aceab037cc5
GL_EXTENSIONS	GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture
Disabled Extensions	GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor	ARM
Window system binding version	1.4 Midgard-"r12p0-04rel0"
Window system binding extensions	EGL_KHR_partial_update EGL_EXT_swap_buffers_with_damage EGL_KHR_swap_buffers_with_damage EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_image_pixmap EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority EGL_ARM_pixmap_multisample_discard EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image EGL_EXT_create_context_robustness
Direct rendering	Yes
Reset notification strategy	0x8252
GPU process crash count	0
Compositor Information
Tile Update Mode	One-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
RG_88	Software only
BGR_565	GPU_READ
RGBA_4444	Software only
RGBX_8888	GPU_READ, SCANOUT
RGBA_8888	GPU_READ
BGRX_8888	GPU_READ, SCANOUT
BGRA_8888	GPU_READ
YVU_420	GPU_READ
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Log Messages
[957:957:0118/085006.283334:ERROR:gles2_cmd_decoder.cc(2459)] : [GroupMarkerNotSet( crbug.com/242999 )!:6813493D]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : BackFramebuffer::Create: <- error from previous GL command
[957:957:0118/085006.288544:ERROR:texture_manager.cc(3224)] : [.DisplayCompositor-0x3dfc6d80]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : glTexImage2D: <- error from previous GL command
[957:993:0118/085006.337013:VERBOSE1:drm_device_manager.cc(54)] : Could not initialize DRM device for /sys/devices/platform/vgem/drm/card0
[957:993:0118/085006.946643:VERBOSE1:drm_display.cc(102)] : DRM configuring: device=/sys/devices/display-subsystem.3/drm/card1 crtc=21 connector=27 origin=0,0 size=1360x768
[957:957:0409/114324.067227:ERROR:interface_registry.cc(203)] : Failed to locate a binder for interface: chrome::mojom::ResourceUsageReporter requested by: exposed by: via InterfaceProviderSpec "service_manager:connector".
[957:957:0409/114324.067403:WARNING:interface_registry.cc(210)] : InterfaceRegistry(service_manager:connector): --> InterfaceRegistry is not yet bound to a pipe.
[957:993:0409/115719.105300:WARNING:screen_manager.cc(101)] : Display controller (crtc=21) already present.
[957:993:0409/115719.106443:VERBOSE1:drm_display.cc(102)] : DRM configuring: device=/sys/devices/display-subsystem.3/drm/card1 crtc=21 connector=27 origin=0,0 size=0x0
[957:993:0409/204245.526111:WARNING:screen_manager.cc(101)] : Display controller (crtc=21) already present.
[957:993:0409/204245.527300:VERBOSE1:drm_display.cc(102)] : DRM configuring: device=/sys/devices/display-subsystem.3/drm/card1 crtc=21 connector=27 origin=0,0 size=1360x768

if I revert the OS to OS56 camera works fine again
 
IMG_20170408_222610.jpg
26.3 KB View Download
Components: -Internals>Media Blink>GetUserMedia>Webcam
Owner: alberto@chromium.org
Status: Assigned (was: Unconfirmed)
I've seen other reports on this happening on Chromebits starting in M57. 
+Alberto, who in your team could look into this?
Same happened to me with my Chromebit.
I bought it 2 weeks ago and with the build the device shipped with (unfortunately didn't note it down), the USB cam was working perfectly.

After installing the update, though, to , the image became red/yellow, over saturated, too bright and with too much contrast. I also notice this gets worse as the camera continues to be on. Feels like the software is trying to compensate the image wrongly.

I tested this with Logitech 270, 170 and 920 as well as Microsoft Cinema Lifecam. Same behavior across the board.


58.0.3029.40 beta
Piattaforma 9334.28.0 (Official Build) beta-channel veyron_mickey
Firmware Google_Veyron_Mickey.6588.197.0


V8
5.8.283.21
User-agent

Mozilla/5.0 (X11; CrOS armv7l 9334.28.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.40 Safari/537.36
IMG_20170402_123702_2.jpg
198 KB View Download
IMG_20170402_124542.jpg
154 KB View Download
IMG_20170403_125419.jpg
351 KB View Download

Comment 5 by mcasas@chromium.org, Apr 11 2017

Components: -Blink>GetUserMedia>Webcam Blink>ImageCapture
The most likely culprit is a combination between Os/driver and
the routine that resets the user/camera controls to their default
values [1]


[1] https://cs.chromium.org/chromium/src/media/capture/video/linux/v4l2_capture_delegate.cc?sq=package:chromium&dr=C&l=207

Comment 6 by mcasas@chromium.org, Apr 11 2017

Cc: mcasas@chromium.org chfremer@chromium.org
Labels: Needs-Feedback
Owner: ----
Status: Available (was: Assigned)
Ooops #5 was too fast :-)

resetting the user/camera controls to their default values provided
by UVC suffers from two problems:
- flaky USB or device communications, which makes the driver
 ioctl()s fail in surprising ways (like, saying it has failed
 when having succeeded).
- the USB-provided default value not being accurate or even
 legal.

In this case what we could do is to blacklist this camera model,
by its USB identifier.  

Could anyone dump here the contents of chrome://media-internals/,
"video capture" tab, please?

Comment 7 Deleted

Comment 8 Deleted

But it's every camera with the Chromebit ?

Comment 10 Deleted

Comment 11 Deleted

Comment 12 Deleted

Screenshot 2017-04-11 at 21.36.09.png
89.3 KB View Download
Issue 677573 has been merged into this issue.
Labels: -Needs-Feedback
Cc: -chfremer@chromium.org
Owner: chfremer@chromium.org
Status: Assigned (was: Available)
Cc: wuchengli@chromium.org posciak@chromium.org
I've tested it with the C920 and the same behavior is observed.
Also notice this was working previously...
I tested this on a veyron_minnie device with a Logitech C930 and found that the issue started with M57 and somehow disappeared with M59.

I confirmed that the issue is related to the camera settings being reset at [1]. When I commented this out, the symptoms disappeared.

Since there don't seem to be any significant changes in that code between the latest M57 and the earliest M59 builds, I assume something must have changed in the non-Chromium parts of Chromium OS that fixed the issue starting in M59.
It would be nice if we could confirm this theory and understand what made the difference. @posciak: could you help with this please? Who would be the right person to ask about this?

@affected users: If possible, could you please try an M59 build and check if it fixes the problem for your configuration as well?

I am wondering if, as a temporary mitigation (maybe for M58?), we could store a (static, per-device) flag when the camera settings have been changed via SetPhotoOptions() [1] and then only call ResetUserAndCameraControlsToDefault() at [2] if this flag indicates that it is needed.

@mcasas: What are your thoughts on this?

[1] https://cs.chromium.org/chromium/src/media/capture/video/linux/v4l2_capture_delegate.cc?sq=package:chromium&dr=C&l=641
[2] https://cs.chromium.org/chromium/src/media/capture/video/linux/v4l2_capture_delegate.cc?sq=package:chromium&dr=C&l=207
Tested and working on M59 Dev Channel release.

Bit jumpy but that's just the dev release I expect

Thanks

Comment 23 by srcv@chromium.org, Apr 18 2017

This issue was observed on Minnie, Jaq and Jerry with M57 and M58.

Verified that it is working on Jerry with M59 59.0.3071.8 / 9460.1.0 dev

Is there an ETA on a fix for this?
Thanks
The issue appears to be fixed in M59, which is currently in beta.
With M58 already in stable, we may not be able to get a fix in for M58 anymore.

If you get the chance, could you please check on M59 and see if it fixes the issue for you?
I have to stay on the Dev channel OS59 for camera to work.

Dev channel causes random reboots though.

So 1 month without a decent working device coming up. 

Tried the Beta channel is gave me OS58 still.
Status: WontFix (was: Assigned)
Since we won't be able to get a fix for this into M58, I am marking this as won't fix.
just to clarify, is this fix coming to a later release?
It appears that the issue is fixed by newer firmware in M59.
If you can, please try M59 and check if it works for your configuration. If it doesn't, please let me know and I'll reopen this.
I'll check it out and let you know.
Summary: Web camera picture rubbish in M57 and M58 (was: Web camera picture rubbish since os57)
Tentatively updating the title.
Just to clarify, received version 59 but didn't solve anything.
Maybe just made the webcam more unreliable (shutting the video off even when the webcam is on sometimes).

This is becoming really frustrating.
Basically one day after purchasing the product it became totally useless and no fix after a quarter. Terrible customer experience.
Pix attached.

Any hope this will be fixed?

IMG_20170612_120604.jpg
7.3 MB View Download
Sorry, attached only one image. Attaching the other here:
IMG_20170612_120515.jpg
3.9 MB View Download
59 for me has issues with meet, the picture, although better, is slow and jumpy, and I get dropped off after around 15 minutes.

We were looking to adopt this device across the business, but I've had no option other than to delay that project.


Actually, I've checked again using also meets and I can confirm now, after my camera's LED powers up I directly get a message saying 'camera error' in both Hangouts and Meets.

So I guess we went from good to bad to worse.
Status: Assigned (was: WontFix)
leonardo.rossetti@: I am sorry to hear that 59 didn't solve the issue for you. In #4, you reported that you tried several different webcams. Do they still all show the same symptoms? To make sure there is no separate issue with Hangouts or Meets, please confirm that the issue reproduces when checking the video here: https://webrtc.github.io/samples/src/content/getusermedia/gum/ 
If it does, could you please post the names and usb ids of the webcams you tried? This information can be found at chrome://media-internals in the VideoCapture tab and should look similar to this (example for a Logitech C930): "Logitech Webcam C930e (046d:0843)".

graemehendry@: According to #22, the issue with the colors and contrast you reported in #1 was fixed for you with 59. It sounds like the issues you mention in #34 are different. Could you please confirm? 
Ok, so:
- the issue is happening also at the test URL you provided
- the webcam I tried is Microsoft® LifeCam Cinema(TM) (045e:075d)
- can't try more as I've already accumulated several credit cards at local retailers (in Italy they won't refund you if you return an item) and can't spend more money on of for this device
- I am attaching further details including a picture of the room and an image of the room through webcam
- if the above wasn't enough to make me regret the purchase, now hangouts doesn't even wanna use my cam (the camera app and other sites use it normally)

I am not able to estimate how many Chromebits were sold and what % of them uses webcams and have this issue but I fear this issue will never be prioritized and solved. disappointing given the lifecycle of these products. And that it was perfectly working when purchased.
Files attached here:
IMG_20170615_153205.jpg
3.1 MB View Download
download_20170615_154337.png
138 KB View Download
download_20170615_154339.png
1.3 MB View Download
Labels: -Pri-2 Pri-1
We are currently trying to repro to confirm that 59 did indeed not fix the issue for all devices. Preliminary raising priority to 1.
I just tested on a Chromebit (veyron_mickey) running 59.0.3071.91 and testing https://webrtc.github.io/samples/src/content/devices/input-output/ with the following cameras:

Logitech UVC Camera (046d:0990)
Logitech C920 (046d:082d)
Logitech C930e (046d:0843)
Microsoft Lifecam VX-200 (045e:0761)
Microsoft Lifecam HD-3000 (045e:0779)

The result is that the Logitech cameras appear to work fine, but the Microsoft ones only delivered a black image. For the VX-200 the black image resized itself after about 5 seconds. For the HD-3000 it stayed at the default.

Unless this is a new issue, it is likely that M59 fixed the symptoms for the Logitech cameras but not for the Microsoft ones.

Comment 41 by srcv@chromium.org, Jun 16 2017

There is an existing issue for Blank video with Microsoft camera in  https://webrtc.github.io/samples/src/content/devices/input-output/ page : https://bugs.chromium.org/p/chromium/issues/detail?id=593513 


Cool. Let me reiterate this was working perfectly with Chromebit just out of the box.

Thanks!
I did more tests on the Chromebit (veyron_mickey) with the same set of cameras 
listed in #40 and the following software versions:

Chrome OS Version  Chrome Version   Channel
8872.76.0          55.0.2883.105    Stable
9000.97.0          56.0.2924.121    Stable
9202.64.0          57.0.2987.146    Stable
9334.74.0          58.0.3029.145    Stable
9460.60.0          59.0.3071.91     Beta
9592.22.00         60.0.3112.34     Beta
9657.0.0           61.0.3113.0      Dev
9657.0.0           M61 local build with image capture controls disabled

Some interesting things I learned:

1.) The LifeCam VC-2000 worked on neither of the builds.
2.) The Logitech cameras worked fine on all builds except for Chrome 57 where 
    they had the issue that was originally reported here. The 58 build I tested 
    did not have that issue. Maybe it was a never version of 58 that already 
    had fixes.
3.) The LifeCam HD-3000 does not work when testing with 
    https://webrtc.github.io/samples/src/content/devices/input-output/
    But it does work when testing with 
    https://webrtc.github.io/samples/src/content/getusermedia/gum/
4.) The LifeCam HD-3000 worked fine when I tested builds in the following order:
    61, 58, 56, 55. When I tried 57 after that, it showed the same symptoms as 
    the other cameras. But different from them, it did not recover when I moved 
    on to 59, 60, and even when I went back to the 61 build where it had worked 
    before. The image was always too bright. Sometimes it started out okay but 
    then quickly adjusted back to being too bright. I tried using the camera 
    on a Linux desktop, on a MacBook (with Skype) and a Windows 10 laptop 
    (Camera app) and it still had that issue. By adjusting the camera brightness
    control in the Win 10 Camera app, I could get it back to a proper picture.
    However, after restarting the app the setting would be back to too bright.
    It almost appears like a default value was overwritten in some persistent 
    camera memory.

Hello there, I was just wondering if there was any update on this or if
this won't fix.

Leo
Status: Fixed (was: Assigned)
Based on the tests in #43, the reported issue (which caused all webcams I tested to use wrong settings for their controls) appears to have been fixed with the Chrome OS versions 9460.1.0 or higher.

The LifeCam VC-2000 does not appear to have worked in earlier versions as well, so it does not look like there is a regression there.

As a result of the above considerations, I am going to mark the tracked issue as fixed. 

leonard.rossetti@:
I acknowledge your reports of still having seen issues in Chrome 59 with one particular LifeCam model, but based on the tests in #43 I have to conclude that these have probably been caused by something else, e.g. either the Chrome OS version that came with the updated Chrome did not yet have the fix (i.e. a Chrome OS version < 9460.1.0), or the camera did not refresh its default values.

It sounded like you may no longer have access to a Chromebit, but in case you do and still see a similar issue, please open a new bug entry for a separate investigation.

I do have access to a Chromebit and:
1. Still lifecam doesn't work properly with that ( I attached all the
details just a couple of weeks ago)
2. The webcam used to work perfectly. There has been a regression.
re #46: I filed this as new issue tracker entry:  https://crbug.com/739407 

Comment 48 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment