cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
282 Views
Registered: ‎04-29-2020

Output directly from RAM to Displayport

Hi

I am developing a program that runs under Linux on an Avnet Ultra96 V2 board.
I want to store the YUYV stream of the UVC camera once in DDR4 RAM, edit the video data, and output it from Displayport. What should I do?
If possible, I want to output directly from memory to Displayport in kernel space instead of user space.
I don't know which file on the kernel should be edited, especially which part of the source to stop the screen output of X11 and send the edited the video data of DDR4 RAM.

Could you give me a hint?

Tags (1)
0 Kudos
4 Replies
Highlighted
Xilinx Employee
Xilinx Employee
200 Views
Registered: ‎09-17-2019

 Hi @ysato,

You can refer to the zcu102 base trd for creating this application as both zcu102 and ultra96 are EG devices.
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/180977780/Zynq+UltraScale+MPSoC+Base+TRD+2019.2

Thanks & Regards,

Shubhangi

0 Kudos
Highlighted
Teacher
Teacher
177 Views
Registered: ‎06-16-2013

Hi @ysato 

 

>If possible, I want to output directly from memory to Displayport in kernel space instead of user space.

 

Would you try GStreamer with proper KMS/DRM setting ?

 

Best regards,

0 Kudos
Observer
Observer
145 Views
Registered: ‎04-29-2020

> Would you try GStreamer with proper KMS/DRM setting ?
Can I use GStreamer with proper KMS/DRM setting to transfer UVC camera footage directly to DRAM?
In this case, can you specify the DRAM address to transfer?
Is it possible to transfer the copied and edited DRAM video data to the monitor?

I want to do the following:
(1) Copy one frame from UVC Camera to the specified memory address in DRAM.
(2) Analyze one frame of data with PS (via Shared Memory)
(3) Editing video data on Linux based on analysis results.
(4) Display the edited video data on the monitor.

Since I want to realize PS and Shared Memory, I plan to make that area a reserved-memory based on the answers below.
https://forums.xilinx.com/t5/Embedded-Linux/Question-about-DDR-space-not-used-in-Linux/m-p/1109960


If UVC to DRAM transfer and / or DRAM to monitor transfer can be done with ZeroCopy with GStreamer, can you please tell me how to do that?
# gst-launch-1.0 v4l2src device=/dev/video0 ! kmssink
I want an example like the one above....
0 Kudos
Highlighted
Teacher
Teacher
115 Views
Registered: ‎06-16-2013

Hi @ysato 

 

As @smahalle already mentioned, TRD is the best way to understand what/how you want to do.

Would you refer it first ?

Also, if you'd like to know KMS/DRM setting, I recommend the following URLs.

 

https://www.kernel.org/doc/html/v4.14/gpu/drm-kms.html

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842520/Xilinx+DRM+KMS+driver

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842105/ZynqMP+DisplayPort+Linux+driver


>If UVC to DRAM transfer and / or DRAM to monitor transfer can be done with ZeroCopy with GStreamer, can you please tell me how to do that?

 

Would you refer the following command ?

 

gst-inspect-1.0 fbdevsink

 

BTW, I suggest you to use yavta to control V4L2 device, too.

Would you make sure it ?

 

http://git.ideasonboard.org/?p=yavta.git

 

Best regards,

0 Kudos