Hi, I attached a USB camera on my 8MMINILPD4-EVK running Linux image L4.14.78_1.0.0_ga_images_MX8MMEVK.
The following gstreamer pipeline works fine:
gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw,format=UYVY,width=640,height=480" ! videoconvert ! autovideosink
But when I replace videoconvert by the accelerated imxvideoconvert_g2d, I get broken frames which look like uninitialized memory intermixed with old image fragments.
Am I missing something? What is the roadmap of video acceleration (2D, 3D GPU) support in Linux?
Frank
Hi ,
The IMX8M doesn't have a 2D GPU, but the IMX8M Mini does.
It looks like you are running an image for imx8M Mini on a imx8M board:
SW: L4.14.78_1.0.0_ga_images_MX8MMEVK is for 8M Mini
On the image for IMX8M, the gst-plugin "imxvideoconvert_g2d" doesn't exist.
I suppose that autovideosink is selecting waylandsink.
gst-inspect-1.0 reports that waylandsink is accepting UYVY in input format.
Does the pipeline works without the videoconvert?
The display controller of IMX8M has more capabilities that imx8M Mini.
Julien,
Hi Julien,
sorry, my fault, it's indeed a i.MX 8M Mini EVK (8MMINILPD4-EVK). I'm working with Mini only at this time and mixed it up.
gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw,format=UYVY,width=640,height=480" ! waylandsink
does not work. With export GST_DEBUG=waylandsink:5 I get
0:00:00.127933874 4027 0x209d58a0 DEBUG waylandsink gstwaylandsink.c:569:gst_wayland_sink_get_caps:<waylandsink0> display caps: video/x-raw, format=(string){ BGRA, BGRx, RGB16, I420, NV12, YUY2 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf), format=(string){ BGRA, BGRx, RGB16, YUY2, NV12, I420 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
gst-launch-1.0 -v v4l2src device=/dev/video1 ! "video/x-raw,format=UYVY,width=640,height=480" ! videoconvert ! waylandsink
works as expected
gst-launch-1.0 -v v4l2src device=/dev/video1 ! "video/x-raw,format=UYVY,width=640,height=480" ! imxvideoconvert_g2d ! waylandsink
shows those artefacts
Frank
HI,
I can't reproduce the problem with videotestsink and CSI camera (/dev/video0)
I can't see noticeable difference when using both command.
gst-launch-1.0 videotestsrc pattern=19 ! "video/x-raw, format=UYVY,width=640,height=480" ! imxvideoconvert_g2d ! autovideosink
gst-launch-1.0 videotestsrc pattern=19 ! "video/x-raw, format=UYVY,width=640,height=480" ! videoconvert | autovideosink
But when using a an USB Camera (/dev/video1) I can reproduce the problem
with imxvideoconvert_g2d
videoconvert:
Is that what you are seeing?
This seems related to usb camera handling. I might have to create a ticket to R&D