simaaisrc ========= The ``simaaisrc`` GStreamer plugin is a source element that reads data from a file or multiple files specified via properties and pushes it into a GStreamer pipeline. It supports reading data from a single file or multiple files using a format specifier in the location property. Alternatively it can read from multiple files specified through the ``segments`` property. The plugin is designed to work with SiMa.ai memory allocators and buffer pools, enabling efficient handling of large data buffers. Properties ---------- ============ ======= =================== ================================================================================= Property Type Default Description ============ ======= =================== ================================================================================= blocksize int 4096 Size in bytes to read per buffer (-1 = default). do-timestamp boolean FALSE Apply current stream time to buffers. num-buffers int -1 Number of buffers to output before sending EOS (-1 = unlimited). location string NULL Path to the input file (or a format string when multiple files are expected). index int 0 Starting file index when using format specifier in location property. name string “simaaisrc0” The name of the object. node-name string NULL Output node name used in custom metadata. mem-target int 0 Specifies the memory target (0: generic, 1: EV74, 2: DMS0). delay int64 0 Milliseconds to sleep between buffer creations. stream-id string “unknown-stream-id” Stream ID or Camera ID, used in custom metadata. pool-size int 2 Number of buffers allocated in the output buffer pool. loop boolean FALSE If TRUE, loops back to the initial index after reaching the last file. segments string NULL Comma separated key=value pairs where key is segment name and value is file path. ============ ======= =================== ================================================================================= Usage ----- The ``simaaisrc`` plugin is integrated into a GStreamer pipeline as a source element. It can be configured using properties. **Example using the ``location`` property to read from a single file:** .. code:: bash gst-launch-1.0 simaaisrc location=/tmp/input.bin node-name=mynode ! fakesink dump=true **Example using the ``location`` property and index to read multiple files:** .. code:: bash gst-launch-1.0 simaaisrc location=/tmp/input%d.bin index=1 node-name=mynode loop=true ! fakesink dump=true **Example using the ``segments`` property to read data from multiple files:** .. code:: bash gst-launch-1.0 simaaisrc segments="hm_tensor=/data/hm_tensor.bin,paf_tensor=/data/paf_tensor.bin" node-name=mynode mem-target=1 ! fakesink dump=true Installation ------------ To install the ``simaaisrc`` plugin, copy the plugin files (from ``/usr/local/simaai/plugin_zoo/gst-simaai-plugins-base/gst/``) into your GStreamer plugins directory (usually ``plugins/``). Integrating into a GStreamer Pipeline ------------------------------------- The ``simaaisrc`` element reads data from the specified file(s) and pushes it as ``GstBuffer`` objects downstream in the pipeline. Each buffer contains custom metadata including: - buffer-id: Physical memory address of the buffer. - buffer-name: Name of the node (specified via the ``node-name`` property). - buffer-offset: Offset within the buffer. - frame-id: Sequential frame ID. - stream-id: Stream ID (specified via the ``stream-id`` property). - timestamp: Timestamp of when the buffer was created. The plugin uses SiMa.ai memory allocation, therefore make sure your build system has appropriate dependencies and linker paths configured. The output buffer’s memory will reflect the memory target specified through the ``mem-target`` property.