8MMINILPD4-EVK imxvideoconvert_g2d broken frames

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

8MMINILPD4-EVK imxvideoconvert_g2d broken frames

2,379 Views
frankba
Contributor III

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

Labels (1)
Tags (1)
0 Kudos
5 Replies

1,955 Views
julien_jayat
NXP Employee
NXP Employee

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,

0 Kudos

1,955 Views
frankba
Contributor III

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

0 Kudos

1,955 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

ok

0 Kudos

1,955 Views
julien_jayat
NXP Employee
NXP Employee

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

pastedImage_1.bmp

videoconvert:

pastedImage_6.bmp

Is that what you are seeing?

This seems related to usb camera handling. I might have to create a ticket to R&D

0 Kudos

1,955 Views
frankba
Contributor III

Yes Julien, thats exact what I'm observing here. Thx Frank

0 Kudos