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!