cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
408 Views
Registered: ‎12-21-2018

1080p kmssink on display port = green screen despite of AR# 73117 (PetaLinux 2019.1)

Hi guys,

I'm trying to do some TPG playback (1920x1080) on the display port (1920x1080 too) on a ZCU106 board, using a 2019.1 TRD modified design and gstreamer. Here is my Gstreamer pipeline :

 

gst-launch-1.0 v4l2src io-mode=4 device=/dev/video1 ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! queue ! kmssink bus-id=fd4a0000.zynqmp-display sync=false fullscreen-overlay=true

--> I get a green screen

If i use the DMABUF_IMPORT io-mode, everything is fine :

 

gst-launch-1.0 v4l2src io-mode=5 device=/dev/video1 ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! queue ! kmssink bus-id=fd4a0000.zynqmp-display sync=false fullscreen-overlay=true

 

 

This seems to be related to the famous stride 256 byte alignment required by the DPDMA involved in AR# 73117
I can't use that IO-mode because I need to use the tee plugin to encode the video source in the same time I display the video. So the problem can't be resolved on the kmssink side, but should be on v4l2 side instead

Reading through the lines of the xilinx-dma driver, I would say that the bytesperline value is rounded to the dma alignment, so I've modified my devicetree to set a 256 byte DMA alignment on the framebuffer write.

but here is the error I get when I start the pipeline :

 

ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/dev/video1' cannot capture at 1920x1080
Additional debug info:
../../../git/sys/v4l2/gstv4l2object.c(3872): gst_v4l2_object_set_format_full (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Tried to capture at 1920x1080, but device returned size 1792x1080

I'm not sure it's the right thing to do.

What's your feeling about that ?

 

 

 

0 Kudos
0 Replies