Tool/software:
Hi experts
We want to develop our own plugins to implement the application of some simple algorithms.
The specific process is as follows:
1.According to official information from gstreamer(gitlab.freedesktop.org/.../lv2),built a self-developed plugin.
2.Then apply the plugin to the normal pipeline;
3.An error occurred.Please refer to the attachment for details;
1.normal pipeline gst-launch-1.0 \ v4l2src device=/dev/video3 io-mode=5 ! \ video/x-bayer, width=1920, height=1280, format=bggr12, framerate=60/1 ! \ plugin ! \ tiovxisp sensor-name=SENSOR_OX3C \ dcc-isp-file=/opt/imaging/ox03c/dcc_viss_wdr.bin \ sink_0::dcc_2a_file=/opt/imaging/ox03c/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev2 format-msb=11 \ sink_0::pool-size=2 src::pool-size=2 ! \ tiovxldc dcc-file=/opt/imaging/ox03c/dcc_ldc_wdr.bin sensor-name=SENSOR_OX3C \ sink::pool-size=2 src::pool-size=2 ! \ video/x-raw, format=NV12, width=1920, height=1280,framerate=60/1 ! queue ! \ kmssink driver-name=tidss async=false sync=false src-x=390 src-y=130 src-w=1290 src-h=770 can-scale=false 2.add self-developed gstreamer plugin gst-launch-1.0 \ v4l2src device=/dev/video3 io-mode=5 ! \ video/x-bayer, width=1920, height=1280, format=bggr12, framerate=60/1 ! \ ISPAlgorithm ! \ tiovxisp sensor-name=SENSOR_OX3C \ dcc-isp-file=/opt/imaging/ox03c/dcc_viss_wdr.bin \ sink_0::dcc_2a_file=/opt/imaging/ox03c/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev2 format-msb=11 \ sink_0::pool-size=2 src::pool-size=2 ! \ tiovxldc dcc-file=/opt/imaging/ox03c/dcc_ldc_wdr.bin sensor-name=SENSOR_OX3C \ sink::pool-size=2 src::pool-size=2 ! \ video/x-raw, format=NV12, width=1920, height=1280,framerate=60/1 ! queue ! \ kmssink driver-name=tidss async=false sync=false src-x=390 src-y=130 src-w=1290 src-h=770 can-scale=false 3.Error message root@am62axx-evm:/usr/local/apd/scripts# gst-launch-1.0 \ > v4l2src device=/dev/video3 io-mode=5 ! \ > video/x-bayer, width=1920, height=1280, format=bggr12, framerate=60/1 ! \ > ISPAlgorithm ! \ > tiovxisp sensor-name=SENSOR_OX3C \ > dcc-isp-file=/opt/imaging/ox03c/dcc_viss_wdr.bin \ > sink_0::dcc_2a_file=/opt/imaging/ox03c/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev2 format-msb=11 \ > sink_0::pool-size=2 src::pool-size=2 ! \ > tiovxldc dcc-file=/opt/imaging/ox03c/dcc_ldc_wdr.bin sensor-name=SENSOR_OX3C \ > sink::pool-size=2 src::pool-size=2 ! \ > video/x-raw, format=NV12, width=1920, height=1280,framerate=60/1 ! queue ! \ > kmssink driver-name=tidss async=false sync=false src-x=390 src-y=130 src-w=1290 src-h=770 can-scale=false APP: Init ... !!! MEM: Init ... !!! MEM: Initialized DMA HEAP (fd=6) !!! MEM: Init ... Done !!! IPC: Init ... !!! IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 894.402447 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 894.402588 s: VX_ZONE_INIT:Enabled 894.402615 s: VX_ZONE_ERROR:Enabled 894.402672 s: VX_ZONE_WARNING:Enabled 894.403578 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 894.404138 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 894.404609 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 894.405213 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 894.405296 s: VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!! 894.406151 s: VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!! Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Redistribute latency... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: No downstream pool to import from. Additional debug info: ../gst-plugins-good-1.20.7/sys/v4l2/gstv4l2object.c(5305): gst_v4l2_object_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: When importing DMABUF or USERPTR, we need a pool to import from Execution ended after 0:00:00.001277535 Setting pipeline to NULL ... ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error. Additional debug info: ../gstreamer-1.20.7/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: streaming stopped, reason not-negotiated (-4) (gst-launch-1.0:1397): GStreamer-Video-CRITICAL **: 18:11:34.918: gst_video_info_from_caps: assertion 'caps != NULL' failed ERROR: from element /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0: Unable to init TIOVX module Additional debug info: ../gst-libs/gst/tiovx/gsttiovxmiso.c(1512): gst_tiovx_miso_negotiated_src_caps (): /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0 Freeing pipeline ... 894.455631 s: VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!! 894.459304 s: VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!! APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! IPC: Deinit ... !!! IPC: DeInit ... Done !!! MEM: Deinit ... !!! DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes DDR_SHARED_MEM: Free's : 0 free's of 0 bytes DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes MEM: Deinit ... Done !!! APP: Deinit ... Done !!!
4.When we set io-mode to 2 and 4, it can run normally, but there will be frame drops.
May I ask if there are any other solutions for me to apply my self-developed plugin before the tivoxisp plugin when io mode=5.