proxy allocation query to fix appsink zero-copy issue

Nicolas Dufresne nicolas at ndufresne.ca
Thu Jan 30 15:15:10 UTC 2020


Le jeudi 30 janvier 2020 à 05:39 -0600, mksafavi a écrit :
> Hi.
> to fix zero-copy issues I had with appsink. as suggested I tried proxying
> the query allocation based on kmscube decoder.
>         
> https://gitlab.freedesktop.org/mesa/kmscube/blob/master/gst-decoder.c#L242
> <https://gitlab.freedesktop.org/mesa/kmscube/blob/master/gst-decoder.c#L242>  
> So far I added a probe to my appsink and in the callback function, I checked
> for GST_QUERY_ALLOCATION queries and added GST_VIDEO_META_API_TYPE meta to
> it.
> I logged the queries. after a few Caps and Drain queries, I got a
> GST_QUERY_ALLOCATION.
> query type : 40963
> query type : 35846  <----- GST_QUERY_ALLOCATION
> 
> what should I expect to change after adding allocation meta?
>  /gst_query_add_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL);/ 
> 
> Is there any step that I'm missing?

I forgot a lot of the context, but you are proxying I believe, which requires
different code compared to kmscube. Answer these questions and I may be able to
help further:

  1. Are you modifying the buffers in-place ?
  2. If not, do you have the ability to allocated DMABuf memory ?
  3. What do you know about video buffer alignment ?

This is all a bit tricky, since you have to do what the GStreamer elements on
your platform do, which is very complex doe to the assymetry in the HW design.

> 
> thanks
> 
> PS, my followup question:
> http://gstreamer-devel.966125.n4.nabble.com/appsrc-performance-issue-tt4693030.html
> 
> 
> 
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list