Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#3976 closed defect (fixed)

pixel format not supported by webcam command

Reported by: cgalicia@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: VR Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-4.15.0-123-generic-x86_64-with-debian-buster-sid
ChimeraX Version: 1.1 (2020-09-09 22:22:27 UTC)
Description
Camera "HP Wide Vision HD Camera: HP Wi" pixel formats () are not supported by webcam command (ARGB32,YUYV)

Log:
UCSF ChimeraX version: 1.1 (2020-09-09)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open /home/christian/heavy-
> data/20200914-COLLECT/maps/cryosparc_P21_J717_004_volume_map_sharp.mrc

Opened cryosparc_P21_J717_004_volume_map_sharp.mrc, grid size 140,140,140,
pixel 1.64, shown at level 0.37, step 1, values float32  

> volume #1 level 0.386

> volume #1 level 0.3806

> webcam true

Starting camera without viewfinder available  

Camera "HP Wide Vision HD Camera: HP Wi" pixel formats () are not supported by
webcam command (ARGB32,YUYV)  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/cmd_line/tool.py", line 275, in execute  
cmd.run(cmd_text)  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/core/commands/cli.py", line 2805, in run  
result = ci.function(session, **kw_args)  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/webcam/webcam.py", line 27, in webcam  
w,h = wc.size  
TypeError: cannot unpack non-iterable NoneType object  
  
TypeError: cannot unpack non-iterable NoneType object  
  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/webcam/webcam.py", line 27, in webcam  
w,h = wc.size  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 390.138
OpenGL renderer: GeForce GTX 1050/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: HP
Model: HP Pavilion Gaming Laptop 15-cx0xxx
OS: Ubuntu 18.04 bionic
Architecture: 64bit ELF
CPU: 8 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
Cache Size: 8192 KB
Memory:
	              total        used        free      shared  buff/cache   available
	Mem:            15G        6.4G        3.9G        287M        5.3G        8.6G
	Swap:          2.0G        1.0M        2.0G

Graphics:
	00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07)	
	Subsystem: Hewlett-Packard Company UHD Graphics 620 [103c:8477]	
	Kernel driver in use: i915
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.9
Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    Babel: 2.8.0
    backcall: 0.2.0
    blockdiag: 2.0.1
    certifi: 2020.6.20
    chardet: 3.0.4
    ChimeraX-AddH: 2.1.1
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.1
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.6.1
    ChimeraX-AtomSearch: 2.0
    ChimeraX-AxesPlanes: 2.0
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 1.0.1
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.0
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.0
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.1
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.0
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-CommandLine: 1.1.3
    ChimeraX-ConnectStructure: 2.0
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.1
    ChimeraX-CoreFormats: 1.0
    ChimeraX-coulombic: 1.0.1
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-DataFormats: 1.0
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1
    ChimeraX-DistUI: 1.0
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0
    ChimeraX-FunctionKey: 1.0
    ChimeraX-Geometry: 1.1
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.0
    ChimeraX-Hbonds: 2.0
    ChimeraX-Help: 1.0
    ChimeraX-HKCage: 1.0
    ChimeraX-IHM: 1.0
    ChimeraX-ImageFormats: 1.0
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0
    ChimeraX-Label: 1.0
    ChimeraX-LinuxSupport: 1.0
    ChimeraX-ListInfo: 1.0
    ChimeraX-Log: 1.1.1
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Map: 1.0.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.0
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 1.1
    ChimeraX-MDcrds: 2.0
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.0
    ChimeraX-mmCIF: 2.2
    ChimeraX-MMTF: 2.0
    ChimeraX-Modeller: 1.0
    ChimeraX-ModelPanel: 1.0
    ChimeraX-ModelSeries: 1.0
    ChimeraX-Mol2: 2.0
    ChimeraX-Morph: 1.0
    ChimeraX-MouseModes: 1.0
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0
    ChimeraX-OpenCommand: 1.2.1
    ChimeraX-PDB: 2.1
    ChimeraX-PDBBio: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.0
    ChimeraX-PubChem: 2.0
    ChimeraX-Read-Pbonds: 1.0
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.0
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.2
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SeqView: 2.2
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.0
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.0
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.0.4
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-Struts: 1.0
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.0
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.0
    ChimeraX-ToolshedUtils: 1.0
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.2.3
    ChimeraX-uniprot: 2.0
    ChimeraX-ViewDockX: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0
    ChimeraX-WebServices: 1.0
    ChimeraX-Zone: 1.0
    colorama: 0.4.3
    comtypes: 1.1.7
    cxservices: 1.0
    cycler: 0.10.0
    Cython: 0.29.20
    decorator: 4.4.2
    distlib: 0.3.1
    distro: 1.5.0
    docutils: 0.16
    filelock: 3.0.12
    funcparserlib: 0.3.6
    grako: 3.16.5
    h5py: 2.10.0
    html2text: 2020.1.16
    idna: 2.10
    ihm: 0.16
    imagecodecs: 2020.5.30
    imagecodecs-lite: 2020.1.31
    imagesize: 1.2.0
    ipykernel: 5.3.0
    ipython: 7.15.0
    ipython-genutils: 0.2.0
    jedi: 0.17.2
    Jinja2: 2.11.2
    jupyter-client: 6.1.3
    jupyter-core: 4.6.3
    kiwisolver: 1.2.0
    line-profiler: 2.1.2
    lxml: 4.5.1
    MarkupSafe: 1.1.1
    matplotlib: 3.2.1
    msgpack: 1.0.0
    netifaces: 0.10.9
    networkx: 2.4
    numexpr: 2.7.1
    numpy: 1.18.5
    numpydoc: 1.0.0
    openvr: 1.12.501
    packaging: 20.4
    parso: 0.7.1
    pexpect: 4.8.0
    pickleshare: 0.7.5
    Pillow: 7.1.2
    pip: 20.2.2
    pkginfo: 1.5.0.1
    prompt-toolkit: 3.0.7
    psutil: 5.7.0
    ptyprocess: 0.6.0
    pycollada: 0.7.1
    pydicom: 2.0.0
    Pygments: 2.6.1
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 2.4.7
    PyQt5-commercial: 5.12.3
    PyQt5-sip: 4.19.19
    PyQtWebEngine-commercial: 5.12.1
    python-dateutil: 2.8.1
    pytz: 2020.1
    pyzmq: 19.0.2
    qtconsole: 4.7.4
    QtPy: 1.9.0
    RandomWords: 0.3.0
    requests: 2.24.0
    scipy: 1.4.1
    setuptools: 49.4.0
    sfftk-rw: 0.6.6.dev0
    six: 1.15.0
    snowballstemmer: 2.0.0
    sortedcontainers: 2.2.2
    Sphinx: 3.1.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 2.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 1.0.3
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.4
    suds-jurko: 0.6
    tables: 3.6.1
    tifffile: 2020.6.3
    tinyarray: 1.2.2
    tornado: 6.0.4
    traitlets: 5.0.4
    urllib3: 1.25.10
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.34.2

