This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS: TDA2px:ISS camera capture display usecase error

Tool/software: TI-RTOS

Hello,

We are trying to run ISS Camera Capture Display usecase using camera sensor ov2775 with TDA2px board. Vision SDK version is 03.03.00.00.

Usecase:

UseCase: Chains_camera_ov2775_capture_display

IssCapture -> IssM2mIsp -> Display_Video

IssM2mIsp -> Alg_IssAewb

While running this usecase, I am facing below error:

 

[IPU1-0] Enter Choice:
[IPU1-0]
[IPU1-0] 24.636674 s:
[IPU1-0] 24.636765 s: Entered Chains_issIspSimcop_Display
[IPU1-0] 24.641157 s: ISSCAPTURE: Create in progress !!!
[IPU1-0] 24.879704 s: UTILS: DMA: Allocated CH (TCC) = 48 (48)
[IPU1-0] 24.879887 s: UTILS: DMA: 0 of 1: Allocated PaRAM = 48 (0x63304800)
[IPU1-0] 24.880131 s: ISSCAPTURE: Create Done !!!
[IPU1-0] 24.880436 s: ISSM2MISP: Create in progress !!!
[IPU1-0] 25.219178 s: UTILS: DMA: Allocated CH (TCC) = 49 (49)
[IPU1-0] 25.219300 s: UTILS: DMA: 0 of 1: Allocated PaRAM = 49 (0x63304820)
[IPU1-0] 25.223510 s: ISSM2MISP: Create Done !!!
[IPU1-0] 25.223693 s: ALGORITHM: Create in progress (algId = 3) !!!
[IPU1-0] 25.254986 s: ALGORITHM: Create Done (algId = 3) !!!
[IPU1-0] 25.255169 s: DISPLAY: Create in progress !!!
[IPU1-0] 25.255688 s: DISPLAY: Create Done !!!
[IPU1-0] 25.256298 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[IPU1-0] 25.256420 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 153664 B (150 KB)
[IPU1-0] 25.256603 s: SYSTEM: Heap = SR_OCMC @ 0x00000000, Total size = 0 B (0 KB), Free size = 0 B (0 KB)
[IPU1-0] 25.256725 s: SYSTEM: Heap = SR_DDR_CACHED @ 0x88103000, Total size = 368037888 B (350 MB), Free size = 327054336 B (311 MB)
[IPU1-0] 25.256938 s: SYSTEM: Heap = SR_DDR_NON_CACHED @ 0xbfc00000, Total size = 127872 B (0 MB), Free size = 106368 B (0 MB)
[IPU1-0] 25.262429 s: QSPI Read Started, please wait!
[IPU1-0] 25.262642 s: QSPI Read Completed Sucessfully
[IPU1-0] 25.264411 s: CHAINS: DCC Tag ID check failed for QSPI
[IPU1-0] 25.264533 s: CHAINS: Using DCC Profile from Driver
[IPU1-0] 25.275300 s: *** UTILS: CPU KHz = 20000 Khz ***
[IPU1-0] 25.349783 s: Setting Camera Power to 3!!!
[IPU1-0] 25.349874 s: Waiting for 100 milliseconds!!!
[IPU1-1] 25.257304 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[IPU1-1] 25.257426 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 655360 B (640 KB), Free size = 645320 B (630 KB)
[HOST ] 25.257762 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[HOST ] 25.257762 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 6291456 B (6144 KB), Free size = 6249648 B (6103 KB)
[DSP1 ] 25.257914 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[DSP1 ] 25.257945 s: SYSTEM: Heap = LOCAL_L2 @ 0x00800000, Total size = 227264 B (221 KB), Free size = 227264 B (221 KB)
[DSP1 ] 25.258006 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 524288 B (512 KB), Free size = 516456 B (504 KB)
[DSP2 ] 25.258189 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[DSP2 ] 25.258219 s: SYSTEM: Heap = LOCAL_L2 @ 0x00800000, Total size = 227264 B (221 KB), Free size = 227264 B (221 KB)
[DSP2 ] 25.258250 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 524288 B (512 KB), Free size = 516456 B (504 KB)
[EVE1 ] 25.258585 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[EVE1 ] 25.258860 s: SYSTEM: Heap = LOCAL_L2 @ 0x40020000, Total size = 22528 B (22 KB), Free size = 22528 B (22 KB)
[EVE1 ] 25.259409 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 254288 B (248 KB)
[EVE2 ] 25.260263 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[EVE2 ] 25.260568 s: SYSTEM: Heap = LOCAL_L2 @ 0x40020000, Total size = 22528 B (22 KB), Free size = 22528 B (22 KB)
[EVE2 ] 25.261117 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 254288 B (248 KB)
[IPU2 ] 25.261910 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023
[IPU2 ] 25.262032 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 252056 B (246 KB)
[IPU1-0] 25.449795 s: Serilaizer # 0 has I2CAddr 74 !!!
[IPU1-0] 27.405965 s: #### Sensor Config time = 2130 msec ####
[IPU1-0] 27.406118 s: DISPLAY: Start in progress !!!
[IPU1-0] 27.406179 s: DISPLAY: Start Done !!!
[IPU1-0] 27.406362 s: ISSCAPTURE: Start in progress !!!
[IPU1-0] 27.406484 s: ISSCAPTURE: Start Done !!!
[IPU1-0] 27.408040 s:
[IPU1-0]
[IPU1-0] ====================
[IPU1-0] Chains Run-time Menu
[IPU1-0] ====================
[IPU1-0]
[IPU1-0] 0: Stop Chain
[IPU1-0]
[IPU1-0] p: Print Performance Statistics
[IPU1-0]
[IPU1-0] Enter Choice:
[IPU1-0]
[IPU1-0] 27.480845 s: Assertion @ Line: 191 in system_linkApi.c: procId < SYSTEM_PROC_MAX : failed !!!
[IPU1-0] 27.481302 s: Assertion @ Line: 191 in system_linkApi.c: procId < SYSTEM_PROC_MAX : failed !!!


Please find attached print statistics for your reference.

I also tried to run usecase named " iss_monochrome_capt_isp_display" but it's having error in building.

Please help me to resolve this issue.

 CPU [IPU1-0 ] Statistics,
