AnsweredAssumed Answered

[i.MX 8M] How to use multi webcam when using USB3.0

Question asked by Kwon Tae-young on Jul 11, 2019
Latest reply on Jul 22, 2019 by Kwon Tae-young

I have the MCIMX8M-EVKB.
The OS I use is L4.14.98_2.0.0.

 

I also have two USB Webcams.
My goal is to play several USB Webcams using USB3.0 of MCIMX8M-EVKB.

 

I connected the USB3.0 hub to the USB3.0 connector.
And I connected my USB Webcam to USB3.0 hub.

 

Since MCIMX8M-EVKB supports USB3.0, i expected that two webcams will be displayed.
However, when i play the second webcam, an error occurs.

debug console
root@imx8mqevk:~# lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 5, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 4: Dev 6, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 4: Dev 7, If 0, Class=Hub, Driver=hub/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
|__ Port 1: Dev 10, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 16, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 16, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 16, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 16, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 15, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 15, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 15, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 3: Dev 15, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 4: Dev 13, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 4: Dev 14, If 0, Class=Hub, Driver=hub/4p, 480M
root@imx8mqevk:~#
root@imx8mqevk:~# ls /dev/video*
/dev/video0 /dev/video1 /dev/video2 /dev/video3
root@imx8mqevk:~#
root@imx8mqevk:~# gst-launch-1.0 v4l2src device=/dev/video2 ! waylandsink name=sink window-width=320 window-height=240 &
[1] 3986
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
root@imx8mqevk:~#
root@imx8mqevk:~# gst-launch-1.0 v4l2src device=/dev/video3 ! waylandsink name=sink window-width=320 window-height=240
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[ 40.968368] usb 1-1.3: Not enough bandwidth for new device state.
[ 40.975277] usb 1-1.3: Not enough bandwidth for altsetting 5
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory.
Additional debug info:
../../../git/sys/v4l2/gstv4l2src.c(658): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.021582481
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@imx8mqevk:~#
root@imx8mqevk:~#

 

I expected the MCIMX8M-EVKB to play multiple webcams because it supports USB3.0.
How do I play multiple webcams using MCIMX8M-EVKB?


Below is my test.

 

I'm sorry I do not have enough English.
Thank you.

Outcomes