Want to know if I understand about gstreamer correctly

Nicolas Dufresne nicolas at ndufresne.ca
Sun Feb 19 13:59:19 UTC 2023

Le sam. 18 févr. 2023, 22 h 15, H Jumogehn via gstreamer-devel <
gstreamer-devel at lists.freedesktop.org> a écrit :

> Hello,
> I’d like to make sure some personally uncertain technical understandings
> about the secret of gstreamer’s high throughput.
> Please tell me I am wrong if my understandings below is really wrong.
>    - gstreamer provides high throughput because it can construct and use
>    pipelines of mass data stream as effective as possible.
>    - The pipeline is placed in kernel space mostly. So the mass data
>    flows only in kernel.
>    - The mass stream data can be consumed in user space like in the
>    appsink. Other than these special pipeline element mostly the data is
>    handled in kernel space.
>    - In this way gstreamer is able to eliminate inefective data copy
>    between user space and kernel space.
> nvv4l2camerasrc device=/dev/video0 !
> video/x-raw(memory:NVMM),format=UYVY,width=1920,height=1080,framerate=30/1
> !
> nvvidconv !
> video/x-raw,format=BGRx !
> videoconvert !
> video/x-raw, format=BGR !
> appsink drop=1
>    - In the pipeline above, the mass data only be outputed to the
>    userspace firstly at the end of the pipeline - in the appsink.
>    - Other than the appsink the video data only flows in the kernel space
>    in the pipeline above.
> Is there any misunderstandings above?
> I’d like to be sure about my understading.
> Thank you very much!

With this pipeline, and in this context it is correct. The camera src
produces a handle to some memory, which is passed to the HW colorspace
converter nvvidconv, which finally deliver the data in 32bit form for CPU
usage. It's unfortunate that you need 24bit packed, as this conversation is
a cpu copy of the data.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230219/11f3c7fc/attachment.htm>

More information about the gstreamer-devel mailing list