<div dir="ltr">Barnabas,<div>Oops, I was specifying "-c1" instead of "-C1" ... very embarrassing ... thank you for clearing that up for me ... <br>I am back on track, thanks to you.<br>Cheers,<br>Mario Bergeron (AlbertaBeef)</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Jan 14, 2025 at 9:55 AM Barnabás Pőcze <<a href="mailto:pobrn@protonmail.com">pobrn@protonmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi<br>
<br>
<br>
2025. január 14., kedd 15:43 keltezéssel, Mario Bergeron <<a href="mailto:grouby177@gmail.com" target="_blank">grouby177@gmail.com</a>> írta:<br>
<br>
> Hello,<br>
> <br>
> I have a design with four (4) capture pipelines implemented in the PL of a Zynq-UltraScale+ device. The capture pipelines include the following components:<br>
> - CAM : imx219, imx708, imx500, imx477<br>
> - CSI : MIPI CSI-2 receiver<br>
> - XISP : HLS-based ISP<br>
> - VPSS : for color space conversion and image resizing<br>
> - VCAP : Video Frame Buffer Write (DMA)<br>
> <br>
> These come up with the following names:<br>
> <br>
> // Additional context to what is being searched<br>
> // driver = "xilinx-video"<br>
> //<br>
> // Capture Pipeline 0<br>
> // V4l2VideoDevice = "vcap_mipi_0_v_proc output 0"<br>
> // V4l2Subdevice = "imx219 1-0010"<br>
> // V4l2Subdevice = "80050000.mipi_csi2_rx_subsystem"<br>
> // V4l2Subdevice = "a0010000.ISPPipeline_accel"<br>
> // V4l2Subdevice = "a0040000.v_proc_ss"<br>
> //<br>
> // Capture Pipeline 1<br>
> // V4l2VideoDevice = "vcap_mipi_1_v_proc output 0"<br>
> // V4l2Subdevice = "imx708"<br>
> // V4l2Subdevice = "dw9807 2-000c"<br>
> // V4l2Subdevice = "80051000.mipi_csi2_rx_subsystem"<br>
> // V4l2Subdevice = "a0030000.ISPPipeline_accel"<br>
> // V4l2Subdevice = "a00c0000.v_proc_ss"<br>
> //<br>
> // Capture Pipeline 2<br>
> // V4l2VideoDevice = "vcap_mipi_2_v_proc output 0"<br>
> // V4l2Subdevice = "imx500 3-001a"<br>
> // V4l2Subdevice = "80052000.mipi_csi2_rx_subsystem"<br>
> // V4l2Subdevice = "a0090000.ISPPipeline_accel"<br>
> // V4l2Subdevice = "a0100000.v_proc_ss"<br>
> //<br>
> // Capture Pipeline 3<br>
> // V4l2VideoDevice = "vcap_mipi_3_v_proc output 0"<br>
> // V4l2Subdevice = "imx477 4-001a"<br>
> // V4l2Subdevice = "80053000.mipi_csi2_rx_subsystem"<br>
> // V4l2Subdevice = "a00b0000.ISPPipeline_accel"<br>
> // V4l2Subdevice = "a0180000.v_proc_ss"<br>
> <br>
> I am able to match the V4L2VideoDevice and V4L2Subdevices during "match" phase, and enumerate my camera pipelines:<br>
> <br>
> # LIBCAMERA_LOG_LEVELS=XISP:0 cam -l<br>
> [43:24:27.675100583] [5666] INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/root/libcamera.xisp_take01/build/src/ipa' to the IPA search path<br>
> [43:24:27.675839535] [5666] WARN IPAManager ipa_manager.cpp:148 No IPA found in '/usr/local/lib/libcamera'<br>
> [43:24:27.675941856] [5666] INFO Camera camera_manager.cpp:327 libcamera v0.4.0+19-91de5502-dirty (2025-01-14T14:36:27UTC)<br>
> [43:24:27.745595071] [5667] DEBUG XISP xisp.cpp:1153 [PipelineHandlerXISP::match] Looking for capture pipeline<br>
> [43:24:27.745819631] [5667] DEBUG XISP xisp.cpp:1234 VCAP : vcap_mipi_0_v_proc output 0<br>
> [43:24:27.745914892] [5667] DEBUG XISP xisp.cpp:1221 CSI : 80050000.mipi_csi2_rx_subsystem<br>
> [43:24:27.745987572] [5667] DEBUG XISP xisp.cpp:1185 CAM : imx219 1-0010<br>
> [43:24:27.746046542] [5667] DEBUG XISP xisp.cpp:1190 IMX219 : 1920x1080-SRGGB10_1X10<br>
> [43:24:27.746110092] [5667] DEBUG XISP xisp.cpp:1226 XISP : a0010000.ISPPipeline_accel<br>
> [43:24:27.746171352] [5667] DEBUG XISP xisp.cpp:1230 VPSS : a0040000.v_proc_ss<br>
> [43:24:27.755114607] [5667] DEBUG XISP xisp.cpp:1153 [PipelineHandlerXISP::match] Looking for capture pipeline<br>
> [43:24:27.755278268] [5667] DEBUG XISP xisp.cpp:1234 VCAP : vcap_mipi_1_v_proc output 0<br>
> [43:24:27.755350048] [5667] DEBUG XISP xisp.cpp:1221 CSI : 80051000.mipi_csi2_rx_subsystem<br>
> [43:24:27.755412538] [5667] DEBUG XISP xisp.cpp:1185 CAM : imx708<br>
> [43:24:27.755471358] [5667] DEBUG XISP xisp.cpp:1197 IMX708 : 1536x864-SRGGB10_1X10<br>
> [43:24:27.755533129] [5667] DEBUG XISP xisp.cpp:1217 VCM : dw9807 2-000c<br>
> [43:24:27.755596879] [5667] DEBUG XISP xisp.cpp:1226 XISP : a0030000.ISPPipeline_accel<br>
> [43:24:27.755657829] [5667] DEBUG XISP xisp.cpp:1230 VPSS : a00c0000.v_proc_ss<br>
> [43:24:27.765771027] [5667] DEBUG XISP xisp.cpp:1153 [PipelineHandlerXISP::match] Looking for capture pipeline<br>
> [43:24:27.765926408] [5667] DEBUG XISP xisp.cpp:1234 VCAP : vcap_mipi_2_v_proc output 0<br>
> [43:24:27.765996008] [5667] DEBUG XISP xisp.cpp:1185 CAM : imx500 3-001a<br>
> [43:24:27.766056888] [5667] DEBUG XISP xisp.cpp:1211 IMX500 : 2028x1520-SRGGB10_1X10<br>
> [43:24:27.766120928] [5667] DEBUG XISP xisp.cpp:1221 CSI : 80052000.mipi_csi2_rx_subsystem<br>
> [43:24:27.766183828] [5667] DEBUG XISP xisp.cpp:1226 XISP : a0090000.ISPPipeline_accel<br>
> [43:24:27.766244829] [5667] DEBUG XISP xisp.cpp:1230 VPSS : a0100000.v_proc_ss<br>
> [43:24:27.773600649] [5667] WARN CameraSensorProperties camera_sensor_properties.cpp:463 No static properties available for 'imx500'<br>
> [43:24:27.773693479] [5667] WARN CameraSensorProperties camera_sensor_properties.cpp:465 Please consider updating the camera sensor properties database<br>
> [43:24:27.773874120] [5667] DEBUG XISP xisp.cpp:1153 [PipelineHandlerXISP::match] Looking for capture pipeline<br>
> [43:24:27.774010170] [5667] DEBUG XISP xisp.cpp:1234 VCAP : vcap_mipi_3_v_proc output 0<br>
> [43:24:27.774081241] [5667] DEBUG XISP xisp.cpp:1221 CSI : 80053000.mipi_csi2_rx_subsystem<br>
> [43:24:27.774146091] [5667] DEBUG XISP xisp.cpp:1185 CAM : imx477 4-001a<br>
> [43:24:27.774205011] [5667] DEBUG XISP xisp.cpp:1204 IMX477 : 1332x990-SRGGB10_1X10<br>
> [43:24:27.774268071] [5667] DEBUG XISP xisp.cpp:1226 XISP : a00b0000.ISPPipeline_accel<br>
> [43:24:27.774331881] [5667] DEBUG XISP xisp.cpp:1230 VPSS : a0180000.v_proc_ss<br>
> [43:24:27.782596404] [5667] DEBUG XISP xisp.cpp:1153 [PipelineHandlerXISP::match] Looking for capture pipeline<br>
> Available cameras:<br>
> 1: 'imx219' (/base/pl-bus/i2c@80040000/sensor@10)<br>
> 2: 'imx708' (/base/pl-bus/i2c@80070000/sensor@10)<br>
> 3: 'imx500' (/base/pl-bus/i2c@80090000/sensor@1a)<br>
> 4: 'imx477' (/base/pl-bus/i2c@800b0000/sensor@1a)<br>
> <br>
> I have unexpected "Defer due to missing dependencies" messages, which is the V4L2VideoDevice entity:<br>
> <br>
> ...<br>
> [32:28:31.627641623] [4979] DEBUG Camera camera_manager.cpp:73 Starting camera manager<br>
> [32:28:31.678492579] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:242 New media device "xilinx-video" created from /dev/media0<br>
> [32:28:31.681069857] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media0 due to 1 missing dependencies<br>
> [32:28:31.681175337] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:105 Missing dependency = vcap_mipi_0_v_proc output 0<br>
> [32:28:31.682177024] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:330 All dependencies for media device /dev/media0 found<br>
> [32:28:31.682256265] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:270 Added device /dev/media0: xilinx-video<br>
> [32:28:31.682849299] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:242 New media device "xilinx-video" created from /dev/media1<br>
> [32:28:31.686341484] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media1 due to 1 missing dependencies<br>
> [32:28:31.686433004] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:105 Missing dependency = vcap_mipi_1_v_proc output 0<br>
> [32:28:31.687418801] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:330 All dependencies for media device /dev/media1 found<br>
> [32:28:31.687493362] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:270 Added device /dev/media1: xilinx-video<br>
> [32:28:31.688111086] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:242 New media device "xilinx-video" created from /dev/media2<br>
> [32:28:31.690556563] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media2 due to 1 missing dependencies<br>
> [32:28:31.690670334] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:105 Missing dependency = vcap_mipi_2_v_proc output 0<br>
> [32:28:31.691687431] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:330 All dependencies for media device /dev/media2 found<br>
> [32:28:31.691797452] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:270 Added device /dev/media2: xilinx-video<br>
> [32:28:31.692409806] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:242 New media device "xilinx-video" created from /dev/media3<br>
> [32:28:31.694842583] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media3 due to 1 missing dependencies<br>
> [32:28:31.694955104] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:105 Missing dependency = vcap_mipi_3_v_proc output 0<br>
> [32:28:31.695980181] [4979] DEBUG DeviceEnumerator device_enumerator_udev.cpp:330 All dependencies for media device /dev/media3 found<br>
> [32:28:31.696112512] [4979] DEBUG DeviceEnumerator device_enumerator.cpp:270 Added device /dev/media3: xilinx-video<br>
> [32:28:31.697657323] [4979] DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler 'xisp'<br>
> ...<br>
<br>
See the messages after: "All dependencies for media device /dev/mediaX found".<br>
So it seems to me that everything is in order, four media devices successfully discovered.<br>
<br>
<br>
> <br>
> I also get these unexpected messages:<br>
> <br>
> ...<br>
> [32:28:31.709995969] [4979] DEBUG CameraSensor camera_sensor_raw.cpp:210 imx219 1-0010: unsupported number of sinks (0) or sources (2)<br>
> ...<br>
> [32:28:31.728432108] [4979] DEBUG CameraSensor camera_sensor_raw.cpp:210 imx708: unsupported number of sinks (0) or sources (2)<br>
> ...<br>
> [32:28:31.746255953] [4979] DEBUG CameraSensor camera_sensor_raw.cpp:210 imx500 3-001a: unsupported number of sinks (0) or sources (2)<br>
> [32:28:31.750244771] [4979] WARN CameraSensorProperties camera_sensor_properties.cpp:463 No static properties available for 'imx500'<br>
> [32:28:31.750356602] [4979] WARN CameraSensorProperties camera_sensor_properties.cpp:465 Please consider updating the camera sensor properties database<br>
> ...<br>
> [32:28:31.762326825] [4979] DEBUG CameraSensor camera_sensor_raw.cpp:210 imx477 4-001a: unsupported number of sinks (0) or sources (2)<br>
> ...<br>
> <br>
> <br>
> I need to know if the previous messages are normal, or need to be resolved.<br>
> <br>
> <br>
> When I try to capture images, I can see the "generateConfigration" and "validate" phases being run, but get a "Failed to Acquire" error before the "configure" phase ...<br>
> <br>
> # LIBCAMERA_LOG_LEVELS=XISP:0 cam --camera /base/pl-bus/i2c@80040000/sensor@10 -c1<br>
> ...<br>
> [43:26:44.685016474] [5673] DEBUG XISP xisp.cpp:1153 [PipelineHandlerXISP::match] Looking for capture pipeline<br>
> ...<br>
> [43:26:44.723683858] [5672] DEBUG XISP xisp.cpp:949 [PipelineHandlerXISP::generateConfiguration] Generate Configuration<br>
> [43:26:44.723784408] [5672] DEBUG XISP xisp.cpp:634 [PipelineHandlerXISP::validate] Validating Configuration<br>
> [43:26:44.723851918] [5672] DEBUG XISP xisp.cpp:678 Computed sensor configuration: 1920x1080-UYVY8_1X16<br>
> [43:26:44.723925599] [5672] DEBUG XISP xisp.cpp:730 Selected sensor format: 1920x1080-UYVY8_1X16<br>
> [43:26:44.724095059] [5672] DEBUG XISP xisp.cpp:634 [PipelineHandlerXISP::validate] Validating Configuration<br>
> [43:26:44.724171159] [5672] DEBUG XISP xisp.cpp:678 Computed sensor configuration: 1920x1080-UYVY8_1X16<br>
> [43:26:44.724235059] [5672] DEBUG XISP xisp.cpp:730 Selected sensor format: 1920x1080-UYVY8_1X16<br>
> Using camera /base/pl-bus/i2c@80040000/sensor@10 as cam0<br>
> [43:26:44.724404510] [5672] ERROR Camera camera.cpp:690 Camera in Acquired state trying acquire() requiring state Available<br>
> Failed to acquire camera 1<br>
> Failed to create camera session<br>
<br>
The camera "--camera /base/pl-bus/i2c@80040000/sensor@10" and "-c1" arguments designate<br>
the same camera. As the error says "Camera in Acquired state" because it has<br>
been already acquired: "Using camera /base/pl-bus/i2c@80040000/sensor@10 as cam0".<br>
What exactly are you trying to achieve here?<br>
<br>
<br>
Regards,<br>
Barnabás Pőcze<br>
<br>
<br>
> <br>
> <br>
> I have not modified the source code for the cam application.<br>
> I built the libcamera repo as follows:<br>
> <br>
> # meson setup build --buildtype=release -Dpipelines=xisp -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=enabled -Dqcam=disabled -Ddocumentation=disabled -Dpycamera=enabled<br>
> # ninja -C build install<br>
> <br>
> Then launch the application as follows:<br>
> <br>
> # meson devenv -C build<br>
> # cam ...<br>
> # LIBCAMERA_LOG_LEVELS=*:0 cam ...<br>
> <br>
> Any help and/or collaboration would be greatly appreciated :)<br>
> <br>
> Cheers !<br>
> <br>
> Mario Bergeron (AlbertaBeef)<br>
</blockquote></div>