No subject

Harms Hannes hannes.harms at tu-braunschweig.de
Wed Oct 10 12:23:37 UTC 2018


Hi,

I have tied to use VAAPI + appsink  with zero copy via DMABuf / mmap.

Therefore I used the following pipeline:

application/x-rtp, encoding-name=JPEG,payload=26 ! rtpjpegdepay ! 
vaapijpegdec ! capsfilter caps=video/x-raw(memory:DMABuf),format=I420 
! appsink name=sink

Code form the appsink:

GstMemory* mem = gst_buffer_peek_memory(buffer, 0);
int fd = gst_dmabuf_memory_get_fd(mem);
void* map_data =  mmap(NULL,size,PROT_READ | 
PROT_WRITE,MAP_SHARED,fd,0);

However mmap fails with Permission Denied, because the buffer is not 
writable.

I tried again with:

void* map_data =  mmap(NULL,size,PROT_READ,MAP_SHARED,fd,0);

However the mapped data contains only zeros.

What am I missing?

Hardware is a Intel Atom E3950. Gstreamer 1.14.1

I also tried to to use VASurface,
but it is still unclear to me how to access data of a VASurface within 
a appsink.

Many thanks


More information about the gstreamer-devel mailing list