[IPU1-0]     64.464070 s:  *************************
[IPU1-0]     64.464131 s:
[IPU1-0]     64.464161 s:  LOAD: CPU: 7.0% HWI: 1.1%, SWI:0.9%, Low Power: 89.0%
[IPU1-0]     64.464314 s:
[IPU1-0]     64.464436 s:  LOAD: TSK: ISSCAPTURE          : 0.1%
[IPU1-0]     64.464527 s:  LOAD: TSK: ISSM2MISP           : 1.0%
[IPU1-0]     64.464649 s:  LOAD: TSK: STAT_COLL           : 2.8%
[IPU1-0]     64.464741 s:  LOAD: TSK: MISC                : 1.1%
[IPU1-0]     64.464863 s:
[IPU1-0]     64.464924 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.465015 s:
[IPU1-0]     64.465046 s:  SYSTEM: Sempahores Objects,   34 of 1024 free
[IPU1-0]     64.465137 s:  SYSTEM: Task Objects      ,    7 of  100 free
[IPU1-0]     64.465229 s:  SYSTEM: Clock Objects     ,   97 of  100 free
[IPU1-0]     64.465290 s:  SYSTEM: Hwi Objects       ,   87 of  100 free
[IPU1-0]     64.465381 s:
[IPU1-0]     64.465412 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 153664 B (150 KB)
[IPU1-0]     64.465595 s:  SYSTEM: Heap = SR_OCMC              @ 0x00000000, Total size = 0 B (0 KB), Free size = 0 B (0 KB)
[IPU1-0]     64.465717 s:  SYSTEM: Heap = SR_DDR_CACHED        @ 0x88103000, Total size = 368037888 B (350 MB), Free size = 327054336 B (311 MB)
[IPU1-0]     64.465961 s:  SYSTEM: Heap = SR_DDR_NON_CACHED    @ 0xbfc00000, Total size = 127872 B (0 MB), Free size = 106368 B (0 MB)
[IPU1-0]     64.466113 s:
[IPU1-0]     64.466174 s:
[IPU1-0]     64.466205 s:  CPU [IPU1-1 ] Statistics,
[IPU1-0]     64.466266 s:  *************************
[IPU1-0]     64.466327 s:
[IPU1-0]     64.466357 s:  LOAD: CPU: 1.1% HWI: 0.6%, SWI:0.4%, Low Power: 88.7%
[IPU1-0]     64.466510 s:
[IPU1-0]     64.466601 s:  LOAD: TSK: MISC                : 0.1%
[IPU1-0]     64.466693 s:
[IPU1-0]     64.466723 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.466998 s:
[IPU1-0]     64.467028 s:  SYSTEM: Sempahores Objects,  416 of 1024 free
[IPU1-0]     64.467120 s:  SYSTEM: Task Objects      ,   39 of  100 free
[IPU1-0]     64.467211 s:  SYSTEM: Clock Objects     ,   99 of  100 free
[IPU1-0]     64.467303 s:  SYSTEM: Hwi Objects       ,   99 of  100 free
[IPU1-0]     64.467394 s:
[IPU1-0]     64.467425 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 655360 B (640 KB), Free size = 645320 B (630 KB)
[IPU1-0]     64.467577 s:
[IPU1-0]     64.467608 s:
[IPU1-0]     64.467669 s:  CPU [HOST   ] Statistics,
[IPU1-0]     64.467943 s:  *************************
[IPU1-0]     64.468004 s:
[IPU1-0]     64.468065 s:  LOAD: CPU: 1.4% HWI: 0.1%, SWI:0.1%, Low Power: 96.6%
[IPU1-0]     64.468187 s:
[IPU1-0]     64.468309 s:  LOAD: TSK: MISC                : 1.2%
[IPU1-0]     64.468401 s:
[IPU1-0]     64.468431 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.468523 s:
[IPU1-0]     64.468553 s:  SYSTEM: Sempahores Objects,  416 of 1024 free
[IPU1-0]     64.468645 s:  SYSTEM: Task Objects      ,   38 of  100 free
[IPU1-0]     64.468706 s:  SYSTEM: Clock Objects     ,   99 of  100 free
[IPU1-0]     64.468797 s:  SYSTEM: Hwi Objects       ,   99 of  100 free
[IPU1-0]     64.468950 s:
[IPU1-0]     64.469011 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 6291456 B (6144 KB), Free size = 6249648 B (6103 KB)
[IPU1-0]     64.469163 s:
[IPU1-0]     64.469224 s:
[IPU1-0]     64.469255 s:  CPU [DSP1   ] Statistics,
[IPU1-0]     64.469316 s:  *************************
[IPU1-0]     64.469377 s:
[IPU1-0]     64.469407 s:  LOAD: CPU: 0.3% HWI: 0.1%, SWI:0.0%, Low Power: 98.1%
[IPU1-0]     64.469560 s:
[IPU1-0]     64.469621 s:  LOAD: TSK: MISC                : 0.2%
[IPU1-0]     64.469682 s:
[IPU1-0]     64.469743 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.469865 s:
[IPU1-0]     64.469926 s:  SYSTEM: Sempahores Objects,  430 of 1024 free
[IPU1-0]     64.470017 s:  SYSTEM: Task Objects      ,   92 of  100 free
[IPU1-0]     64.470078 s:  SYSTEM: Clock Objects     ,   99 of  100 free
[IPU1-0]     64.470170 s:  SYSTEM: Hwi Objects       ,  100 of  100 free
[IPU1-0]     64.470322 s:
[IPU1-0]     64.470353 s:  SYSTEM: Heap = LOCAL_L2             @ 0x00800000, Total size = 227264 B (221 KB), Free size = 227264 B (221 KB)
[IPU1-0]     64.470505 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 524288 B (512 KB), Free size = 516456 B (504 KB)
[IPU1-0]     64.470688 s:
[IPU1-0]     64.470719 s:
[IPU1-0]     64.470749 s:  CPU [DSP2   ] Statistics,
[IPU1-0]     64.470871 s:  *************************
[IPU1-0]     64.470932 s:
[IPU1-0]     64.470993 s:  LOAD: CPU: 0.3% HWI: 0.1%, SWI:0.0%, Low Power: 98.1%
[IPU1-0]     64.471115 s:
[IPU1-0]     64.471176 s:  LOAD: TSK: MISC                : 0.2%
[IPU1-0]     64.471268 s:
[IPU1-0]     64.471298 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.471390 s:
[IPU1-0]     64.471420 s:  SYSTEM: Sempahores Objects,  430 of 1024 free
[IPU1-0]     64.471512 s:  SYSTEM: Task Objects      ,   92 of  100 free
[IPU1-0]     64.471603 s:  SYSTEM: Clock Objects     ,   99 of  100 free
[IPU1-0]     64.471664 s:  SYSTEM: Hwi Objects       ,  100 of  100 free
[IPU1-0]     64.471756 s:
[IPU1-0]     64.471786 s:  SYSTEM: Heap = LOCAL_L2             @ 0x00800000, Total size = 227264 B (221 KB), Free size = 227264 B (221 KB)
[IPU1-0]     64.472152 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 524288 B (512 KB), Free size = 516456 B (504 KB)
[IPU1-0]     64.472335 s:
[IPU1-0]     64.472366 s:
[IPU1-0]     64.472427 s:  CPU [EVE1   ] Statistics,
[IPU1-0]     64.472457 s:  *************************
[IPU1-0]     64.472518 s:
[IPU1-0]     64.472579 s:  LOAD: CPU: 0.5% HWI: 0.2%, SWI:0.1%, Low Power: 93.2%
[IPU1-0]     64.472732 s:
[IPU1-0]     64.472762 s:  LOAD: TSK: MISC                : 0.2%
[IPU1-0]     64.472915 s:
[IPU1-0]     64.472976 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.473067 s:
[IPU1-0]     64.473098 s:  SYSTEM: Sempahores Objects,  431 of 1024 free
[IPU1-0]     64.473189 s:  SYSTEM: Task Objects      ,   93 of  100 free
[IPU1-0]     64.473250 s:  SYSTEM: Clock Objects     ,   99 of  100 free
[IPU1-0]     64.473342 s:  SYSTEM: Hwi Objects       ,   99 of  100 free
[IPU1-0]     64.473433 s:
[IPU1-0]     64.473464 s:  SYSTEM: Heap = LOCAL_L2             @ 0x40020000, Total size = 22528 B (22 KB), Free size = 22528 B (22 KB)
[IPU1-0]     64.473616 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 254288 B (248 KB)
[IPU1-0]     64.473799 s:
[IPU1-0]     64.473891 s:
[IPU1-0]     64.473921 s:  CPU [EVE2   ] Statistics,
[IPU1-0]     64.473982 s:  *************************
[IPU1-0]     64.474043 s:
[IPU1-0]     64.474104 s:  LOAD: CPU: 0.5% HWI: 0.2%, SWI:0.1%, Low Power: 93.2%
[IPU1-0]     64.474226 s:
[IPU1-0]     64.474287 s:  LOAD: TSK: MISC                : 0.2%
[IPU1-0]     64.474379 s:
[IPU1-0]     64.474409 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.474501 s:
[IPU1-0]     64.474531 s:  SYSTEM: Sempahores Objects,  431 of 1024 free
[IPU1-0]     64.474623 s:  SYSTEM: Task Objects      ,   93 of  100 free
[IPU1-0]     64.474714 s:  SYSTEM: Clock Objects     ,   99 of  100 free
[IPU1-0]     64.474775 s:  SYSTEM: Hwi Objects       ,   99 of  100 free
[IPU1-0]     64.474928 s:
[IPU1-0]     64.474989 s:  SYSTEM: Heap = LOCAL_L2             @ 0x40020000, Total size = 22528 B (22 KB), Free size = 22528 B (22 KB)
[IPU1-0]     64.475141 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 254288 B (248 KB)
[IPU1-0]     64.475294 s:
[IPU1-0]     64.475355 s:
[IPU1-0]     64.475385 s:  CPU [IPU2   ] Statistics,
[IPU1-0]     64.475446 s:  *************************
[IPU1-0]     64.475507 s:
[IPU1-0]     64.475538 s:  LOAD: CPU: 0.8% HWI: 0.4%, SWI:0.2%, Low Power: 95.9%
[IPU1-0]     64.475690 s:
[IPU1-0]     64.475782 s:  LOAD: TSK: MISC                : 0.2%
[IPU1-0]     64.475934 s:
[IPU1-0]     64.475965 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1020
[IPU1-0]     64.476056 s:
[IPU1-0]     64.476087 s:  SYSTEM: Sempahores Objects,  416 of 1024 free
[IPU1-0]     64.476178 s:  SYSTEM: Task Objects      ,   39 of  100 free
[IPU1-0]     64.476270 s:  SYSTEM: Clock Objects     ,   99 of  100 free
[IPU1-0]     64.476361 s:  SYSTEM: Hwi Objects       ,   99 of  100 free
[IPU1-0]     64.476422 s:
[IPU1-0]     64.476483 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 252056 B (246 KB)
[IPU1-0]     64.476636 s:
[IPU1-0]     64.477093 s:
[IPU1-0]     64.477154 s:  UTILS_PRCM_STATS:  Current Temperature,
[IPU1-0]     64.477215 s:
[IPU1-0]     64.477276 s:   Voltage Rail         ||   Curr Temp Min - Max
[IPU1-0]     64.477337 s:  ---------------------------------------------------------
[IPU1-0]     64.477429 s:      PMHAL_PRCM_VD_MPU ||     [38.400 , 38.800]
[IPU1-0]     64.477551 s:     PMHAL_PRCM_VD_CORE ||     [39.600 , 40.  0]
[IPU1-0]     64.477642 s:    PMHAL_PRCM_VD_IVAHD ||     [38.400 , 38.800]
[IPU1-0]     64.477764 s:   PMHAL_PRCM_VD_DSPEVE ||     [35.600 , 36.  0]
[IPU1-0]     64.477917 s:      PMHAL_PRCM_VD_GPU ||     [38.800 , 39.200]
[IPU1-0]     64.478039 s:
[IPU1-0]     64.478069 s: ============================================================================
[IPU1-0]     64.478191 s: Name      | Bus (mV)  | Res (mOhm) | Shunt (uV)  | Current (mA) | Power (mW)
[IPU1-0]     64.478283 s: ----------------------------------------------------------------------------
[IPU1-0]     64.479716 s:  UTILS_PRCM_STATS: Reading the regulator data failed
[IPU1-0]     64.479869 s:  UTILS_PRCM_STATS: PM INA226 Power Read Failed !!
[IPU1-0]     64.480082 s:
[IPU1-0]     64.480113 s:  Statistics Collector,
[IPU1-0]     64.480174 s:
[IPU1-0]     64.480204 s:        STATISTIC          Avg Data        Peak Data
[IPU1-0]     64.480296 s:        COLLECTOR          MB/s            MB/s
[IPU1-0]     64.480357 s:  --------------------------------------------------
[IPU1-0]     64.480448 s:  SCI_EMIF1 RD+WR      |    335.004641    367.710378
[IPU1-0]     64.480540 s:  SCI_EMIF2 RD+WR      |      0.000000      0.000000
[IPU1-0]     64.480662 s:  SCI_EMIF1 RD ONLY    |    203.171215    226.844730
[IPU1-0]     64.480753 s:  SCI_EMIF1 WR ONLY    |    131.949927    144.164119
[IPU1-0]     64.480936 s:  SCI_EMIF2 RD ONLY    |      0.000000      0.000000
[IPU1-0]     64.481058 s:  SCI_EMIF2 WR ONLY    |      0.000000      0.000000
[IPU1-0]     64.481150 s:  SCI_MA_MPU_P1        |      0.003246      0.143942
[IPU1-0]     64.481241 s:  SCI_MA_MPU_P2        |      0.000000      0.000000
[IPU1-0]     64.481363 s:  SCI_DSS              |    186.531238    195.510220
[IPU1-0]     64.481455 s:  SCI_IPU1             |      6.465090     14.669348
[IPU1-0]     64.481547 s:  SCI_VIP1_P1          |      0.000000      0.000000
[IPU1-0]     64.481669 s:  SCI_VIP1_P2          |      0.000000      0.000000
[IPU1-0]     64.481760 s:  SCI_VPE_P1           |      0.000000      0.000000
[IPU1-0]     64.482035 s:  SCI_VPE_P2           |      0.000000      0.000000
[IPU1-0]     64.482157 s:  SCI_DSP1_MDMA        |      0.806935      1.183665
[IPU1-0]     64.482279 s:  SCI_DSP1_EDMA        |      0.000000      0.000000
[IPU1-0]     64.482370 s:  SCI_DSP2_MDMA        |      0.812270      1.739304
[IPU1-0]     64.482462 s:  SCI_DSP2_EDMA        |      0.000000      0.000000
[IPU1-0]     64.482584 s:  SCI_EVE1_TC0         |      2.533993      7.378921
[IPU1-0]     64.482675 s:  SCI_EVE1_TC1         |      0.000000      0.000000
[IPU1-0]     64.482767 s:  SCI_EVE2_TC0         |      2.535884      7.357057
[IPU1-0]     64.482950 s:  SCI_EVE2_TC1         |      0.000000      0.000000
[IPU1-0]     64.483041 s:  SCI_EDMA_TC0_RD      |      0.000000      0.000000
[IPU1-0]     64.483163 s:  SCI_EDMA_TC0_WR      |      0.000000      0.000000
[IPU1-0]     64.483255 s:  SCI_EDMA_TC1_RD      |      0.000000      0.000000
[IPU1-0]     64.483407 s:  SCI_EDMA_TC1_WR      |      0.000000      0.000000
[IPU1-0]     64.483529 s:  SCI_VIP2_P1          |      0.000000      0.000000
[IPU1-0]     64.483621 s:  SCI_VIP2_P2          |      0.000000      0.000000
[IPU1-0]     64.483712 s:  SCI_IVA              |      0.000000      0.000000
[IPU1-0]     64.483865 s:  SCI_GPU_P1           |      0.000000      0.000000
[IPU1-0]     64.483987 s:  SCI_GPU_P2           |      0.000000      0.000000
[IPU1-0]     64.484078 s:  SCI_GMAC_SW          |      0.000000      0.000000
[IPU1-0]     64.484170 s:  SCI_OCMC_RAM1        |      0.000000      0.000000
[IPU1-0]     64.484261 s:  SCI_OCMC_RAM2        |      0.000000      0.000000
[IPU1-0]     64.484383 s:  SCI_OCMC_RAM3        |      0.000000      0.000000
[IPU1-0]     64.484475 s:  SCI_ISS_RT           |      0.000000      0.000000
[IPU1-0]     64.484566 s:  SCI_ISS_NRT1         |      0.000000      0.000000
[IPU1-0]     64.484658 s:  SCI_ISS_NRT2         |      0.000000      0.000000
[IPU1-0]     64.484780 s:  SCI_CAL              |    124.391098    129.010321
[IPU1-0]     64.584853 s:
[IPU1-0]     64.584914 s:
[IPU1-0]     64.585036 s:
[IPU1-0]     64.585066 s:  ### CPU [IPU1-0], LinkID [ 81],
[IPU1-0]     64.585158 s:
[IPU1-0]     64.585188 s:  [ ISSCAPTURE ] Link Statistics,
[IPU1-0]     64.585249 s:  ******************************
[IPU1-0]     64.585310 s:
[IPU1-0]     64.585341 s:  Elapsed time       = 37112 msec
[IPU1-0]     64.585402 s:
[IPU1-0]     64.585463 s:  Get Full Buf Cb    =   0.2 fps
[IPU1-0]     64.585524 s:  Put Empty Buf Cb   =   0.2 fps
[IPU1-0]     64.585615 s:  Driver/Notify Cb   =  29.99 fps
[IPU1-0]     64.585676 s:
[IPU1-0]     64.585707 s:  Input Statistics,
[IPU1-0]     64.585768 s:
[IPU1-0]     64.585798 s:  CH | In Recv | In Drop | In User Drop | In Process
[IPU1-0]     64.585951 s:     | FPS     | FPS     | FPS          | FPS
[IPU1-0]     64.586012 s:  --------------------------------------------------
[IPU1-0]     64.586103 s:   0 |   0. 2      0. 0      0. 0           0. 2
[IPU1-0]     64.586225 s:
[IPU1-0]     64.586256 s:  Output Statistics,
[IPU1-0]     64.586317 s:
[IPU1-0]     64.586347 s:  CH | Out | Out     | Out Drop | Out User Drop
[IPU1-0]     64.586439 s:     | ID  | FPS     | FPS      | FPS
[IPU1-0]     64.586500 s:  ---------------------------------------------
[IPU1-0]     64.586561 s:   0 |  0      0. 8     0. 0      0. 0
[IPU1-0]     64.586683 s:
[IPU1-0]     64.586713 s:  [ ISSCAPTURE ] LATENCY,
[IPU1-0]     64.586774 s:  ********************
[IPU1-0]     64.587140 s:
[IPU1-0]     64.587262 s:
[IPU1-0]     64.587293 s:  ### CPU [IPU1-0], LinkID [ 82],
[IPU1-0]     64.587384 s:
[IPU1-0]     64.587415 s:  [ ISSM2MISP ] Link Statistics,
[IPU1-0]     64.587476 s:  ******************************
[IPU1-0]     64.587537 s:
[IPU1-0]     64.587567 s:  Elapsed time       = 37114 msec
[IPU1-0]     64.587628 s:
[IPU1-0]     64.587689 s:  New data Recv      =   0.2 fps
[IPU1-0]     64.587750 s:  Get Full Buf Cb    =   0.5 fps
[IPU1-0]     64.587872 s:  Driver/Notify Cb   =   0.2 fps
[IPU1-0]     64.587964 s:
[IPU1-0]     64.587994 s:  Input Statistics,
[IPU1-0]     64.588055 s:
[IPU1-0]     64.588086 s:  CH | In Recv | In Drop | In User Drop | In Process
[IPU1-0]     64.588177 s:     | FPS     | FPS     | FPS          | FPS
[IPU1-0]     64.588238 s:  --------------------------------------------------
[IPU1-0]     64.588330 s:   0 |   0. 2      0. 0      0. 0           0. 2
[IPU1-0]     64.588452 s:
[IPU1-0]     64.588482 s:  Output Statistics,
[IPU1-0]     64.588543 s:
[IPU1-0]     64.588574 s:  CH | Out | Out     | Out Drop | Out User Drop
[IPU1-0]     64.588635 s:     | ID  | FPS     | FPS      | FPS
[IPU1-0]     64.588726 s:  ---------------------------------------------
[IPU1-0]     64.588787 s:   0 |  0      0. 2     0. 0      0. 0
[IPU1-0]     64.588970 s:   0 |  1      0. 2     0. 0      0. 0
[IPU1-0]     64.589092 s:   0 |  2      0. 2     0. 0      0. 0
[IPU1-0]     64.589214 s:   0 |  3      0. 0     0. 2      0. 0
[IPU1-0]     64.589306 s:
[IPU1-0]     64.589367 s:  [ ISSM2MISP ] LATENCY,
[IPU1-0]     64.589428 s:  ********************
[IPU1-0]     64.589458 s:  Local Link Latency     : Avg =   7624 us, Min =   7594 us, Max =   7655 us,
[IPU1-0]     64.589580 s:  Source to Link Latency : Avg =   7727 us, Min =   7717 us, Max =   7747 us,
[IPU1-0]     64.589702 s:
[IPU1-0]     64.589855 s:
[IPU1-0]     64.589885 s:  ### CPU [IPU1-0], LinkID [ 49],
[IPU1-0]     64.589977 s:
[IPU1-0]     64.590007 s:  [ ALG_ISS_AEWB ] Link Statistics,
[IPU1-0]     64.590068 s:  ******************************
[IPU1-0]     64.590129 s:
[IPU1-0]     64.590160 s:  Elapsed time       = 37108 msec
[IPU1-0]     64.590251 s:
[IPU1-0]     64.590282 s:  New data Recv      =   0.2 fps
[IPU1-0]     64.590343 s:
[IPU1-0]     64.590404 s:  Input Statistics,
[IPU1-0]     64.590434 s:
[IPU1-0]     64.590465 s:  CH | In Recv | In Drop | In User Drop | In Process
[IPU1-0]     64.590556 s:     | FPS     | FPS     | FPS          | FPS
[IPU1-0]     64.590617 s:  --------------------------------------------------
[IPU1-0]     64.590709 s:   0 |   0. 2      0. 0      0. 0           0. 0
[IPU1-0]     64.590892 s:
[IPU1-0]     64.590922 s:  Output Statistics,
[IPU1-0]     64.590983 s:
[IPU1-0]     64.591014 s:  CH | Out | Out     | Out Drop | Out User Drop
[IPU1-0]     64.591075 s:     | ID  | FPS     | FPS      | FPS
[IPU1-0]     64.591166 s:  ---------------------------------------------
[IPU1-0]     64.591227 s:
[IPU1-0]     64.591258 s:  [ ALG_ISS_AEWB ] LATENCY,
[IPU1-0]     64.591349 s:  ********************
[IPU1-0]     64.591380 s:
[IPU1-0]     64.591502 s:
[IPU1-0]     64.591532 s:  ### CPU [IPU1-0], LinkID [ 71],
[IPU1-0]     64.591593 s:
[IPU1-0]     64.591654 s:  [ DISPLAY ] Link Statistics,
[IPU1-0]     64.591715 s:  ******************************
[IPU1-0]     64.591776 s:
[IPU1-0]     64.591807 s:  Elapsed time       = 37110 msec
[IPU1-0]     64.592020 s:
[IPU1-0]     64.592081 s:  Driver/Notify Cb   =  60.3 fps
[IPU1-0]     64.592173 s:
[IPU1-0]     64.592203 s:  Input Statistics,
[IPU1-0]     64.592234 s:
[IPU1-0]     64.592295 s:  CH | In Recv | In Drop | In User Drop | In Process
[IPU1-0]     64.592356 s:     | FPS     | FPS     | FPS          | FPS
[IPU1-0]     64.592447 s:  --------------------------------------------------
[IPU1-0]     64.592508 s:   0 |   0. 2      0. 0      0. 0           0. 2
[IPU1-0]     64.592631 s:
[IPU1-0]     64.592692 s:  [ DISPLAY ] LATENCY,
[IPU1-0]     64.592722 s:  ********************
[IPU1-0]     64.592783 s:  Local Link Latency     : Avg =     30 us, Min =     30 us, Max =     30 us,
[IPU1-0]     64.592966 s:  Source to Link Latency : Avg =   8510 us, Min =   8510 us, Max =   8510 us,
[IPU1-0]     64.593088 s:
[IPU1-0]     64.593119 s:  Display UnderFlow Count = 0
[IPU1-0]     64.593180 s:
[IPU1-0]     65.092875 s:

