UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Participant mksafavi
Participant
412 Views
Registered: ‎10-13-2019

how can I use AXIDMA on Gstreamer with a custom ip core?

Jump to solution

we're designing an FPGA-based video processing system on Zynq ultrascale+.we have a (decoder+scaler+encoder) pipeline. the decoder and encoder are both from Xilinx IPcore (PG252).

I want to get the Decoder Output address and send it to the scaler unit and tell it to start. (scaler unit has three registers .one for informing it to start and two for the beginning of its input & output stream).In a test written in C, we did it by getting the address of output data and directly wring it on DMA registers to inform the scaler unit.

How can I do the same thing with Gstreamer?

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
354 Views
Registered: ‎11-09-2015

Re: how can I use AXIDMA on Gstreamer with a custom ip core?

Jump to solution

HI @mksafavi 

Why are you using the AXI DMA and not the AXI VDMA which is an Video DMA? This would keep the video information (Start of frame / End of Line), while the AXI DMA has no notion about this. Thus I am not sure if you can intergate it into a V4L2 pipeline and so I am not sure if you can use it with Gstreamer.

And even more, why aren't you using the Video frame buffer read and write as used in the VCU TRD for example? It is better because it can store video data in memory following the V4L2 video format.

Then, if you want to use your custom IP, it needs to have a V4L2 (or DRM) driver (supporting memory to memory) which can be integrated in the pipe in order for Gstreamer to use it.

Why aren't you using the Xilinx multi-sclaer IP or the Video Processing Subsystem? They have already the required drivers.

Regards


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

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

Re: how can I use AXIDMA on Gstreamer with a custom ip core?

Jump to solution

HI @mksafavi 

Why are you using the AXI DMA and not the AXI VDMA which is an Video DMA? This would keep the video information (Start of frame / End of Line), while the AXI DMA has no notion about this. Thus I am not sure if you can intergate it into a V4L2 pipeline and so I am not sure if you can use it with Gstreamer.

And even more, why aren't you using the Video frame buffer read and write as used in the VCU TRD for example? It is better because it can store video data in memory following the V4L2 video format.

Then, if you want to use your custom IP, it needs to have a V4L2 (or DRM) driver (supporting memory to memory) which can be integrated in the pipe in order for Gstreamer to use it.

Why aren't you using the Xilinx multi-sclaer IP or the Video Processing Subsystem? They have already the required drivers.

Regards


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

0 Kudos
Participant mksafavi
Participant
325 Views
Registered: ‎10-13-2019

Re: how can I use AXIDMA on Gstreamer with a custom ip core?

Jump to solution

hi. thanks for your answer.

We're using Xilinx VCU and our videos are digital (stored in one location with 4:2:0 format). So we think we don't need to use AXI-VDMA. (also, in the Xilinx VCU design example AXI-VDMA wasn't used.)

in tests, our scaler proved to be faster then Xilinx multi-scaler and the scaler in VPSS.

0 Kudos
Moderator
Moderator
306 Views
Registered: ‎11-09-2015

Re: how can I use AXIDMA on Gstreamer with a custom ip core?

Jump to solution

HI @mksafavi 

The VCU example design does not use an AXI VDMA but is also not using an AXI DMA...

It is using the Video Frame Buffer Read/Right to store/read frames from the memory. My point is the same, I am not sure it will work in Gstreamer with the AXI DMA.

in tests, our scaler proved to be faster then Xilinx multi-scaler and the scaler in VPSS.

> I am not saying that the Xilinx VPSS or multiscaler is the best in class but at least the drivers are available, so it speed up development time.

PS. I am not sure what you mean by faster. The VPSS and Multiscaler IPs can support up to 8K so are able to run fast enough for these rate. And for the latency, this is based on the scaler window. There is no way you can really do better (note that you could reduce the processing window in both IPs). When I am saying that the IPs are not the best in class is that you could find IPs with better algorithm (newer algo) or using less ressources. But the quality is usually enough for most of our customers.

Regards


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

Re: how can I use AXIDMA on Gstreamer with a custom ip core?

Jump to solution

Hi @mksafavi,

 

Is everything clear for you on this topic?

If your question is answered or your issue is solved, please kindly mark the response which helped find a solution (click on "Accept as solution" button below the reply)

If this is not solved/answered, please reply to the thread giving more information on your current status.

 

Thanks and Regards,

Sam

Don't forget to reply, kudo, and accept as solution.

Xilinx Video Design Hub
0 Kudos