工具/软件:
您好专家、
我将 AM62a 与通过 Arducam v3Link 适配器板连接的 IMX219 800 万像素摄像头配合使用。
在 1080p (IMX219_CAM_FMT=“${IMX219_CAM_FMT:-[fmt:SRGGB8_1X8/1920x1080 field:none]}“)中、gstreamer 工作正常。
Gstreamer 流水线为:
gst-launch-1.0 \ v4l2src device=/dev/video-imx219-cam1 io-mode=5 ! queue max-size-buffers=1 leaky=2 ! video/x-bayer,width=1920,height=1080,framerate=30/1,format=rggb ! \ tiovxisp sink_0::device=/dev/v4l-imx219-subdev1 sensor-name=SENSOR_SONY_IMX219_RPI dcc-isp-file=/opt/imaging/imx219/linear/dcc_viss_1920x1080.bin \ sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_1920x1080.bin format-msb=7 ! \ video/x-raw,format=NV12, width=1920,height=1080 ! queue ! mosaic.sink_0 \ tiovxmosaic name=mosaic \ sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<640>" sink_0::heights="<480>" ! \ queue ! video/x-raw, width=1920, height=1080 ! queue ! kmssink driver-name=tidss sync=false force-modesetting=true
我为分辨率 3264x2464 创建了 bin 文件。 使用的配置文件是
SENSOR_ID 219 PRJ_DIR ../../../sensor_drv/src/imx219_output SENSOR_NAME imx219 SENSOR_DCC_NAME IMX219 SENSOR_WIDTH 3264 SENSOR_HEIGHT 2464 # 0=RGGB; 1=GRBG; 2=GBRG; 3=BGGR, 4=MONO COLOR_PATTERN 0 # sensor mode: 0 for linear (no decompanding), 1 for WDR (decompanding) WDR_MODE 0 # raw sensor image BIT_DEPTH: it may be 8, 10, or 12 for linear sensors; typically 12 for WDR mode because of companding BIT_DEPTH 10 # WDR BIT_DEPTH: WDR raw sensor image bitdepth after decompanding, typically 20 or 24 WDR_BIT_DEPTH 10 # WDR decompanding knee points (comma separated without spaces in between) WDR_KNEE_X 0,512,1408,2176,4095,65535 WDR_KNEE_Y 0,2048,16384,65536,1048063,1048063 # Sensor black level to subtract before decompanding (for linear sensors only and some Sony WDR sensors) BLACK_PRE 64 # Sensor black level to subtract after decompanding (for most WDR sensors and all linear sensors) BLACK_POST 0 # GAMMA value for compressing 20/24-bit WDR raw to 16-bit ISP internal # typically around 50 (0.5) for 24-bit WDR sensors and 70 (0.7) for 20-bit sensors GAMMA_PRE 70 # LSB location for H3A input bit range (from bit-H3A_INPUT_LSB to bit-H3A_INPUT_LSB+9) H3A_INPUT_LSB 0 # Choose the default gamma curve used for YUV output: 0 for BT709, 1 for a high contrast gamma curve YUV_GAMMA 1
并将这些文件复制到 imaging/imx219/linear
# ls ../imaging/imx219/linear/dcc_*3264* ../imaging/imx219/linear/dcc_2a_3264x2464.bin ../imaging/imx219/linear/dcc_viss_3264x2464.bin
还更改了脚本 setup_cameras_v3link.sh 和源代码
IMX219_CAM_FMT="${IMX219_CAM_FMT:-[fmt:SRGGB10_1X10/3264x2464 field: none]}"源设置脚本为时、终端打印
root@am62axx-evm:/opt/edgeai-gst-apps# source scripts/setup_cameras_v3link.sh
IMX219 Camera 0 detected
device = /dev/video-imx219-cam0
name = imx219
format = [fmt:SRGGB10_1X10/3264x2464 field: none]
subdev_id = /dev/v4l-imx219-subdev0
isp_required = yes
ldc_required = yes
IMX219 Camera 1 detected
device = /dev/video-imx219-cam1
name = imx219
format = [fmt:SRGGB10_1X10/3264x2464 field: none]
subdev_id = /dev/v4l-imx219-subdev1
isp_required = yes
ldc_required = yes
错误和运行的流水线的终端打印如下
root@am62axx-evm:/opt/edgeai-gst-apps# gst-launch-1.0 \ > v4l2src device=/dev/video-imx219-cam1 io-mode=5 ! queue max-size-buffers=1 leaky=2 ! video/x-bayer,width=3264,height=2464,framerate=20/1,format=rggb10 ! \ > tiovxisp sink_0::device=/dev/v4l-imx219-subdev1 sensor-name=SENSOR_SONY_IMX219_RPI dcc-isp-file=/opt/imaging/imx219/linear/dcc_viss_3264x2464.bin \ > sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_3264x2464.bin format-msb=8 ! \ > video/x-raw,format=NV12, width=3264,height=2464 ! queue ! mosaic.sink_0 \ > tiovxmosaic name=mosaic \ > sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<640>" sink_0::heights="<480>" ! \ > queue ! video/x-raw, width=1920, height=1080 ! queue ! kmssink driver-name=tidss sync=false force-modesetting=true APP: Init ... !!! 5602.543668 s: MEM: Init ... !!! 5602.543736 s: MEM: Initialized DMA HEAP (fd=8) !!! 5602.543918 s: MEM: Init ... Done !!! 5602.543938 s: IPC: Init ... !!! 5602.561147 s: IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 5602.570757 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 5602.574496 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR 5602.574543 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING 5602.574561 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO 5602.576613 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-0 5602.576793 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-1 5602.576974 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-2 5602.577113 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-3 5602.577133 s: VX_ZONE_INFO: [tivxInitLocal:126] Initialization Done !!! 5602.577145 s: VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory. Additional debug info: /usr/src/debug/gstreamer1.0-plugins-good/1.22.12/sys/v4l2/gstv4l2src.c(950): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Buffer pool activation failed Execution ended after 0:00:00.018399415 Setting pipeline to NULL ... ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error. Additional debug info: /usr/src/debug/gstreamer1.0/1.22.12/libs/gst/base/gstbasesrc.c(3134): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: streaming stopped, reason not-negotiated (-4) (gst-launch-1.0:1973): GStreamer-Video-CRITICAL **: 00:00:50.750: gst_video_info_from_caps: assertion 'caps != NULL' failed ERROR: from element /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0: Unable to init TIOVX module Additional debug info: /usr/src/debug/edgeai-gst-plugins/1.0.0/gst-libs/gst/tiovx/gsttiovxmiso.c(1512): gst_tiovx_miso_negotiated_src_caps (): /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0 Freeing pipeline ... 5602.778012 s: VX_ZONE_WARNING: [vxReleaseContext:1275] Found a reference 0xffff83797cf0 of type 00000817 at external count 1, internal count 0, releasing it 5602.778058 s: VX_ZONE_WARNING: [vxReleaseContext:1277] Releasing reference (name=raw_image_81) now as a part of garbage collection 5602.778101 s: VX_ZONE_WARNING: [vxReleaseContext:1275] Found a reference 0xffff8383ac10 of type 00000813 at external count 1, internal count 0, releasing it 5602.778114 s: VX_ZONE_WARNING: [vxReleaseContext:1277] Releasing reference (name=object_array_82) now as a part of garbage collection 5602.779601 s: VX_ZONE_WARNING: [vxReleaseContext:1275] Found a reference 0xffff8383adc0 of type 00000813 at external count 1, internal count 0, releasing it 5602.779631 s: VX_ZONE_WARNING: [vxReleaseContext:1277] Releasing reference (name=object_array_84) now as a part of garbage collection 5602.780989 s: VX_ZONE_WARNING: [vxReleaseContext:1275] Found a reference 0xffff8383af70 of type 00000813 at external count 1, internal count 0, releasing it 5602.781016 s: VX_ZONE_WARNING: [vxReleaseContext:1277] Releasing reference (name=object_array_86) now as a part of garbage collection 5602.782343 s: VX_ZONE_WARNING: [vxReleaseContext:1275] Found a reference 0xffff8383b120 of type 00000813 at external count 1, internal count 0, releasing it 5602.782364 s: VX_ZONE_WARNING: [vxReleaseContext:1277] Releasing reference (name=object_array_88) now as a part of garbage collection 5602.783746 s: VX_ZONE_WARNING: [vxReleaseContext:1275] Found a reference 0xffff8383b2d0 of type 00000813 at external count 1, internal count 0, releasing it 5602.783774 s: VX_ZONE_WARNING: [vxReleaseContext:1277] Releasing reference (name=object_array_90) now as a part of garbage collection 5602.785126 s: VX_ZONE_WARNING: [vxReleaseContext:1275] Found a reference 0xffff8383b480 of type 00000813 at external count 1, internal count 0, releasing it 5602.785152 s: VX_ZONE_WARNING: [vxReleaseContext:1277] Releasing reference (name=object_array_92) now as a part of garbage collection APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! 5602.791689 s: IPC: Deinit ... !!! 5602.792216 s: IPC: DeInit ... Done !!! 5602.792260 s: MEM: Deinit ... !!! 5602.792277 s: DDR_SHARED_MEM: Alloc's: 6 alloc's of 96509952 bytes 5602.792290 s: DDR_SHARED_MEM: Free's : 6 free's of 96509952 bytes 5602.792299 s: DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes 5602.792314 s: MEM: Deinit ... Done !!! APP: Deinit ... Done !!!
请帮助我解决问题。
此致、
Sajan



