Gst-nvunixfd
The Gst-nvunixfd plugin performs the hardware video buffers sharing between different processes and pipelines via IPC (inter-process communication). Gst-nvunixfd provides the Gst-nvunixfdsink and Gst-nvunixfdsrc for sending and receiving the hardware video buffers between pipelines to avoid unnecessary memory copy. Gst-nvunixfdsink acts as a server, the NvBufSurfaceMapParams which contains the video buffer information and the IPC sharable FD(File Descriptor) of the video buffer are sent to the Gst-nvunixfdsrc. Gst-nvunixfdsrc then creates a new NvBufSurface with the received data. On Jetson, FD is the bufferDesc in the NvBufSurface structure. On DGPU, FD is a cudaIpcMemHandle_t handle derived from the CUDA memory.
The Gst-nvunixfdsink pipeline can send hardware video buffers to multiple Gst-nvunixfdsrc pipelines, the Gst-nvunixfdsrc pipeline can receive hardware video buffers from multiple Gst-nvunixfdsink pipelines. All the pipelines should work in the same device and the same system. The batched NvBufSurface is not supported.
Gst-nvunixfdsink
Gst-nvunixfdsink is a Unix file descriptor sink derived from OSS unixfdsink element, which is used on server side.

Inputs and Outputs
-
Inputs
- Gst no-batched buffer
-
Control parameters
- gpu-id: selects the GPU ID
- buffer-copy: copy buffer for every client
- buffer-timestamp-copy: copy timestamp of the received Gst buffers
- compute-hw: Compute HW for copy operation
- meta-serialization-lib: Set meta serialization library name to be used
- socket-type: The type of underlying socket
- socket-path: The path to the control socket used to control the shared memory
-
Output
- After client connects, server passes the NvBufSurface handle, timestamp and other data to client through IPC.
Features
The following table summarizes the features of the Gst-nvunixfdsink plugin.
Gst-nvunixfdsink plugin features
Gst-nvunixfdsrc
Gst-nvunixfdsrc is a Unix file descriptor source derived from OSS unixfdsrc element, which is used on client side.

Inputs and Outputs
-
Inputs
- The NvBufSurface handle, timestamp and other data received from server.
-
Control parameters
- gpu-id: selects the GPU ID
- buffer-copy: copy buffer for every client
- buffer-timestamp-copy: copy timestamp of received buffer
- compute-hw: Compute HW for copy operation
- meta-deserialization-lib: Set meta deserialization library name to be used
- socket-type: The type of underlying socket
- socket-path: The path to the control socket used to control the shared memory
- connection-attempts: Max number of attempts for connection (-1 = unlimited)
- connection-interval: Connection interval between connection attempts in micro seconds
-
Output
- Gst no-batched buffer
Features
The following table summarizes the features of the Gst-nvunixfdsrc plugin.
Gst-nvunixfdsrc plugin features
Gst Properties
The following table describes the Gst properties of the Gst-nvunixfdsrc plugin.
Gst-nvunixfdsrc plugin gst properties