Regards,

Gouri P. 


 

 

  • Hi Gouri,
    Can you send the modified use-case file ?

    Regards
    Surya
  • Hello Surya,

    Please find attached .c file.

    /******************************************************************************
    Copyright (c) [2012 - 2017] Texas Instruments Incorporated
    
    All rights reserved not granted herein.
    
    Limited License.
    
     Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
     license under copyrights and patents it now or hereafter owns or controls to
     make,  have made, use, import, offer to sell and sell ("Utilize") this software
     subject to the terms herein.  With respect to the foregoing patent license,
     such license is granted  solely to the extent that any such patent is necessary
     to Utilize the software alone.  The patent license shall not apply to any
     combinations which include this software, other than combinations with devices
     manufactured by or for TI ("TI Devices").  No hardware patent is licensed
     hereunder.
    
     Redistributions must preserve existing copyright notices and reproduce this
     license (including the above copyright notice and the disclaimer and
     (if applicable) source code license limitations below) in the documentation
     and/or other materials provided with the distribution
    
     Redistribution and use in binary form, without modification, are permitted
     provided that the following conditions are met:
    
     * No reverse engineering, decompilation, or disassembly of this software
       is permitted with respect to any software provided in binary form.
    
     * Any redistribution and use are licensed by TI for use only with TI Devices.
    
     * Nothing shall obligate TI to provide you with source code for the software
       licensed and provided to you in object code.
    
     If software source code is provided to you, modification and redistribution of
     the source code are permitted provided that the following conditions are met:
    
     * Any redistribution and use of the source code, including any resulting
       derivative works, are licensed by TI for use only with TI Devices.
    
     * Any redistribution and use of any object code compiled from the source code
       and any resulting derivative works, are licensed by TI for use only with TI
       Devices.
    
     Neither the name of Texas Instruments Incorporated nor the names of its
     suppliers may be used to endorse or promote products derived from this software
     without specific prior written permission.
    
     DISCLAIMER.
    
     THIS SOFTWARE IS PROVIDED BY TI AND TI�S LICENSORS "AS IS" AND ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     IN NO EVENT SHALL TI AND TI�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
     OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    ******************************************************************************/
    
    /*******************************************************************************
     *  INCLUDE FILES
     *******************************************************************************
     */
    #include "Chains_camera_ov2775_capture_display_priv.h"
    #include <src/include/chains_common.h>
    #include <src/rtos/iss/include/iss_sensors.h>
    #include <src/rtos/iss/include/iss_utils.h>
    #include <src/rtos/iss/include/app_util_iss.h>
    
    #define CAPTURE_SENSOR_WIDTH    (1280)
    #define CAPTURE_SENSOR_HEIGHT   (720)
    
    /*
     * AEWB algorithm memory requirement cannot be calculated upfront.
     * This size is known by running the use-case once with large size
     * and then checking the log for unused memory in AEWB algorithm
     */
    #define ALG_AEWB_MEM_SIZE                           (896*1024)
    
    
    /**
     *******************************************************************************
     *
     *  \brief  SingleCameraFrameCopyObject
     *
     *        This structure contains all the LinksId's and create Params.
     *        The same is passed to all create, start, stop functions.
     *
     *******************************************************************************
    */
    typedef struct {
    
        Chains_camera_ov2775_capture_displayObj  ucObj;
    
    //    IssM2mSimcopLink_ConfigParams   simcopConfig;
    //    vpsissldcConfig_t               ldcCfg;
    //    vpsissvtnfConfig_t              vtnfCfg;
    
        UInt32                          captureOutWidth;
        UInt32                          captureOutHeight;
        UInt32                          displayWidth;
        UInt32                          displayHeight;
    
        Chains_Ctrl                    *chainsCfg;
    
    //    IssM2mSimcopLink_OperatingMode  simcopMode;
    //    Bool                            bypassVtnf;
    //    Bool                            bypassLdc;
    
        AppUtils_Obj             appSensInfo;
    } Chains_camera_ov2775_capture_displayAppObj;
    
    
    char gChains_camera_ov2775_capture_display_runTimeMenu[] = {
    "\r\n "
    "\r\n ===================="
    "\r\n Chains Run-time Menu"
    "\r\n ===================="
    "\r\n "
    "\r\n 0: Stop Chain"
    "\r\n "
    "\r\n p: Print Performance Statistics "
    "\r\n "
    "\r\n Enter Choice: "
    "\r\n "
    };
    
    /*
     * This function shows an example of allocating memory for
     * a link from within the use-case instead of from within the link
     *
     * This allows user's to potentially allocate memory statically outside of
     * link implementation and then pass the memory to the link during use-case
     * create.
     *
     * If user wants the link to allocate memory then dont set below parameters
     * <link create params>.memAllocInfo.memSize,
     * <link create params>.memAllocInfo.memAddr
     */
    Void Chains_camera_ov2775_capture_display_SetMemAllocInfo(
                        Chains_camera_ov2775_capture_displayAppObj *pObj)
    {
        UInt32 align = SYSTEM_BUFFER_ALIGNMENT; /* 32 byte alignment*/
        IssCaptureLink_CreateParams             *pIssCapturePrm;
        IssM2mIspLink_CreateParams              *pIssM2mIspPrm;
    //    IssRszLink_CreateParams                 *pIssRszPrm;
    //    IssM2mSimcopLink_CreateParams           *pIssM2mSimcopPrm;
        AlgorithmLink_IssAewbCreateParams       *pAlg_IssAewbPrm;
    
        pIssCapturePrm    = &pObj->ucObj.IssCapturePrm;
        pIssM2mIspPrm     = &pObj->ucObj.IssM2mIspPrm;
    //    pIssRszPrm        = &pObj->ucObj.IssM2mResizerPrm;
    //    pIssM2mSimcopPrm  = &pObj->ucObj.IssM2mSimcopPrm;
        pAlg_IssAewbPrm   = &pObj->ucObj.Alg_IssAewbPrm;
    
    
        pIssCapturePrm->memAllocInfo.memSize =
              SystemUtils_align(pObj->captureOutWidth, align)
            * pObj->captureOutHeight
            * 2 /* 16-bit per pixel */
            * (pIssCapturePrm->outParams[0].numOutBuf+1)
                /* +1 for RAW data dump */
            ;
    
        pAlg_IssAewbPrm->memAllocInfo.memSize = ALG_AEWB_MEM_SIZE;
    
        pIssM2mIspPrm->memAllocInfo.memSize = 0;
    
    /*    if(pIssM2mIspPrm->channelParams[0].enableOut[ISSM2MISP_LINK_OUTPUTQUE_IMAGE_RSZ_A])
        {
    #ifdef ISS_ENABLE_DEBUG_TAPS
            // RSZ A output 
            pIssM2mIspPrm->memAllocInfo.memSize +=
                  SystemUtils_align(pIssM2mIspPrm->channelParams[0].outParams.widthRszA, align)
                * pIssM2mIspPrm->channelParams[0].outParams.heightRszA
                * 2 // YUV420/422/RAW 
                * pIssM2mIspPrm->channelParams[0].numBuffersPerCh
                ;
    #else
            // RSZ A output 
            pIssM2mIspPrm->memAllocInfo.memSize +=
                  SystemUtils_align(pIssM2mIspPrm->channelParams[0].outParams.widthRszA, align)
                * pIssM2mIspPrm->channelParams[0].outParams.heightRszA
                * 1.5 // YUV420SP 
                * pIssM2mIspPrm->channelParams[0].numBuffersPerCh
                ;
    #endif
        }
    */
        if( pIssM2mIspPrm->channelParams[0].operatingMode
              == ISSM2MISP_LINK_OPMODE_2PASS_WDR
           )
        {
            // Intermediate buffer in 2 pass WDR mode 
            pIssM2mIspPrm->memAllocInfo.memSize +=
                  SystemUtils_align(pObj->captureOutWidth, align)
                * pObj->captureOutHeight
                * 2 /* 16-bit per pixel */
                ;
        }
    
        if( pIssM2mIspPrm->channelParams[0].operatingMode
              == ISSM2MISP_LINK_OPMODE_2PASS_WDR_LINE_INTERLEAVED
           )
        {
            /* Intermediate buffer in 2 pass WDR mode */
            pIssM2mIspPrm->memAllocInfo.memSize +=
                  SystemUtils_align(pIssM2mIspPrm->channelParams[0].wdrOffsetPrms.width, align)
                * pIssM2mIspPrm->channelParams[0].wdrOffsetPrms.height
                * 2 /* 16-bit per pixel */
                ;
        }
    
        if (pIssM2mIspPrm->allocBufferForDump)
        {
            /* For Dumping Output frame */
            pIssM2mIspPrm->memAllocInfo.memSize +=
                  SystemUtils_align(pObj->captureOutWidth, align)
                * pObj->captureOutHeight
                * 2 /* 16-bit per pixel */
                ;
        }
    
    /*    if(pIssM2mIspPrm->channelParams[0].enableOut[ISSM2MISP_LINK_OUTPUTQUE_IMAGE_RSZ_B])
        {
            // RSZ B output 
            pIssM2mIspPrm->memAllocInfo.memSize +=
                  SystemUtils_align(pIssM2mIspPrm->channelParams[0].outParams.widthRszB, align)
                * pIssM2mIspPrm->channelParams[0].outParams.heightRszB
                * 1.5 // YUV420SP 
                * pIssM2mIspPrm->channelParams[0].numBuffersPerCh
                ;
        }
    */
        if(pIssM2mIspPrm->channelParams[0].enableOut[ISSM2MISP_LINK_OUTPUTQUE_H3A])
        {
            /* H3A output */
            pIssM2mIspPrm->memAllocInfo.memSize +=
                  ((pIssM2mIspPrm->channelParams[0].outParams.widthRszA/
                      pIssM2mIspPrm->channelParams[0].outParams.winWidthH3a)+1)
                * ((pIssM2mIspPrm->channelParams[0].outParams.heightRszA/
                      pIssM2mIspPrm->channelParams[0].outParams.winHeightH3a)+1)
                * ( sizeof(IssAwebH3aOutSumModeOverlay)
                  + sizeof(IssAwebH3aOutUnsatBlkCntOverlay) )
                * pIssM2mIspPrm->channelParams[0].numBuffersPerCh
                ;
        }
    
    /* To support WDR, two sets of statistics must be produced, one for short exposure and the other one for long exposure
        that's why there is a factor 2
        */
        if(pIssM2mIspPrm->channelParams[0].enableOut[ISSM2MISP_LINK_OUTPUTQUE_H3A_AF])
        {
            pIssM2mIspPrm->memAllocInfo.memSize +=  SystemUtils_align(2*pIssM2mIspPrm->channelParams[0].outParams.paxelNumHaf
                *pIssM2mIspPrm->channelParams[0].outParams.paxelNumVaf*sizeof(IssAfH3aOutOverlay), 128U) /* DSP cache requires 128 bytes alignment */
                *pIssM2mIspPrm->channelParams[0].numBuffersPerCh;
        }
    
    /*    pIssRszPrm->memAllocInfo.memSize =
              SystemUtils_align(pIssRszPrm->channelParams[0].outParams.widthRszA, align)
            * pIssRszPrm->channelParams[0].outParams.heightRszA
            * 1.5 // YUV420SP 
            * pIssRszPrm->channelParams[0].numBuffersPerCh
            ;
    
        pIssM2mSimcopPrm->memAllocInfo.memSize =
              SystemUtils_align(pIssM2mIspPrm->channelParams[0].outParams.widthRszA, align)
            * pIssM2mIspPrm->channelParams[0].outParams.heightRszA
            * 1.5
            * (pIssM2mSimcopPrm->channelParams[0].numBuffersPerCh+1)
               // +1 for YUV data dump 
            ;
    */
        pIssCapturePrm->memAllocInfo.memAddr =
            (UInt32)Utils_memAlloc(
                    UTILS_HEAPID_DDR_CACHED_SR,
                    pIssCapturePrm->memAllocInfo.memSize,
                    align
                );
        UTILS_assert(pIssCapturePrm->memAllocInfo.memAddr!=NULL);
    
        pAlg_IssAewbPrm->memAllocInfo.memAddr =
            (UInt32)Utils_memAlloc(
                    UTILS_HEAPID_DDR_CACHED_SR,
                    pAlg_IssAewbPrm->memAllocInfo.memSize,
                    align
                );
        UTILS_assert(pAlg_IssAewbPrm->memAllocInfo.memAddr!=NULL);
    
        pIssM2mIspPrm->memAllocInfo.memAddr =
            (UInt32)Utils_memAlloc(
                    UTILS_HEAPID_DDR_CACHED_SR,
                    pIssM2mIspPrm->memAllocInfo.memSize,
                    align
                );
        UTILS_assert(pIssM2mIspPrm->memAllocInfo.memAddr!=NULL);
    
    /*    pIssRszPrm->memAllocInfo.memAddr =
            (UInt32)Utils_memAlloc(
                    UTILS_HEAPID_DDR_CACHED_SR,
                    pIssRszPrm->memAllocInfo.memSize,
                    align
                );
        UTILS_assert(pIssRszPrm->memAllocInfo.memAddr!=NULL);
    
        pIssM2mSimcopPrm->memAllocInfo.memAddr =
            (UInt32)Utils_memAlloc(
                    UTILS_HEAPID_DDR_CACHED_SR,
                    pIssM2mSimcopPrm->memAllocInfo.memSize,
                    align
                );
        UTILS_assert(pIssM2mSimcopPrm->memAllocInfo.memAddr!=NULL);*/
    }
    
    /*
     * This function free's memory allocated by the use-case, if any
     */
    Void Chains_camera_ov2775_capture_display_FreeMemory(
                        Chains_camera_ov2775_capture_displayAppObj *pObj)
    {
        Int32 status;
        IssCaptureLink_CreateParams             *pIssCapturePrm;
        IssM2mIspLink_CreateParams              *pIssM2mIspPrm;
    //    IssRszLink_CreateParams                 *pIssRszPrm;
    //    IssM2mSimcopLink_CreateParams           *pIssM2mSimcopPrm;
        AlgorithmLink_IssAewbCreateParams       *pAlg_IssAewbPrm;
    
        pIssCapturePrm    = &pObj->ucObj.IssCapturePrm;
        pIssM2mIspPrm     = &pObj->ucObj.IssM2mIspPrm;
    //    pIssRszPrm        = &pObj->ucObj.IssM2mResizerPrm;
    //    pIssM2mSimcopPrm  = &pObj->ucObj.IssM2mSimcopPrm;
        pAlg_IssAewbPrm   = &pObj->ucObj.Alg_IssAewbPrm;
    
        if(pIssCapturePrm->memAllocInfo.memAddr)
        {
            status = Utils_memFree(
                        UTILS_HEAPID_DDR_CACHED_SR,
                        (Ptr)pIssCapturePrm->memAllocInfo.memAddr,
                        pIssCapturePrm->memAllocInfo.memSize
                );
            UTILS_assert(status==0);
        }
    
        if(pAlg_IssAewbPrm->memAllocInfo.memAddr)
        {
            status = Utils_memFree(
                        UTILS_HEAPID_DDR_CACHED_SR,
                        (Ptr)pAlg_IssAewbPrm->memAllocInfo.memAddr,
                        pAlg_IssAewbPrm->memAllocInfo.memSize
                );
            UTILS_assert(status==0);
        }
    
        if(pIssM2mIspPrm->memAllocInfo.memAddr)
        {
            status = Utils_memFree(
                        UTILS_HEAPID_DDR_CACHED_SR,
                        (Ptr)pIssM2mIspPrm->memAllocInfo.memAddr,
                        pIssM2mIspPrm->memAllocInfo.memSize
                );
            UTILS_assert(status==0);
        }
    
     /*   if(pIssRszPrm->memAllocInfo.memAddr)
        {
            status = Utils_memFree(
                        UTILS_HEAPID_DDR_CACHED_SR,
                        (Ptr)pIssRszPrm->memAllocInfo.memAddr,
                        pIssRszPrm->memAllocInfo.memSize
                );
            UTILS_assert(status==0);
        }
    
        if(pIssM2mSimcopPrm->memAllocInfo.memAddr)
        {
            status = Utils_memFree(
                        UTILS_HEAPID_DDR_CACHED_SR,
                        (Ptr)pIssM2mSimcopPrm->memAllocInfo.memAddr,
                        pIssM2mSimcopPrm->memAllocInfo.memSize
                );
            UTILS_assert(status==0);
        } */
    }
    
    /**
     *******************************************************************************
     *
     * \brief   Set Display Create Parameters
     *
     *          This function is used to set the Display params.
     *          It is called in Create function. It is advisable to have
     *          chains_issIspSimcop_Display_ResetLinkPrms prior to set params
     *          so all the default params get set.
     *
     * \param   pPrm         [IN]    DisplayLink_CreateParams
     *
     *******************************************************************************
    */
    Void Chains_camera_ov2775_capture_display_SetDisplayPrms(
                                        DisplayLink_CreateParams *pPrm_Video,
    //                                    DisplayLink_CreateParams *pPrm_Grpx,
    //                                    DisplayLink_CreateParams *pPrm_VideoRszB,
                                        Chains_DisplayType displayType,
                                        UInt32 displayWidth,
                                        UInt32 displayHeight,
                                        UInt32 captureWidth,
                                        UInt32 captureHeight)
    {
        UInt32 dispWidth, dispHeight;
    
        if(pPrm_Video)
        {
            if((displayType == CHAINS_DISPLAY_TYPE_SDTV_NTSC) ||
              (displayType == CHAINS_DISPLAY_TYPE_SDTV_PAL))
            {
                pPrm_Video->displayScanFormat = SYSTEM_SF_INTERLACED;
            }
    
            /* To maintain the aspect ratio, change the display tarWidth */
            dispWidth = captureWidth * displayHeight / captureHeight;
            dispHeight = displayHeight;
    
            if (dispWidth > displayWidth)
            {
                dispWidth = displayWidth;
                dispHeight = displayWidth * captureHeight / captureWidth;
            }
    
    
            pPrm_Video->rtParams.tarWidth  = dispWidth;
            pPrm_Video->rtParams.tarHeight = dispHeight;
            pPrm_Video->rtParams.posX      = (displayWidth - dispWidth) / 2U;
            pPrm_Video->rtParams.posY      = (displayHeight - dispHeight) / 2U;
    
            pPrm_Video->displayId          = DISPLAY_LINK_INST_DSS_VID1;
        }
    
     /*   if(pPrm_VideoRszB)
        {
            if((displayType == CHAINS_DISPLAY_TYPE_SDTV_NTSC) ||
              (displayType == CHAINS_DISPLAY_TYPE_SDTV_PAL))
            {
                pPrm_VideoRszB->displayScanFormat = SYSTEM_SF_INTERLACED;
            }
    
            pPrm_VideoRszB->rtParams.tarWidth  = displayWidth/3;
            pPrm_VideoRszB->rtParams.tarHeight = displayHeight/3;
            pPrm_VideoRszB->rtParams.posX = displayWidth -
                pPrm_VideoRszB->rtParams.tarWidth - 10;
            pPrm_VideoRszB->rtParams.posY = displayHeight -
                pPrm_VideoRszB->rtParams.tarHeight - 10;
            pPrm_VideoRszB->displayId = DISPLAY_LINK_INST_DSS_VID2;
        }
    
        if(pPrm_Grpx)
        {
            if((displayType == CHAINS_DISPLAY_TYPE_SDTV_NTSC) ||
              (displayType == CHAINS_DISPLAY_TYPE_SDTV_PAL))
            {
                pPrm_Grpx->displayScanFormat = SYSTEM_SF_INTERLACED;
            }
    
            pPrm_Grpx->displayId = DISPLAY_LINK_INST_DSS_GFX1;
        } */
    }
    
    /*Void Chains_camera_ov2775_capture_display_SetSimcopConfig(
                Chains_camera_ov2775_capture_displayAppObj *pObj)
    {
        IssM2mSimcopLink_ConfigParams_Init(&pObj->simcopConfig);
    
        pObj->simcopConfig.ldcConfig = &pObj->ldcCfg;
        pObj->simcopConfig.vtnfConfig = &pObj->vtnfCfg;
    
        IssUtils_InitSimcopConfig(
            &pObj->simcopConfig, pObj->bypassLdc, pObj->bypassVtnf);
    
        IssUtils_SetimcopLdcVtnfRtConfig(
            &pObj->ldcCfg,
            &pObj->vtnfCfg,
            pObj->bypassLdc,
            pObj->bypassVtnf);
    
        // MUST be called after link create and before link start 
        System_linkControl(
                pObj->ucObj.IssM2mSimcopLinkID,
                ISSM2MSIMCOP_LINK_CMD_SET_SIMCOPCONFIG,
                &pObj->simcopConfig,
                sizeof(pObj->simcopConfig),
                TRUE);
    }
    */
    
    Void Chains_camera_ov2775_capture_display_SetIspConfig(
                Chains_camera_ov2775_capture_displayAppObj *pObj)
    {
        appSetDefaultIspParams(&pObj->appSensInfo);
        appSetIspParamsFromDCC(&pObj->appSensInfo);
    }
    
    Void Chains_camera_ov2775_capture_display_setMuxes(
                Chains_camera_ov2775_capture_displayAppObj *pObj)
    {
        /* Setup PinMux */
        ChainsPlatform_SetPinMux(pObj->chainsCfg->sensorName);
    
        /* Init Board Mux */
        ChainsBoard_SetBoardMux(pObj->chainsCfg->sensorName);
    }
    
    /*Void chains_issIspSimcop_Display_SetIssRszPrms(
            IssRszLink_CreateParams *issRszPrms,
            UInt32 outWidth,
            UInt32 outHeight)
    {
        IssRszLink_ChannelParams *chPrms;
    
        chPrms = issRszPrms->channelParams;
    
        chPrms->enableOut[0U] = TRUE;
        chPrms->outParams.heightRszA = outHeight;
        chPrms->outParams.widthRszA = outWidth;
        chPrms->outParams.dataFormat = SYSTEM_DF_YUV420SP_UV;
    }
    */
    /**
     *******************************************************************************
     *
     * \brief   Set link Parameters
     *
     *          It is called in Create function of the auto generated use-case file.
     *
     * \param pUcObj    [IN] Auto-generated usecase object
     * \param appObj    [IN] Application specific object
     *
     *******************************************************************************
    */
    Void Chains_camera_ov2775_capture_display_SetAppPrms(
        Chains_camera_ov2775_capture_displayObj *pUcObj, Void *appObj)
    {
        Chains_camera_ov2775_capture_displayAppObj *pObj
            = (Chains_camera_ov2775_capture_displayAppObj*) appObj;
    
        ChainsCommon_GetDisplayWidthHeight(
            pObj->chainsCfg->displayType,
            &pObj->displayWidth,
            &pObj->displayHeight
            );
    
    /*    pObj->simcopMode = ISSM2MSIMCOP_LINK_OPMODE_LDC_VTNF;
        pObj->bypassVtnf = FALSE;
        pObj->bypassLdc  = FALSE;
    
        if ((pObj->chainsCfg->issLdcEnable == FALSE) &&
            (pObj->chainsCfg->issVtnfEnable == TRUE))
        {
            pObj->simcopMode = ISSM2MSIMCOP_LINK_OPMODE_VTNF;
            pObj->bypassVtnf = FALSE;
            pObj->bypassLdc  = TRUE;
        }
        else if ((pObj->chainsCfg->issLdcEnable == TRUE) &&
                 (pObj->chainsCfg->issVtnfEnable == FALSE))
        {
            pObj->simcopMode = ISSM2MSIMCOP_LINK_OPMODE_LDC;
            pObj->bypassVtnf = TRUE;
            pObj->bypassLdc  = FALSE;
        }
        else if ((pObj->chainsCfg->issLdcEnable == FALSE) &&
                 (pObj->chainsCfg->issVtnfEnable == FALSE))
        {
            pObj->simcopMode = ISSM2MSIMCOP_LINK_OPMODE_VTNF;
            pObj->bypassVtnf = TRUE;
            pObj->bypassLdc  = TRUE;
        }
    */
        /* Initialize Simcop Pointers */
    //    pObj->simcopConfig.ldcConfig = &pObj->ldcCfg;
    //    pObj->simcopConfig.vtnfConfig = &pObj->vtnfCfg;
    
        /* Create the sensor now */
        strncpy(pObj->appSensInfo.sensorName, pObj->chainsCfg->sensorName,
            ISS_SENSORS_MAX_NAME);
        pObj->appSensInfo.numCh = 1;
        pObj->appSensInfo.ispOpMode = pObj->chainsCfg->ispOpMode;
    ///    pObj->appSensInfo.simcopOpMode = pObj->simcopMode;
        pObj->appSensInfo.numCSI2Inst = 1;
        appCreateISSSensor(&pObj->appSensInfo);
    
        appInitIssCaptParams(&pObj->appSensInfo, pUcObj->IssCaptureLinkID,
            &pUcObj->IssCapturePrm);
        appInitIssIspParams(&pObj->appSensInfo, pUcObj->IssM2mIspLinkID,
            &pUcObj->IssM2mIspPrm);
    //    appInitIssSimcopParams(&pObj->appSensInfo, pUcObj->IssM2mSimcopLinkID,
    //        &pUcObj->IssM2mSimcopPrm);
        appInitIssAewbParams(&pObj->appSensInfo, pUcObj->Alg_IssAewbLinkID,
            &pUcObj->Alg_IssAewbPrm);
    
        /* Resizer B output will be shown as 1/3rd of display size */
    //    pUcObj->IssM2mIspPrm.channelParams[0u].outParams.widthRszB  =
    //        (pObj->displayWidth / 3) & (~0x1U);
    //    pUcObj->IssM2mIspPrm.channelParams[0u].outParams.heightRszB =
    //        (pObj->displayHeight / 3) & (~0x1U);
    
        /* Display requires around 4 buffers for 60fps chain, so increasing
           simcop output buffers to 4 */
    //    pUcObj->IssM2mSimcopPrm.channelParams[0u].numBuffersPerCh = 4;
    //    pUcObj->IssM2mResizerPrm.channelParams[0u].numBuffersPerCh = 4U;
    
        pUcObj->IssM2mIspPrm.allocBufferForDump = TRUE;
        pUcObj->IssCapturePrm.allocBufferForRawDump = TRUE;
    
    /*    ChainsCommon_SetGrpxSrcPrms(&pUcObj->GrpxSrcPrm,
                                    pObj->displayWidth,
                                    pObj->displayHeight);
    */
    /*    chains_issIspSimcop_Display_SetIssRszPrms(
            &pUcObj->IssM2mResizerPrm,
            ((pObj->displayWidth/3) & ~0x1), // Even value needed 
            (pObj->displayHeight/3));*/
    	pObj->captureOutWidth = CAPTURE_SENSOR_WIDTH;
    	pObj->captureOutHeight = CAPTURE_SENSOR_HEIGHT; 
    /*    pObj->captureOutWidth = pUcObj->IssCapturePrm.outParams[0U].width;
        pObj->captureOutHeight = pUcObj->IssCapturePrm.outParams[0U].height;*/
    
        /*
         * call this function to allocate memory from use-case
         * if this function is not called memory is allocated
         * from within the respective link
         */
    //    Chains_camera_ov2775_capture_display_SetMemAllocInfo(pObj);
    
        Chains_camera_ov2775_capture_display_SetDisplayPrms(
            &pUcObj->Display_VideoPrm,
                pObj->chainsCfg->displayType,
                pObj->displayWidth,
                pObj->displayHeight,
    	    pObj->captureOutWidth,
    	    pObj->captureOutHeight); 	
    //            pUcObj->IssM2mIspPrm.channelParams[0U].outParams.widthRszA,
    //            pUcObj->IssM2mIspPrm.channelParams[0U].outParams.heightRszA);
    
        ChainsCommon_StartDisplayCtrl(
            pObj->chainsCfg->displayType,
            pObj->displayWidth,
            pObj->displayHeight);
    }
    
    /**
     *******************************************************************************
     *
     * \brief   Start the capture display Links
     *
     *          Function sends a control command to capture and display link to
     *          to Start all the required links . Links are started in reverce
     *          order as information of next link is required to connect.
     *          System_linkStart is called with LinkId to start the links.
     *
     * \param   pObj  [IN] chains_issIspSimcop_DisplayAppObj
     *
     * \return  SYSTEM_LINK_STATUS_SOK on success
     *
     *******************************************************************************
    */
    Void Chains_camera_ov2775_capture_display_StartApp(Chains_camera_ov2775_capture_displayAppObj *pObj)
    {
        Chains_memPrintHeapStatus();
    
        /* Sets the Simcop Config also */
        Chains_camera_ov2775_capture_display_SetIspConfig(pObj);
    //    chains_issIspSimcop_Display_SetSimcopConfig(pObj);
    
        Chains_camera_ov2775_capture_display_setMuxes(pObj);
    
        appStartIssSensorSerDes(&pObj->appSensInfo);
    
        ChainsCommon_StartDisplayDevice(pObj->chainsCfg->displayType);
    
        Chains_camera_ov2775_capture_display_Start(&pObj->ucObj);
    
        Chains_prfLoadCalcEnable(TRUE, FALSE, FALSE);
    }
    
    /**
     *******************************************************************************
     *
     * \brief   Delete the capture display Links
     *
     *          Function sends a control command to capture and display link to
     *          to delete all the prior created links
     *          System_linkDelete is called with LinkId to delete the links.
     *
     * \param   pObj   [IN]   chains_issIspSimcop_DisplayAppObj
     *
     *******************************************************************************
    */
    Void Chains_camera_ov2775_capture_display_StopAndDeleteApp(Chains_camera_ov2775_capture_displayAppObj *pObj)
    {
        Chains_camera_ov2775_capture_display_Stop(&pObj->ucObj);
        Chains_camera_ov2775_capture_display_Delete(&pObj->ucObj);
    
        Chains_camera_ov2775_capture_display_FreeMemory(pObj);
    
        ChainsCommon_StopDisplayCtrl();
    
        appStopISSSensor(&pObj->appSensInfo);
    
        appDeleteISSSensor(&pObj->appSensInfo);
    
        ChainsCommon_StopDisplayDevice(pObj->chainsCfg->displayType);
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        Chains_prfLoadCalcEnable(FALSE, TRUE, TRUE);
    }
    
    /**
     *******************************************************************************
     *
     * \brief   Single Channel Capture Display usecase function
     *
     *          This functions executes the create, start functions
     *
     *          Further in a while loop displays run time menu and waits
     *          for user inputs to print the statistics or to end the demo.
     *
     *          Once the user inputs end of demo stop and delete
     *          functions are executed.
     *
     * \param   chainsCfg       [IN]   Chains_Ctrl
     *
     *******************************************************************************
    */
    Void Chains_camera_ov2775_capture_display(Chains_Ctrl *chainsCfg)
    {
        char ch;
        UInt32 done = FALSE;
        Chains_camera_ov2775_capture_displayAppObj chainsObj;
    //    IssM2mIspLink_IspOutputTapParams ispTapPrms;
    //    Int32 CapImCounter = 0;
    //    char fName[128];
    //    Int32 status = 0;
    //    IssCaptureLink_GetSaveFrameStatus rawSaveFrameStatus;
    //    IssM2mSimcopLink_GetSaveFrameStatus simcopSaveFrameStatus;
    //    IssM2mIspLink_GetSaveFrameStatus ispSaveFrameStatus;
    //    UInt32 chId = 0U;
    
    //    chainsObj.bypassVtnf = 0; /* KW error fix */
    //    chainsObj.bypassLdc  = 0; /* KW error fix */
    
    
        Vps_printf(" Entered Chains_issIspSimcop_Display \n");
    
        if (TRUE == IssM2mIspLink_IsWdrMode(chainsCfg->ispOpMode))
        {
            Vps_printf(" CHAINS: Please make sure BSP is build with WDR and LDC enabled !!!\n");
        }
    
        chainsObj.chainsCfg = chainsCfg;
    
        /* Initialize Video Sensor, so that Algorithm can use Params
           from Vid Sensor layer */
        Chains_camera_ov2775_capture_display_Create(&chainsObj.ucObj, &chainsObj);
        ChainsCommon_SetIssCaptureErrorHandlingCb(chainsObj.ucObj.IssCaptureLinkID);
        Chains_camera_ov2775_capture_display_StartApp(&chainsObj);
    
        while(!done)
        {
            Vps_printf(gChains_camera_ov2775_capture_display_runTimeMenu);
    
            ch = Chains_readChar();
    
            switch(ch)
            {
                case '0':
                    done = TRUE;
                    break;
                case 'p':
                case 'P':
                    ChainsCommon_PrintStatistics();
                    Chains_camera_ov2775_capture_display_printStatistics(&chainsObj.ucObj);
                    break;
                default:
                    Vps_printf("\nUnsupported option '%c'. Please try again\n", ch);
                    break;
            }
        }
    
        Chains_camera_ov2775_capture_display_StopAndDeleteApp(&chainsObj);
    
    }
    
    

    Regards,

    Gouri P.

  • Gauri,

    Could you please also share _priv.c files?

    Rgds,
    Brijesh
  • Hello Brijesh,

    Please find attached _priv.c and _priv.h  file.

    /****************************************************************************
    Copyright (c) [2012 - 2017] Texas Instruments Incorporated
    
    All rights reserved not granted herein.
    
    Limited License.
    
     Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
     license under copyrights and patents it now or hereafter owns or controls to
     make,  have made, use, import, offer to sell and sell ('Utilize') this software
     subject to the terms herein.  With respect to the foregoing patent license,
     such license is granted  solely to the extent that any such patent is necessary
     to Utilize the software alone.  The patent license shall not apply to any
     combinations which include this software, other than combinations with devices
     manufactured by or for TI ('TI Devices').  No hardware patent is licensed
     hereunder.
    
     Redistributions must preserve existing copyright notices and reproduce this
     license (including the above copyright notice and the disclaimer and
     (if applicable) source code license limitations below) in the documentation
     and/or other materials provided with the distribution
    
     Redistribution and use in binary form, without modification, are permitted
     provided that the following conditions are met:
    
     * No reverse engineering, decompilation, or disassembly of this software
       is permitted with respect to any software provided in binary form.
    
     * Any redistribution and use are licensed by TI for use only with TI Devices.
    
     * Nothing shall obligate TI to provide you with source code for the software
       licensed and provided to you in object code.
    
     If software source code is provided to you, modification and redistribution of
     the source code are permitted provided that the following conditions are met:
    
     * Any redistribution and use of the source code, including any resulting
       derivative works, are licensed by TI for use only with TI Devices.
    
     * Any redistribution and use of any object code compiled from the source code
       and any resulting derivative works, are licensed by TI for use only with TI
       Devices.
    
     Neither the name of Texas Instruments Incorporated nor the names of its
     suppliers may be used to endorse or promote products derived from this software
     without specific prior written permission.
    
     DISCLAIMER.
    
     THIS SOFTWARE IS PROVIDED BY TI AND TI�S LICENSORS 'AS IS' AND ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     IN NO EVENT SHALL TI AND TI�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
     OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    ******************************************************************************
    */
    /*
    *******************************************************************************
    *
    * IMPORTANT NOTE:
    *  This file is AUTO-GENERATED by Vision SDK use case generation tool
    *
    *******************************************************************************
    */
    #include "Chains_camera_ov2775_capture_display_priv.h"
    Void Chains_camera_ov2775_capture_display_SetLinkId(Chains_camera_ov2775_capture_displayObj *pObj){
           pObj->IssCaptureLinkID               = SYSTEM_LINK_ID_ISSCAPTURE_0;
           pObj->IssM2mIspLinkID                = SYSTEM_LINK_ID_ISSM2MISP_0;
           pObj->Alg_IssAewbLinkID              = IPU1_0_LINK (SYSTEM_LINK_ID_ALG_0);
           pObj->Display_VideoLinkID            = SYSTEM_LINK_ID_DISPLAY_0;
    }
    
    Void Chains_camera_ov2775_capture_display_ResetLinkPrms(Chains_camera_ov2775_capture_displayObj *pObj){
           IssCaptureLink_CreateParams_Init(&pObj->IssCapturePrm);
           IssM2mIspLink_CreateParams_Init(&pObj->IssM2mIspPrm);
           AlgorithmLink_IssAewb_Init(&pObj->Alg_IssAewbPrm);
           DisplayLink_CreateParams_Init(&pObj->Display_VideoPrm);
    }
    
    Void Chains_camera_ov2775_capture_display_SetPrms(Chains_camera_ov2775_capture_displayObj *pObj){
           (pObj->Alg_IssAewbPrm).baseClassCreate.size  = sizeof(AlgorithmLink_IssAewbCreateParams);
           (pObj->Alg_IssAewbPrm).baseClassCreate.algId  = ALGORITHM_LINK_IPU_ALG_ISS_AEWB1;
    }
    
    Void Chains_camera_ov2775_capture_display_ConnectLinks(Chains_camera_ov2775_capture_displayObj *pObj){
    
           //IssCapture -> IssM2mIsp
           pObj->IssCapturePrm.outQueParams.nextLink = pObj->IssM2mIspLinkID;
           pObj->IssM2mIspPrm.inQueParams[0].prevLinkId = pObj->IssCaptureLinkID;
           pObj->IssM2mIspPrm.inQueParams[0].prevLinkQueId = 0;
    
           //IssM2mIsp -> Display_Video
           pObj->IssM2mIspPrm.outQueParams[0].nextLink = pObj->Display_VideoLinkID;
           pObj->Display_VideoPrm.inQueParams.prevLinkId = pObj->IssM2mIspLinkID;
           pObj->Display_VideoPrm.inQueParams.prevLinkQueId = 0;
    
           //IssM2mIsp -> Alg_IssAewb
           pObj->IssM2mIspPrm.outQueParams[1].nextLink = pObj->Alg_IssAewbLinkID;
           pObj->Alg_IssAewbPrm.inQueParams.prevLinkId = pObj->IssM2mIspLinkID;
           pObj->Alg_IssAewbPrm.inQueParams.prevLinkQueId = 1;
    
    }
    
    Int32 Chains_camera_ov2775_capture_display_Create(Chains_camera_ov2775_capture_displayObj *pObj, Void *appObj){
    
           Int32 status;
    
           Chains_camera_ov2775_capture_display_SetLinkId(pObj);
           Chains_camera_ov2775_capture_display_ResetLinkPrms(pObj);
    
           Chains_camera_ov2775_capture_display_SetPrms(pObj);
           Chains_camera_ov2775_capture_display_SetAppPrms(pObj, appObj);
    
           Chains_camera_ov2775_capture_display_ConnectLinks(pObj);
           status = System_linkCreate(pObj->IssCaptureLinkID, &pObj->IssCapturePrm, sizeof(pObj->IssCapturePrm));
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkCreate(pObj->IssM2mIspLinkID, &pObj->IssM2mIspPrm, sizeof(pObj->IssM2mIspPrm));
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkCreate(pObj->Alg_IssAewbLinkID, &pObj->Alg_IssAewbPrm, sizeof(pObj->Alg_IssAewbPrm));
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkCreate(pObj->Display_VideoLinkID, &pObj->Display_VideoPrm, sizeof(pObj->Display_VideoPrm));
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           return status;
    }
    
    Int32 Chains_camera_ov2775_capture_display_Start(Chains_camera_ov2775_capture_displayObj *pObj){
    
           Int32 status;
    
           status = System_linkStart(pObj->Display_VideoLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkStart(pObj->Alg_IssAewbLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkStart(pObj->IssM2mIspLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkStart(pObj->IssCaptureLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           return status;
    }
    
    Int32 Chains_camera_ov2775_capture_display_Stop(Chains_camera_ov2775_capture_displayObj *pObj){
    
           Int32 status;
    
           status = System_linkStop(pObj->Display_VideoLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkStop(pObj->Alg_IssAewbLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkStop(pObj->IssM2mIspLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkStop(pObj->IssCaptureLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           return status;
    }
    
    Int32 Chains_camera_ov2775_capture_display_Delete(Chains_camera_ov2775_capture_displayObj *pObj){
    
           Int32 status;
    
           status = System_linkDelete(pObj->Display_VideoLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkDelete(pObj->Alg_IssAewbLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkDelete(pObj->IssM2mIspLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           status = System_linkDelete(pObj->IssCaptureLinkID);
           UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);
    
           return status;
    }
    
    Void Chains_camera_ov2775_capture_display_printBufferStatistics(Chains_camera_ov2775_capture_displayObj *pObj){
           System_linkPrintBufferStatistics(pObj->IssCaptureLinkID);
           System_linkPrintBufferStatistics(pObj->IssM2mIspLinkID);
           System_linkPrintBufferStatistics(pObj->Alg_IssAewbLinkID);
           System_linkPrintBufferStatistics(pObj->Display_VideoLinkID);
           Task_sleep(500);
    }
    
    Void Chains_camera_ov2775_capture_display_printStatistics(Chains_camera_ov2775_capture_displayObj *pObj){
           System_linkPrintStatistics(pObj->IssCaptureLinkID);
           System_linkPrintStatistics(pObj->IssM2mIspLinkID);
           System_linkPrintStatistics(pObj->Alg_IssAewbLinkID);
           System_linkPrintStatistics(pObj->Display_VideoLinkID);
           Task_sleep(500);
    }
    
    

    Chains_camera_ov2775_capture_display_priv.h

    Regards,

    Gouri P.

  • Hello Brijesh/Surya,

    Any update on this?

    Regards,
    Gouri P.
  • Hi Gouri,

    ISP has 4 output ques and you are using only two of them, so you need to disable que-s you are not using. Please, in file app_util_iss.c, in function appInitIssIspParams disable que for resizer B:

    pPrm->channelParams[chId].enableOut[
    ISSM2MISP_LINK_OUTPUTQUE_IMAGE_RSZ_B] = 0;

    You can do this also from your usecase file.

    Best regards,
    Stefan.
  • Hi Stefan,

    That's a good catch. Yes, Resizer B output is by default enabled and if not requires, it has to be disabled in the usecase.

    Regards,
    Brijesh
  • Hello Stefan/Brijesh,

    Thanks a lot for the help.

    I have one other question that is, I am getting blurred stream from the camera and when any object gets closer to the screen than it's doing auto focusing and gets a clear view but, I need a full screen clear view.

    How should I get this? Is there any link I need to add?

    Regards,
    Gouri P.
  • Gouri,

    There is no auto-focus algo/module in VSDK. You require to develop it.

    Regards,
    Brijesh