Change History (5)

comment:1 by Eric Pettersen, 5 years ago

Component: UnassignedVR
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionpixel format not supported by webcam command

Reported by Christian Galicia

comment:2 by Tom Goddard, 5 years ago

The web camera named "HP Wide Vision HD Camera: HP Wi" reported no available pixel formats. The QCamera documentation for supportedViewfinderPixelFormats() says this will happen if the camera is not loaded. I am not sure why the camera is not loaded. Maybe ChimeraX needs to wait until the camera is loaded, I'll check that.

https://doc.qt.io/qt-5/qcamera.html#supportedViewfinderPixelFormats

comment:3 by Tom Goddard, 5 years ago

Looking at the ChimeraX webcam code it only asks for the pixel formats supported by the camera after the camera goes into the active state and is loaded. So it appears the camera driver simply does not list any pixel formats. That seems like a bug in the camera driver, or possibly in the Qt window toolkit QCamera module, neither of which I can fix. Do you have any other usb web cam you can try on this computer? Possibly another camera will work.

Another idea is that no camera formats are listed because ChimeraX does not have permission to use the camera. I do not know how camera security works on ubuntu 18.04. I think this is unlikely to be the problem because the camera would not have loaded and become active if the application did not have permission.

I have an Ubuntu 18.04 machine and will try webcam with my Logitech web camera to see if it is working. If it is I think there is nothing i can do to make your camera work.

comment:4 by Tom Goddard, 5 years ago

Resolution: fixed
Status: assignedclosed

Fixed in tomorrow's ChimeraX daily builds. Thanks for reporting the problem.

Testing on Ubuntu 18.04 with a Logitech C922 camera showed the same error. Investigation showed that on Linux QCamera.setViewfinder() must be called before starting the camera, as was suggested by the log warning message "Starting camera without viewfinder available". On macOS and Windows this is not necessary. So I put in special code for Linux. Also I had the code monitor QCamera status changes instead of state changes to decide when the video capture can begin. Tested new code on Ubuntu 18.04, macOS 10.15 and Windows 10, working.

in reply to:  5 ; comment:5 by Christian.Galicia.Diaz.Santana@…, 5 years ago

Thank you Tom, I will check the daily build.

Best regards,

Christian
Note: See TracTickets for help on using tickets.