pciesrc ======= The ``simaaipciesrc`` GStreamer plugin is a source element that reads data from a PCIe interface. It receives data from a host system via PCIe and pushes it to downstream elements in a GStreamer pipeline. The plugin supports dynamic src pads creation. For proper negotiation of src pads pipeline should have same number of src pads in simaaipciesrc on SoC as number of sink pads of pciehost on host. Properties ---------- The following properties can be configured for the ``simaaipciesrc`` plugin: =========== ======= ================ ======================================================================= Property Type Default Description =========== ======= ================ ======================================================================= buffer-size int 4194304 Size of output buffer to be allocated by simaaipciesrc. name string “simaaipciesrc0” The name of the object. pool-size int 5 Size of output pool to be create by simaaipciesrc per each channel/pad. queue int 0 Data queue number to listen on. silent boolean FALSE Produce verbose output. transmit boolean FALSE Transmit KPI Message. =========== ======= ================ ======================================================================= Usage ----- The ``simaaipciesrc`` plugin can be integrated into a GStreamer pipeline like this: .. code:: bash gst-launch-1.0 simaaipciesrc ! ... ! simaaipciesink config=/path/to/config.json num-buffers=10 data-buffer-size=8388608 transmit=true Replace ``/path/to/your/video.mp4`` with the actual path to your video file and ``/path/to/config.json`` with the path to your JSON configuration file. Adjust ``num-buffers`` and ``data-buffer-size`` as needed. Installation ------------ To install the ``simaaipciesrc`` plugin, copy the plugin files (located in ``/usr/local/simaai/plugin_zoo/gst-simaai-plugins-base/gst/``) into your project’s ``plugins/`` directory. The plugin will then be automatically loaded by GStreamer. Pipeline Integration -------------------- The ``simaaipciesrc`` plugin acts as a source in the GStreamer pipeline. It receives data from the PCIe interface and pushes it to the next element in the pipeline. The data flow is managed by the internal worker thread that continuously monitors for incoming data. End-of-stream (EOS) events are handled to gracefully terminate the pipeline. The plugin uses the SiMa.ai memory allocator for efficient memory management. The plugin is designed to work with SiMa.ai hardware.