HSB Sensor Integration and SIPL utility

Hi!

I’m planning on building a streaming application using holoscan bridge (HSB). Currently hsb supports few sensors (imx274, imx477, imx715 etc.) and to add support for a new sensor we can write our own custom camera class similar to these which essentially uses hololink’s i2c_transaction API to set the sensor registers and configure it.
Here is Nvidias official documentation: Adapting new sensors
But for latest jetson platforms (AGX thor), the documentation sugest to use UDDF SIPL Drivers for accessing sensors on HSB.

  1. What’s the difference between the 2? Does SIPL also uses hololink’s i2c_transaction to configure snesors internally and why should one go for the second method i.e., UDDF driver over the first method i.e., adapting new sensors via hololinks custom camera class for supporting new sensor on HSB?
  2. I want to create a generic application which can work on all jetson platforms including AGX thor. Is using SIPL on AGX thor compulsory or can we use the first method (adapting new sensors via custom camera class using hololink APIs)? And if I can use the first method, then for the existing supported sensors on HSB (let’s say imx477), if I want to change sensor settings like exposure or gain, then by using the first method I’ll use hololink APIs to configure the sensor. But will SIPL try to change the sensor settings back for the sensors it already supports?
  3. SIPL can also be used to operate jetson’s internal ISP. Also in holoscan, there’s an operator which uses libargus to use jetson’s ISP i.e., ArgusIspOp. If I skip SIPL, can i use this operator on thor AGX to use jetsons ISP?

So basically can I wanna know the real motivation behind SIPL and can we bypass SIPL entirely for all jetson enviornments (including thor AGX) for both the existing supported sensors and the new sensors we’ll support on HSB along with accessing the jetsons internal ISP.