Le jeudi 19 décembre 2019 à 06:18 -0600, mksafavi a écrit :
> Hi.
>
> I make the pipe below:
> filesrc location=\"%s\" ! qtdemux name=demux demux.video_0 ! h264parse !
> queue ! omxh264dec ! appsink caps=\"%s\" name=testsink"
> then I pull a sample from appsink and map its buffer.
> I want to send the Appsink sample directly(zero-copy) to our DMA which I
> need a physical address to initialize it.
A physical address on Linux is only visible to drivers for security
reasons. You should instead pass/register DMABuf to your driver, and
let you driver resolve the physical addresses using appropriate in-
kernel API (could be one or more, depends if you are allocation
contiguously or not).
>
> How can I get the physical address of VCU decoder(omxh264dec) output?
> Is there any better method to do this?
> (I'm working on a Xilinx Zynq ZCU104 board on petalinux)
Again, the decoder will give you a GstBuffer, which contains GstMemory
or type DMABuf (need to be checked with gst_is_dmabuf_memory()). You
can then extract the DMAbuf fd with gst_dmabuf_memory_get_fd(). The
physical addresse(s) should only be made visible to your kernel driver
for security reasons.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel