cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ansari
Visitor
Visitor
393 Views
Registered: ‎11-04-2019

Mem2Mem Composite Video Framework for HDMI RX & HDMI TX

Dear Team,

We are using PetaLinux 2019.2 package for our development and 7EV SoC based custom platform.

 

In FPGA, we have integrated HDMI TX and HDMI RX subsystems without any sub devices (such as VPSS).

HDMI RX SS -> Frame Write  
Frame reader -> HDMI TX SS

We are able to stream the HDMI RX input data to the HDMI TX with below command.
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! video/x-raw, width=1920, height=1080, format=RGB, framerate=60/1 ! queue ! kmssink driver-name=xlnx

We would like to minimize the software effort in-order to reduce the CPU usage.
For the same, we would like do the Mem2Mem as mentioned below.

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/80576536/Mem+2+Mem+Composite+Video+Framework

Could you please suggest us, is that feasible to do from FB writer to FB reader?

Thanks and Regards,

Ansari

0 Kudos
4 Replies
florentw
Moderator
Moderator
333 Views
Registered: ‎11-09-2015

HI @ansari 

I am not sure what you want to achieve.

From my understanding you want to avoid going through the memory. But the mem2mem driver is to do from memory to memory so it would even more increase the memory usage.

This is the way the v4l2 and DRM linux drivers are working. You need to go from and to the memory.

If you want to avoid going to the memory, then you might want to consider using the baremetal driver (potentially use a microblaze to control the video pipeline with baremetal).


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
kvasantr
Moderator
Moderator
295 Views
Registered: ‎04-12-2017

Hello @ansari 

Thank you for pointing me to this post in the call. Whatever system load achieved by the simple pass through pipeline is very bare minimum. Also the usage of mem2mem is for processing purpose. Using mem2mem you can pass on the video buffers from one video node to the other seamlessly. 

The current pipeline that you are running passes the dma fds from one node to the another without mem copies. So currently you have very minimum system load from this pass through pipeline. 

Do you see any abnormalities with TOP command?

as mentioned by @florentw already you may not require to use this feature at all.

with regards

Kunal

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
ansari
Visitor
Visitor
288 Views
Registered: ‎11-04-2019

Dear Kunal,

Thank you for your valuable inputs.

>>The current pipeline that you are running passes the dma fds from one node to the another without mem copies. So currently you have very minimum system load from this pass through pipeline.

Yes. Currently, the HDMI RX stream passed to HDMI TX without mem copies.

But our actual project requirement, we have to pass the HDMI RX stream to 2xHDMI TX & 2xSDI outputs.   So, we feel mem copies between the nodes will provide good performance.

This is the reason we are looking for mem2mem implementation & as a first step, we would like to pass the dma fds from one node to another with mem copies from HDMI RX to HDMI TX.

Could you please suggest us on the same.

Thanks and Regards,

Ansari

0 Kudos
kvasantr
Moderator
Moderator
275 Views
Registered: ‎04-12-2017

Hello @ansari 

Does all this pipes involve any processing? If no, then you actually do not require mem2mem. If there is any actual processing between them you can explore the options of mem2mem samples given in the wiki.

with regards

Kunal

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos