Jetson Nano with XGS12000 Imager not working with gstreamer

I am working with a custom carrier board with a Jetson Nano module and an image sensor module based on the OnSemi XGS12000. I can capture and save images using v4l2-ctl but it fails when using gstreamer. The custom carrier board doesn’t have a display so the tests are with saving the images to files. The gstreamer command works correctly with the devkit and a imx219 imager.

Working v4l2-ctl command:

v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=1 --stream-to=image.raw

gstreamer command - fails with XGS12000 works with imx219:

#!/bin/bash
WIDTH=4096
HEIGHT=3088

gst-launch-1.0 \
	nvarguscamerasrc num-buffers=30  ! "video/x-raw(memory:NVMM), width=(int)$WIDTH, height=(int)$HEIGHT, framerate=5/1" ! \
		nvvidconv ! "video/x-raw(memory:NVMM), format=(string)UYVY, width=(int)$WIDTH, height=(int)$HEIGHT, framerate=5/1" ! \
		videorate drop-only=true ! "video/x-raw(memory:NVMM), framerate=1/1" ! \
		nvvidconv  ! "video/x-raw, format=(string)I420, width=(int)$WIDTH, height=(int)$HEIGHT" ! \
		nvjpegenc quality=100 ! \
		multifilesink location=images/image0_%03d.jpg

Debug output from nvargus-daemon:

=== NVIDIA Libargus Camera Service (0.97.3)=== Listening for connections...=== gst-launch-1.0[6407]: Connection established (7FAC3B01D0)Thread 1 getting next capture
Thread 1 is waiting
Thread 2 getting next capture
Thread 2 is waiting
Thread 3 getting next capture
Thread 3 is waiting
Thread 4 getting next capture
Thread 4 is waiting
Thread 5 getting next capture
Thread 5 is waiting
Thread 6 getting next capture
Thread 6 is waiting
Thread 7 getting next capture
Thread 7 is waiting
Thread 8 getting next capture
Thread 8 is waiting
Thread 9 getting next capture
Thread 9 is waiting
Thread 10 getting next capture
Thread 10 is waiting
Thread 11 getting next capture
Thread 11 is waiting
Thread 12 getting next capture
Thread 12 is waiting
Starting services...
Worker thread IspHw statsComplete start
Worker thread IspHw frameComplete start
Worker thread IspHw statsComplete start
Worker thread IspHw frameComplete start
Worker thread CaptureScheduler checkFramePending start
Worker thread CaptureScheduler frameStart start
Worker thread V4L2CaptureScheduler checkCaptureComplete start
Worker thread V4L2CaptureScheduler issueCaptures start
Worker thread PS handleRequests start
getInstance: s_instance(0x7fa48c6c30)
getInstance: s_instance(0x7fa48c6c30)
subscribe: SensorType(gyroscope)
subscribe: create SensorType(gyroscope) sensor(0x7fa48b8cb0)
subscribe: SensorType(accelerometer)
subscribe: create SensorType(accelerometer) sensor(0x7fa48ce6e0)
AC plugin not present: dlopen "acplugin.so", acplugin.so: cannot open shared object file: No such file or directory
Services are started
NvPclSetHotplugCallback: ++++++++++++++++++++++
---- Imager: Calibration blob file handling supported in this build ----
NvPclHwGetModuleList: OFParserListModules Succeeded
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: fwacam_xgs12k-1
NvPclHwPrintModuleDefinition -- Position: 66
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: 
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: xgs12k 2-0010
NvPclHwMatchPartNum: Found calibration Part#: RBPCV2:"RBPCV2"
NvPclHwPrintModuleDefinition -- Name: porg_rear_RBPCV2
NvPclHwPrintModuleDefinition -- Position: 0
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: 
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: imx219 8-0010
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: NvPclModule list[0]: fwacam_xgs12k-1 position66
NvPclModuleListInitialize: NvPclModule list[1]: porg_rear_RBPCV2 position0
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
getHotplugMonitor: Getting hotplug monitor instance
 initializeHotplug++
 hotPlugfunc ++ 
 addWatch: Watch added wd='1'
CheckProcDTExists: INFO: accessing /proc/device-tree/tegra-virtual-camera-platform/modules; No such file or directory
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
setHotplugCallback: Registered new callback client
NvPclSetHotplugCallback: ----------------------
 hotPlugfunc: reading from inotify FD, Thread waiting 
NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 66 match at index[0]
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa47e4240
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa48282d0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa44f8fd0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa47ecc10
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa4927930
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa492b590
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16
CheckOverridesPermissions: stat(/Calib/camera_override.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/camera_overrides.isp] 2/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/camera_overrides.isp] 5/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/fwacam_xgs12k-1.isp] 6/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/fwacam_xgs12k-1.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/fwacam_xgs12k-1.isp] 7/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/fwacam_xgs12k-1.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/fwacam_xgs12k-1.isp] 8/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/fwacam_xgs12k-1.isp) call failed
---- imager: No override file found. ----
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/vendor/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/vendor/nvcam/settings/fwacam_xgs12k-1.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/fwacam_xgs12k-1.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/fwacam_xgs12k-1.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_lens)
NvPclCreateDriver: Found a Driver name match (v4l2_lens)
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_lens ++++++++++++++++++
initialize WARNING: No focuser object, allocating for lens
OFDPropertyCopyToLong: could not read property [maxslewrate]
loadLensMetadata: maxslewrate not set in driver
NvPclInitializeDrivers: NvOdmLensStub ------------------
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
OFDPropertyGetString: could not read property [use_decibel_gain]
OFDPropertyGetString: could not read property [delayed_gain]
OFDPropertyCopyToLong: could not read property [has-eeprom]
OFDPropertyGetString: could not read property [type]
loadSubType: Sensor type missing in DT, 206
OFDPropertyCopyToLong: could not read property [set_mode_delay_ms]
OFDPropertyCopyToLong: could not read property [mode0.vc_id]
OFDPropertyCopyToLong: could not read property [mode0.csi_pixel_bit_depth]
OFDPropertyCopyToLong: could not read property [mode0.dynamic_pixel_bit_depth]
OFDPropertyGetString: could not read property [mode0.mode_type]
mode 0: Failed to load mode type
OFDPropertyGetString: could not read property [mode0.pixel_phase]
mode 0: Failed to load pixel phase
OFDPropertyCopyToLongLong: could not read property [mode0.serdes_pix_clk_hz]
OFDPropertyCopyToLongLong: could not read property [mode0.exp_time_1h]
OFDPropertyCopyToFloat: could not read property [mode0.gain_step_pitch]
OFDPropertyCopyToLong: could not read property [mode0.embedded_metadata_width]
OFDPropertyGetString: could not read property [mode0.x_start]
OFDPropertyGetString: could not read property [mode0.y_start]
OFDPropertyGetString: could not read property [mode0.x_end]
OFDPropertyGetString: could not read property [mode0.y_end]
OFDPropertyGetString: could not read property [mode0.h_scaling]
OFDPropertyGetString: could not read property [mode0.v_scaling]
initialize: Loaded Driver: 1 Modes Available--------------
NvPclInitializeDrivers: v4l2_sensor ------------------
NvPclOpen: ----------------------
LSC: LSC surface is not based on full res!
NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 0 match at index[1]
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa492cdc0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa4b520d0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa4b2d0f0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa4927de0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa492a7e0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa492a870
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16
CheckOverridesPermissions: stat(/Calib/camera_override.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/camera_overrides.isp] 2/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/camera_overrides.isp] 5/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/porg_rear_RBPCV2.isp] 6/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/porg_rear_RBPCV2.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/porg_rear_RBPCV2.isp] 7/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/porg_rear_RBPCV2.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/porg_rear_RBPCV2.isp] 8/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/porg_rear_RBPCV2.isp) call failed
---- imager: No override file found. ----
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/vendor/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/vendor/nvcam/settings/porg_rear_RBPCV2.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/porg_rear_RBPCV2.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/porg_rear_RBPCV2.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_lens)
NvPclCreateDriver: Found a Driver name match (v4l2_lens)
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_lens ++++++++++++++++++
initialize WARNING: No focuser object, allocating for lens
OFDPropertyCopyToLong: could not read property [maxslewrate]
loadLensMetadata: maxslewrate not set in driver
NvPclInitializeDrivers: NvOdmLensStub ------------------
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent:  (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 106)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa4927de0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa492a7e0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa492a870
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa492cdc0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa4b520d0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa4b2d0f0
NvPclStateControllerOpen: Failed ImagerGUID 0. (error 0xA000E)
NvPclStateControllerClose: Module porg_rear_RBPCV2 closed
NvPclOpen: PCL Open Failed. Error: 0xf
NvPclClose: ++++++++++++++++++++++
NvPclClose: ----------------------
NvPclOpen: ----------------------
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 295)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function getSource(), line 458)
Acquiring SCF Camera device source via index 1 has failed. === gst-launch-1.0[6407]: CameraProvider initialized (0x7fa4927840)sourceRegistry[0] assigned

ispRegistry[0] assigned

Using Source GUID 42
Worker thread ViCsiHw frameComplete start
Worker thread ViCsiHw frameStart start
NvPclPowerOn: +++++++++++
NvPclPowerOn: -----------
Using ISP A
NvPHSSendThroughputHints: sensorId=66, m_usecase=4, m_type=2, m_value=4294967295, m_timeout_ms=1000

SCF: Error BadValue: NvPHSSendThroughputHints (in src/common/CameraPowerHint.cpp, function sendCameraPowerHint(), line 56)
LSC: LSC surface is not based on full res!
AC plugin not present: dlopen "acplugin.so", acplugin.so: cannot open shared object file: No such file or directory
No library found, disabling AC plugin.
Worker thread CaptureDispatcher start
No output buffers for 2
InstructionList:
  + GraphSettings
      | SensorMode: 4096x3088 BayerS16RGGB 14.9fps
      | output 0: 4096x3088 BL U8_V8_ER 420SP
      | inputClipRect 0: (0.00,0.00, 1.00,1.00)

  + Instruction List
      | id: 0
      +  0: CCDataSetupStage
          | EstimatedIspOutLatencyFrames: 5
          | NumConcurrentCaptures: 1
          | UnprocessedYuvBufferMask: 0
      +  1: ACSynchronizeStage
      +  2: AeAfApplyStage
      +  3: AcPluginStage
          | operation: opApply
      +  4: AcMergeStage
          | IspIn: [4096, 3088]
          | IspOut0: [4096, 3088]
          | IspOut1: [0, 0]
          | IspOut2: [0, 0]
      +  5: TempBufferAcquireStage
          | Buffer Index: 2
          | BufferRequirements: 4096x1 Pitch NonColor8
      +  6: TempBufferAcquireStage
          | Buffer Index: 3
          | BufferRequirements: 524288x1 Pitch NonColor8
      +  7: SensorISPCaptureStage
          | Source GUID: 66
          | Output A Buffer: 0
          | SensorMetadata Buffer: 2
          | Output IspStats Buffer: 3
      +  8: StatsBufferAcquireStage
          | Buffer Index: 1
          | BufferRequirements: 640x484 Pitch Y8_ER 420
      +  9: BlitStage
          | Input Buffer: 0
          | Output Buffer: 1
          | Filter: Nearest
          | Transform: None
          | Src Rect: Not used
          | Dst Rect: Not used
      + 10: StatsUpdateStage
          | Output Meta Buffer: 2
          | Output IspStats Buffer: 3
      + 11: BufferReturnStage
          | Output A Buffer: 2
      + 12: BufferReturnStage
          | Output A Buffer: 3
      + 13: AcPluginStage
          | operation: opAnalyze
      + 14: AfAnalysisStage
      + 15: MonitorStage
      + 16: ExifStage
      + 17: MakerNoteStage
      + 18: BufferReturnStage
          | Output A Buffer: 0
      + 19: MetadataReturnStage
      + 20: PerfStatsStage

Created fiber 0x7f4c000b20 for CC 101 globalID 101 session 66
Thread 1 is working on CC 101 session 66 globalID 101 step 0
CC 101 session 66 completed step 0 in fiber 0x7f4c000b20
cc 101(1) session 66 runCount=0 runIspOut=0, latest ccId=0
CC 101 session 66 completed step 1 in fiber 0x7f4c000b20
NV AE and AfApply algorithms are active.
CC 101 session 66 completed step 2 in fiber 0x7f4c000b20
CC 101 session 66 completed step 3 in fiber 0x7f4c000b20
CC 101 session 66 completed step 4 in fiber 0x7f4c000b20
CC 101 session 66 completed step 5 in fiber 0x7f4c000b20
CC 101 session 66 completed step 6 in fiber 0x7f4c000b20
CC 101 session 66 processing step 7 in fiber 0x7f4c000b20
FiberScheduler: cc 101, session 66, fiber 0x7f4c000b20 in progress...

Thread 1 getting next captureThread 2 is waiting
Created fiber 0x7f4c000dd0 for CC 102 globalID 102 session 66
Thread 3 is working on CC 102 session 66 globalID 102 step 0
CC 102 session 66 completed step 0 in fiber 0x7f4c000dd0
cc 102(2) session 66 runCount=1 runIspOut=0, latest ccId=0
CC 102 session 66 completed step 1 in fiber 0x7f4c000dd0
NV AE and AfApply algorithms are active.

Thread 1 is waiting
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
writeMode: Target mode Id(0): Resolution 4096x3088
CC 102 session 66 completed step 2 in fiber 0x7f4c000dd0
CC 102 session 66 completed step 3 in fiber 0x7f4c000dd0
CC 102 session 66 completed step 4 in fiber 0x7f4c000dd0
CC 102 session 66 completed step 5 in fiber 0x7f4c000dd0
CC 102 session 66 completed step 6 in fiber 0x7f4c000dd0
CC 102 session 66 processing step 7 in fiber 0x7f4c000dd0
FiberScheduler: cc 102, session 66, fiber 0x7f4c000dd0 in progress...

Thread 3 getting next capture
Thread 4 is waiting
Thread 3 is waiting
writeFrameRate:	INPUT frameRate:14.860000
writeGain:	INPUT gainCtrl:20 analogGain:1.000000
updateOutputSettings:	OUTPUT frameRate:14.859999
updateOutputSettings:	OUTPUT analogGain:1.000000
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
writeFrameRate:	INPUT frameRate:5.000000
writeExposure:	INPUT expTime:0.033331
updateOutputSettings:	OUTPUT frameRate:5.000000
updateOutputSettings:	OUTPUT expTime:0.033330
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
SCF: Error BadParameter: Invalid GUID (in src/services/power/PowerServiceRequest.cpp, function setRequest(), line 96)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function makePowerRequest(), line 407)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function setPowerRequirements(), line 737)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function issueCapture(), line 449)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1293)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1124)
FiberScheduler: cc 101, session 66, fiber 0x7f4c000b20 aborted in async operation

SCF: Error Timeout:  (propagating from src/api/Buffer.cpp, function waitForUnlock(), line 637)
SCF: Error Timeout:  (propagating from src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 358)
FiberScheduler: fiber 0x7f4c000b20 exiting
SCF: Error BadParameter:  (propagating from src/common/Utils.cpp, function workerThread(), line 116)
SCF: Error BadParameter: Worker thread CaptureScheduler frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
disposing CC 101 Session 66
SCF: Error Timeout:  (propagating from src/api/Buffer.cpp, function waitForUnlock(), line 637)
SCF: Error Timeout:  (propagating from src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 358)
Thread 5 is waiting
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceEvent.cpp, function wait(), line 59)
Error: Camera HwEvents wait, this may indicate a hardware timeout occured,abort current/incoming cc
Created fiber 0x7f4c000f70 for CC 103 globalID 103 session 66
Thread 6 is working on CC 103 session 66 globalID 103 step 0
Fiber 0x7f4c000f70 is aborting in CC 103 Session 66
FiberScheduler: cc 103 session 66, fiber 0x7f4c000f70 aborted

FiberScheduler: fiber 0x7f4c000f70 exiting
Thread 6 getting next capture
Thread 6 is waiting
Thread 8 is waiting
Thread 7 is waiting
=== gst-launch-1.0[6407]: Connection closed (7FAC3B01D0)=== gst-launch-1.0[6407]: WARNING: CameraProvider was not destroyed before client connection terminated.=== gst-launch-1.0[6407]:          The client may have abnormally terminated. Destroying CameraProvider...=== gst-launch-1.0[6407]: CameraProvider destroyed (0x7fa4927840)=== gst-launch-1.0[6407]: WARNING: Cleaning up 1 outstanding requests...=== gst-launch-1.0[6407]: WARNING: Cleaning up 1 outstanding streams...SCF: Error InvalidState: 1 buffers still pending during EGLStreamProducer destruction (propagating from src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 306)
SCF: Error InvalidState:  (propagating from src/services/gl/EGLStreamProducer.cpp, function ~EGLStreamProducer(), line 50)
=== gst-launch-1.0[6407]: WARNING: Cleaning up 1 outstanding stream settings...=== gst-launch-1.0[6407]: WARNING: Cleaning up 1 outstanding sessions...

hello steve.gieseking,

it looks like a global shutter camera,
however… is this the camera be used in continuous capture or triggered operation? is this a monochrome outputs?

The sensor is global shutter. I am currently running continuous capture.
I can use v4l2-ctl to run a continuous stream and it will capture at my default frame rate.

v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=1 --stream-skip=100 --stream-to=image.raw

The image sensor is bayer color. I have tried both 10 bit (pixel_t = “bayer_rggb10”) and 12 bit (pixel_t = “bayer_rggb12”) modes with the same results: v4l2-ctl image capture works, gstreamer fails.

With gstreamer, the image sensor does stream images until I interrupt the command. The images just don’t seem to get passed through the pipeline.

The kernel version for the custom system is L4T R32.4.3.
The devkit was running L4T R32.5.2.

hello steve.gieseking.

there might be potential issues for not having the same release version.

however,
it’s libargus to check device tree settings and register the device to camera stack. it looks device did not register correctly according to those failure logs.
please review your DT settings, you may see-also developer guide Sensor Software Driver Programming for reference,

(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent:  (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 106)

With regards to the debug lines that indicate ModuleNotPresent, I see these same lines in the debug output of the version running on the devkit with the imx219 module which is working.

The difference seems to the be in following lines:

NvPclSettingsApply: Reading PCL settings
SCF: Error BadParameter: Invalid GUID (in src/services/power/PowerServiceRequest.cpp, function setRequest(), line 96)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function makePowerRequest(), line 407)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function setPowerRequirements(), line 737)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function issueCapture(), line 449)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1293)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1124)
FiberScheduler: cc 101, session 66, fiber 0x7f4c000b20 aborted in async operation

hello steve.gieseking.

please review the device tree settings, especially the field of tegra-camera-platform{}.
please refer to Camera Modules and the Device Tree, you should have unique naming for those module properties.
thanks

It looks like the problem was with some pieces of the imx219 still being in the device tree even though that image sensor was not detect.

NvPclHwMatchPartNum: Found calibration Part#: RBPCV2:"RBPCV2"
NvPclHwPrintModuleDefinition -- Name: porg_rear_RBPCV2
NvPclHwPrintModuleDefinition -- Position: 0
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_lens
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: 
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[1].DevName: imx219 8-0010
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: NvPclModule list[0]: fwacam_xgs12k-1 position66
NvPclModuleListInitialize: NvPclModule list[1]: porg_rear_RBPCV2 position0

Eliminating this allowed gstreamer to work.