Advertisement
Guest User

rtrk chains.h

a guest
Oct 16th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.80 KB | None | 0 0
  1. /*
  2. *******************************************************************************
  3. *
  4. * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
  5. * ALL RIGHTS RESERVED
  6. *
  7. *******************************************************************************
  8. */
  9.  
  10. /**
  11. *******************************************************************************
  12. *
  13. * \ingroup EXAMPLES_API
  14. * \defgroup EXAMPLES_CHAIN APIs for selecting the usecase chain.
  15. *
  16. * \brief APIs for selecting the required usecase chain and run
  17. * time menu configurations .
  18. * It also provide API's for instrumentation of load and heap usage
  19. *
  20. * @{
  21. *
  22. *******************************************************************************
  23. */
  24.  
  25. /**
  26. *******************************************************************************
  27. *
  28. * \file chains.h
  29. *
  30. * \brief APIs for selecting the required usecase chain.
  31. *
  32. * \version 0.0 (Jun 2013) : [CM] First version
  33. * \version 0.1 (Jul 2013) : [CM] Updates as per code review comments
  34. *
  35. *******************************************************************************
  36. */
  37.  
  38. #ifndef _CHAINS_H_
  39. #define _CHAINS_H_
  40.  
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif
  44.  
  45. /*******************************************************************************
  46. * Include files
  47. *******************************************************************************
  48. */
  49. #include <include/link_api/system.h>
  50. #include <include/link_api/captureLink.h>
  51. #include <include/link_api/vpeLink.h>
  52. #include <include/link_api/syncLink.h>
  53. #include <include/link_api/selectLink.h>
  54. #include <include/link_api/nullLink.h>
  55. #include <include/link_api/nullSrcLink.h>
  56. #include <include/link_api/ipcLink.h>
  57. #include <include/link_api/displayLink.h>
  58. #include <include/link_api/displayMultiPipeLink.h>
  59. #include <include/link_api/dupLink.h>
  60. #include <include/link_api/splitLink.h>
  61. #include <include/link_api/gateLink.h>
  62. #include <include/link_api/mergeLink.h>
  63. #include <include/link_api/avbRxLink.h>
  64. #include <include/link_api/tfdtpRxLink.h>
  65. #include <include/link_api/decLink.h>
  66. #include <include/link_api/encLink.h>
  67. #include <include/link_api/systemLink_ipu1_0_params.h>
  68. #include <include/link_api/displayCtrlLink.h>
  69. #include <include/link_api/ipcLink.h>
  70. #include <include/link_api/issCaptureLink.h>
  71. #include <include/link_api/issM2mIspLink.h>
  72. #include <include/link_api/issM2mSimcopLink.h>
  73. #include <include/link_api/grpxSrcLink.h>
  74. #include <examples/tda2xx/include/lcd.h>
  75. #include <examples/tda2xx/include/board.h>
  76. #include <examples/tda2xx/include/hdmi_recvr.h>
  77. #include <examples/tda2xx/include/hdmi_tx.h>
  78. #include <examples/tda2xx/include/draw2d.h>
  79.  
  80. #include <src/utils_common/include/utils_uart.h>
  81. #include <src/utils_common/include/utils_qspi.h>
  82. #include <src/utils_common/include/utils_dma.h>
  83. #include <src/utils_common/include/utils_mem.h>
  84. #include <src/utils_common/include/utils_l3_emif_bw.h>
  85. #include <src/utils_common/include/utils_boot_slaves.h>
  86. #include <src/utils_common/include/file_api.h>
  87. #include <ti/sysbios/knl/Task.h>
  88.  
  89. #ifndef RADAR_INCLUDE
  90. #include <include/link_api/ultrasonicCaptureLink.h>
  91. #include <include/link_api/algorithmLink_edgeDetection.h>
  92. #include <include/link_api/algorithmLink_frameCopy.h>
  93. #include <include/link_api/algorithmLink_safeFrameCopy.h>
  94. #include <include/link_api/algorithmLink_dmaSwMs.h>
  95. #include <include/link_api/algorithmLink_geometricAlignment.h>
  96. #include <include/link_api/algorithmLink_geometricAlignment3D.h>
  97. #include <include/link_api/algorithmLink_photoAlignment.h>
  98. #include <include/link_api/algorithmLink_synthesis.h>
  99. #include <include/link_api/algorithmLink_denseOpticalFlow.h>
  100. #include <include/link_api/algorithmLink_vectorToImage.h>
  101. #include <include/link_api/algorithmLink_featurePlaneComputation.h>
  102. #include <include/link_api/algorithmLink_objectDetection.h>
  103. #include <include/link_api/algorithmLink_objectClassification.h>
  104. #include <include/link_api/algorithmLink_sparseOpticalFlow.h>
  105. #include <include/link_api/algorithmLink_ultrasonicFusion.h>
  106. #include <include/link_api/algorithmLink_issAewb.h>
  107. #include <include/link_api/algorithmLink_imagePreProcess.h>
  108. #include <include/link_api/algorithmLink_imgPyramid.h>
  109. #include <include/link_api/algorithmLink_fpCompute.h>
  110. #include <include/link_api/algorithmLink_sceneObstructionDetect.h>
  111. #include <include/link_api/algorithmLink_objectDraw.h>
  112. #include <include/link_api/algorithmLink_subframeCopy.h>
  113. #include <include/link_api/algorithmLink_softIsp.h>
  114. #include <include/link_api/algorithmLink_census.h>
  115. #include <include/link_api/algorithmLink_stereoPostProcess.h>
  116. #include <include/link_api/algorithmLink_disparityHamDist.h>
  117. #include <include/link_api/algorithmLink_remapMerge.h>
  118. #include <include/link_api/algorithmLink_laneDetect.h>
  119. #include <include/link_api/algorithmLink_sfm.h>
  120. #include <include/link_api/algorithmLink_fcw.h>
  121. #include <include/link_api/algorithmLink_clr.h>
  122. #include <include/link_api/algorithmLink_autoChartDetect.h>
  123. #include <include/link_api/algorithmLink_poseEstimate.h>
  124. #ifdef ENABLE_OPENCL
  125. #include <include/link_api/algorithmLink_opencvCanny.h>
  126. #include <include/link_api/algorithmLink_opencvOpenCLDilation.h>
  127. #endif
  128. #ifdef OPENCL_INCLUDE
  129. #include <include/link_api/algorithmLink_openClframeCopy.h>
  130. #include <include/link_api/algorithmLink_openClCannyEdge.h>
  131. #endif
  132. #include <examples/tda2xx/include/video_sensor.h>
  133. #include <examples/tda2xx/include/chains_iss_sensors.h>
  134. #include <examples/tda2xx/include/video_decdr.h>
  135. #endif
  136.  
  137. /*******************************************************************************
  138. * Defines
  139. *******************************************************************************
  140. */
  141.  
  142. /*******************************************************************************
  143. * Enum's
  144. *******************************************************************************
  145. */
  146.  
  147. typedef enum {
  148. CHAINS_DISPLAY_TYPE_LCD_7_INCH = 0,
  149. /**< Output displayed on 7-inch LCD */
  150.  
  151. CHAINS_DISPLAY_TYPE_LCD_10_INCH,
  152. /**< Output displayed on 10-inch LCD */
  153.  
  154. CHAINS_DISPLAY_TYPE_HDMI_720P,
  155. /**< Output displayed on HDMI in 720P resolution */
  156.  
  157. CHAINS_DISPLAY_TYPE_HDMI_1080P,
  158. /**< Output displayed on HDMI in 1080P resolution */
  159.  
  160. CHAINS_DISPLAY_TYPE_SDTV_NTSC,
  161. /**< Output displayed on SD TV in NTSC format */
  162.  
  163. CHAINS_DISPLAY_TYPE_SDTV_PAL,
  164. /**< Output displayed on SD TV in PAL format */
  165.  
  166. CHAINS_DISPLAY_TYPE_HDMI_XGA_TDM,
  167. /**< Output displayed on HDMI in XGA resolution using 8bit TDM mode */
  168.  
  169. CHAINS_DISPLAY_TYPE_LDC_10_INCH_LCDCTRL_TC358778_MIPI_DSI_1920_1200,
  170. /**< Output is displayed on 10Inch 1920x1200 LDC */
  171.  
  172. CHAINS_DISPLAY_TYPE_HDMI_WXGA
  173. /**< Output displayed on HDMI in WXGA, Supported only on TDA3xx */
  174.  
  175. } Chains_DisplayType;
  176.  
  177. typedef enum {
  178. CHAINS_CAPTURE_SRC_OV10635 = 0,
  179. /**< Capture source is OV 10635
  180. * SUPPORTED on TDA2x EVM, TDA3x EVM
  181. */
  182. CHAINS_CAPTURE_SRC_HDMI_720P,
  183. /**< Capture source is HDMI in 720P resolution
  184. * SUPPORTED on TDA2x EVM
  185. */
  186. CHAINS_CAPTURE_SRC_HDMI_1080P,
  187. /**< Capture source is HDMI in 1080P resolution
  188. * SUPPORTED on TDA2x EVM
  189. */
  190. CHAINS_CAPTURE_SRC_AR0132RCCC,
  191. /**< Capture source is Aptina AR0132 RCCC sensor
  192. * SUPPORTED on TDA2x MonsterCam Board
  193. */
  194. CHAINS_CAPTURE_SRC_AR0132ISP,
  195. /**< Capture source is Aptina AR0132 BAYER + External ISP sensor
  196. * SUPPORTED on TDA2x MonsterCam Board
  197. */
  198. CHAINS_CAPTURE_SRC_OV10640_CSI2,
  199. /**< OV10640 sensor with CSI2 interface
  200. * SUPPORTED on TDA3x EVM
  201. */
  202. CHAINS_CAPTURE_SRC_OV10640_PARALLEL,
  203. /**< OV10640 sensor with parallel interface
  204. * SUPPORTED on TDA3x EVM
  205. */
  206. CHAINS_CAPTURE_SRC_AR0132BAYER_PARALLEL,
  207. /**< Capture source is Aptina AR0132 BAYER Parallel interface
  208. * SUPPORTED on TDA3x EVM ONLY via Aptina Connector
  209. * Only works with ISS related use-cases
  210. */
  211.  
  212. CHAINS_CAPTURE_SRC_AR0132MONOCHROME_PARALLEL,
  213. /**< Capture source is Aptina AR0132 Monochrome Parallel interface
  214. * SUPPORTED on TDA3x EVM ONLY via Aptina Connector
  215. * Only works with ISS related use-cases
  216. */
  217.  
  218. CHAINS_CAPTURE_SRC_AR0140BAYER_PARALLEL,
  219. /**< Capture source is Aptina AR0140 BAYER Parallel interface
  220. * SUPPORTED on TDA3x EVM ONLY via Aptina Connector
  221. * Only works with ISS related use-cases
  222. */
  223. CHAINS_CAPTURE_SRC_IMX224_CSI2,
  224. /**< Capture source is Sony IMX224 CSI interface
  225. * SUPPORTED on TDA3x EVM ONLY LI module
  226. * Only works with ISS related use-cases
  227. */
  228.  
  229. CHAINS_CAPTURE_SRC_DM388,
  230. /**< Capture source is external DM388 chip giving out put on vout
  231. * This is for TDA2x MonsterCam Board
  232. */
  233.  
  234. CHAINS_CAPTURE_SRC_UB960_TIDA00262,
  235. /**< Capture source is UB960 aggregator, to which 1 or more (4) TIDA00262
  236. * could be connected.
  237. * Each TIDA00262 module, has AR0140AT video sensor
  238. */
  239. CHAINS_CAPTURE_SRC_OV10635_LVDS,
  240. /**< OV10635 using LVDS
  241. */
  242. CHAINS_CAPTURE_SRC_UB960_IMI,
  243. /**< Capture source is UB960 aggregator, to which 1 or more (4) IMI
  244. * could be connected.
  245. * Each IMI module, has OV10640 video sensor
  246. */
  247.  
  248. CHAINS_CAPTURE_SRC_UB964_OV1063X,
  249. /**< Capture source is UB964 aggregator, to which 1 or more (4) SAT0088 &
  250. * OV1063X / IMI could be connected.
  251. */
  252. CHAINS_CAPTURE_SRC_VIDDEC_TVP5158,
  253. /**< Capture source is Video Decoder TVP 5158
  254. * SUPPORTED on TDA2x EVM
  255. */
  256. CHAINS_CAPTURE_SRC_MAX
  257. /**< Max number of capture source's */
  258.  
  259. } Chains_CaptureSrc;
  260.  
  261. typedef enum {
  262.  
  263. CHAINS_CAPTURE_INTF_ISS,
  264. /**< ISS Capture Interface
  265. */
  266. CHAINS_CAPTURE_INTF_VIP,
  267. /**< LVDS Capture Interface
  268. */
  269. CHAINS_CAPTURE_INTF_MAX,
  270. /**< Max Capture Interface
  271. */
  272. } Chains_CaptureIntf;
  273.  
  274. /*******************************************************************************
  275. * Data structure's
  276. *******************************************************************************
  277. */
  278.  
  279. /**
  280. *******************************************************************************
  281. *
  282. * \brief Chain Parameters.
  283. *
  284. *******************************************************************************
  285. */
  286. typedef struct {
  287.  
  288. UInt32 algProcId;
  289. /**< Processor ID on which algorithm runs for
  290. * - Frame copy algorithm use-case
  291. * - DMA SW MS algorithm use-case
  292. */
  293. Chains_DisplayType displayType;
  294. /**< LCD/HDM display */
  295. #ifndef RADAR_INCLUDE
  296. UInt32 numLvdsCh;
  297. /**< Number of channels of LVDS to enable */
  298.  
  299. Chains_CaptureSrc captureSrc;
  300. /**< OV/HDMI-720p/HDMI-1080p capture */
  301.  
  302. UInt32 numPyramids;
  303. /**< numPyramids - used to select Alg with One/Two Pyramid Mode in Dense Optical Flow*/
  304.  
  305. Bool issLdcEnable;
  306. /**< TRUE: LDC is enabled in ISS use-cases
  307. * ONLY applicable for TDA3x platform
  308. */
  309.  
  310. Bool issVtnfEnable;
  311. /**< TRUE: VTNF is enabled in ISS use-cases
  312. * ONLY applicable for TDA3x platform
  313. */
  314.  
  315. IssM2mIspLink_OperatingMode ispOpMode;
  316. /**< WDR mode, disabled, 2 pass or 1 pass
  317. * ONLY applicable for TDA3x platform
  318. */
  319.  
  320. AlgorithmLink_SrvOutputModes svOutputMode;
  321. /**< To slect 2D vs 3D Surround View (SRV) Alg */
  322.  
  323. Bool enableCarOverlayInAlg;
  324. /**< Set to 1, if DSP need to create the car image, apply only for 2D SRV */
  325.  
  326. char sensorName[CHAINS_ISS_SENSOR_MAX_NAME];
  327.  
  328. Bool byPassSensorCfg;
  329. /**< Some of the sensor don't require explict programming. The required
  330. configurations are pre-stored. In such cases programming is to be
  331. by-passed */
  332. #endif
  333. } Chains_Ctrl;
  334.  
  335.  
  336. /*******************************************************************************
  337. * Extern's
  338. *******************************************************************************
  339. */
  340. extern Chains_Ctrl gChains_usecaseCfg;
  341.  
  342. /*******************************************************************************
  343. * Functions
  344. *******************************************************************************
  345. */
  346.  
  347. /**
  348. *******************************************************************************
  349. *
  350. * \brief Main call for usecase selection and configuration
  351. *
  352. * Chains_main is called form the main of main_ipu1_0.c .
  353. * This is the entry point for usecase selection.
  354. * Board, LCD initializations and demo selections are performed.
  355. * It waits in a while loop till the end of demo/usecase is triggred
  356. *
  357. *******************************************************************************
  358. */
  359. Void Chains_main();
  360.  
  361. /**
  362. *******************************************************************************
  363. *
  364. * \brief Single Channel Capture Display usecase function
  365. *
  366. * \param chainsCfg [IN] Chains_Ctrl
  367. *
  368. *******************************************************************************
  369. */
  370. Void Chains_vipSingleCam_Display(Chains_Ctrl *chainsCfg);
  371.  
  372. #ifdef ROBUST_RVC_INCLUDE
  373. /**
  374. *******************************************************************************
  375. *
  376. * \brief Single Channel RVC SWCRC :Capture Display usecase function
  377. *
  378. * \param chainsCfg [IN] Chains_Ctrl
  379. *
  380. *******************************************************************************
  381. */
  382. Void chains_vipSingleRvcCamCrc_Display(Chains_Ctrl *chainsCfg);
  383. #endif
  384.  
  385. /**
  386. *******************************************************************************
  387. *
  388. * \brief Single Channel Capture Dual Display usecase function
  389. *
  390. * \param chainsCfg [IN] Chains_Ctrl
  391. *
  392. *******************************************************************************
  393. */
  394. Void chains_vipSingleCam_DualDisplay(Chains_Ctrl *chainsCfg);
  395.  
  396. /**
  397. *******************************************************************************
  398. *
  399. * \brief Single Channel Capture Dual Display + ED usecase function
  400. *
  401. * \param chainsCfg [IN] Chains_Ctrl
  402. *
  403. *******************************************************************************
  404. */
  405. Void chains_vipSingleCam_DualDisplayEdgeDetection(Chains_Ctrl *chainsCfg);
  406.  
  407. /**
  408. *******************************************************************************
  409. *
  410. * \brief Single Channel Capture Display usecase with frame copy algorithm
  411. *
  412. * \param chainsCfg [IN] Chains_Ctrl
  413. *
  414. *******************************************************************************
  415. */
  416. Void Chains_vipSingleCameraFrameCopy(Chains_Ctrl *chainsCfg);
  417.  
  418. /**
  419. *******************************************************************************
  420. *
  421. * \brief Single Channel Capture Display usecase with OpenCV Canny algorithm
  422. *
  423. * \param chainsCfg [IN] Chains_Ctrl
  424. *
  425. *******************************************************************************
  426. */
  427. Void Chains_vipSingleCamOpenCVCanny(Chains_Ctrl *chainsCfg);
  428.  
  429. /**
  430. *******************************************************************************
  431. *
  432. * \brief Single Channel Capture Display usecase with frame copy algorithm
  433. * with FFI example
  434. *
  435. * \param chainsCfg [IN] Chains_Ctrl
  436. *
  437. *******************************************************************************
  438. */
  439. Void Chains_vipSingleCameraSafeFrameCopy(Chains_Ctrl *chainsCfg);
  440. /* OpenCL Use Case */
  441. #ifdef OPENCL_INCLUDE
  442. Void Chains_vipSingleCameraOpenCLFrameCopy(Chains_Ctrl *chainsCfg);
  443. Void Chains_vipSingleCameraOpenCLCannyEdge(Chains_Ctrl *chainsCfg);
  444. #endif
  445. /**
  446. *******************************************************************************
  447. *
  448. * \brief Single Channel Capture Edge Detection usecase function
  449. *
  450. * \param chainsCfg [IN] Chains_Ctrl
  451. *
  452. *******************************************************************************
  453. */
  454. Void Chains_vipSingleCameraEdgeDetection(Chains_Ctrl *chainsCfg);
  455.  
  456. /**
  457. *******************************************************************************
  458. *
  459. * \brief Single Channel Capture Display usecase with Analytics algorithm
  460. *
  461. * \param chainsCfg [IN] Chains_Ctrl
  462. *
  463. *******************************************************************************
  464. */
  465. Void Chains_vipSingleCameraAnalyticsTda3xx(Chains_Ctrl *chainsCfg);
  466.  
  467. /**
  468. *******************************************************************************
  469. *
  470. * \brief Single Channel Capture Display usecase with Analytics algorithm
  471. *
  472. * \param chainsCfg [IN] Chains_Ctrl
  473. *
  474. *******************************************************************************
  475. */
  476. Void Chains_vipSingleCameraAnalytics2(Chains_Ctrl *chainsCfg);
  477.  
  478. /**
  479. *******************************************************************************
  480. *
  481. * \brief Single Channel Capture Display usecase with Analytics algorithm
  482. *
  483. * \param chainsCfg [IN] Chains_Ctrl
  484. *
  485. *******************************************************************************
  486. */
  487. Void Chains_vipSingleCameraAnalyticsTda2xx(Chains_Ctrl *chainsCfg);
  488.  
  489. /**
  490. *******************************************************************************
  491. *
  492. * \brief Optical Flow usecase function
  493. *
  494. * \param chainsCfg [IN] Chains_Ctrl
  495. *
  496. *******************************************************************************
  497. */
  498. Void Chains_vipSingleCameraDenseOpticalFlow(Chains_Ctrl *chainsCfg);
  499.  
  500. /**
  501. *******************************************************************************
  502. *
  503. * \brief Single camera Pedestrain + Traffic sign Detection
  504. *
  505. * \param chainsCfg [IN] Chains_Ctrl
  506. *
  507. *******************************************************************************
  508. */
  509. Void Chains_vipSingleCameraObjectDetect(Chains_Ctrl * chainsCfg);
  510.  
  511. /**
  512. *******************************************************************************
  513. *
  514. * \brief Single camera Pedestrain + Traffic sign Detection
  515. *
  516. * \param chainsCfg [IN] Chains_Ctrl
  517. *
  518. *******************************************************************************
  519. */
  520. Void Chains_vipSingleCameraObjectDetect2Tda3xx(Chains_Ctrl * chainsCfg);
  521.  
  522.  
  523. /**
  524. *******************************************************************************
  525. *
  526. * \brief Single camera Lane Detection
  527. *
  528. * \param chainsCfg [IN] Chains_Ctrl
  529. *
  530. *******************************************************************************
  531. */
  532. Void Chains_vipSingleCameraLaneDetect(Chains_Ctrl * chainsCfg);
  533.  
  534. /**
  535. *******************************************************************************
  536. *
  537. * \brief Single camera Sfm
  538. *
  539. * \param chainsCfg [IN] Chains_Ctrl
  540. *
  541. *******************************************************************************
  542. */
  543. Void Chains_vipSingleCameraSfm(Chains_Ctrl * chainsCfg);
  544.  
  545. /**
  546. *******************************************************************************
  547. *
  548. * \brief Single camera Clr
  549. *
  550. * \param chainsCfg [IN] Chains_Ctrl
  551. *
  552. *******************************************************************************
  553. */
  554. Void Chains_vipSingleCameraTlr(Chains_Ctrl * chainsCfg);
  555.  
  556. /**
  557. *******************************************************************************
  558. *
  559. * \brief Single camera Sparse Optical Flow
  560. *
  561. * \param chainsCfg [IN] Chains_Ctrl
  562. *
  563. *******************************************************************************
  564. */
  565. Void Chains_vipSingleCameraSparseOpticalFlow(Chains_Ctrl * chainsCfg);
  566.  
  567.  
  568. /**
  569. *******************************************************************************
  570. *
  571. * \brief Multi Channel Capture Display usecase function for TDA2xx
  572. *
  573. * \param chainsCfg [IN] Chains_Ctrl
  574. *
  575. *******************************************************************************
  576. */
  577. Void Chains_lvdsVipMultiCam_Display(Chains_Ctrl *chainsCfg);
  578.  
  579. /**
  580. *******************************************************************************
  581. *
  582. * \brief Multi Channel Capture Display usecase function for TDA2xx
  583. *
  584. * \param chainsCfg [IN] Chains_Ctrl
  585. *
  586. *******************************************************************************
  587. */
  588. Void Chains_lvdsVipMultiCam_Display_tda3xx(Chains_Ctrl *chainsCfg);
  589.  
  590.  
  591. /**
  592. *******************************************************************************
  593. *
  594. * \brief Dual Channel Capture Dual Display usecase function
  595. *
  596. * \param chainsCfg [IN] Chains_Ctrl
  597. *
  598. *******************************************************************************
  599. */
  600. Void chains_lvdsVipDualCam_DualDisplay(Chains_Ctrl *chainsCfg);
  601.  
  602. /**
  603. *******************************************************************************
  604. *
  605. * \brief Surround View of 4Ch LVDS capture on TDA2xx and TDA2Ex
  606. *
  607. * \param chainsCfg [IN] Chains_Ctrl
  608. *
  609. *******************************************************************************
  610. */
  611. Void Chains_lvdsVipSurroundViewStandalone(Chains_Ctrl *chainsCfg);
  612.  
  613. /**
  614. *******************************************************************************
  615. *
  616. * \brief Surround View of 4Ch LVDS capture on TDA3x
  617. *
  618. * \param chainsCfg [IN] Chains_Ctrl
  619. *
  620. *******************************************************************************
  621. */
  622. Void Chains_lvdsVipSurroundView(Chains_Ctrl *chainsCfg);
  623.  
  624. /**
  625. *******************************************************************************
  626. *
  627. * \brief Surround View of 4Ch LVDS capture + FrontCam Analytics + Ultrasound
  628. *
  629. * \param chainsCfg [IN] Chains_Ctrl
  630. *
  631. *******************************************************************************
  632. */
  633. Void Chains_lvdsVipSurroundViewAnalyticsUltrasound(Chains_Ctrl *chainsCfg);
  634.  
  635. /**
  636. *******************************************************************************
  637. *
  638. * \brief Avb Mcv Capture + Decode + Diaplay
  639. *
  640. *
  641. * \param chainsCfg [IN] Chains_Ctrl
  642. *
  643. *******************************************************************************
  644. */
  645. Void Chains_avbRx_Dec_Display(Chains_Ctrl *chainsCfg);
  646.  
  647. /**
  648. *******************************************************************************
  649. *
  650. * \brief AVB ED usecase function
  651. *
  652. * \param chainsCfg [IN] Chains_Ctrl
  653. *
  654. *******************************************************************************
  655. */
  656. Void Chains_avbRxSurroundView(Chains_Ctrl *chainsCfg);
  657.  
  658. /**
  659. *******************************************************************************
  660. *
  661. * \brief Avb Mcv Capture + Decode + Diaplay/Network Tx
  662. *
  663. *
  664. * \param chainsCfg [IN] Chains_Ctrl
  665. *
  666. *******************************************************************************
  667. */
  668. Void Chains_avbRx_Dec_NetworkTx_Display(Chains_Ctrl *chainsCfg);
  669.  
  670. /**
  671. *******************************************************************************
  672. *
  673. * \brief Single Channel capture DssWB CRC Display usecase function
  674. *
  675. * \param chainsCfg [IN] Chains_Ctrl
  676. *
  677. *******************************************************************************
  678. */
  679. Void Chains_vipSingleCam_DisplayWbCrc(Chains_Ctrl *chainsCfg);
  680.  
  681. /**
  682. *******************************************************************************
  683. *
  684. * \brief Single Channel capture Enc Dec VPE Display usecase function
  685. *
  686. * \param chainsCfg [IN] Chains_Ctrl
  687. *
  688. *******************************************************************************
  689. */
  690. Void Chains_vipSingleCam_EncDec_Display(Chains_Ctrl *chainsCfg);
  691.  
  692. /**
  693. *******************************************************************************
  694. *
  695. * \brief Single Channel Subframe Capture Display usecase function
  696. *
  697. * \param chainsCfg [IN] Chains_Ctrl
  698. *
  699. *******************************************************************************
  700. */
  701. Void Chains_vipSingleCameraSubFrameCopy(Chains_Ctrl *chainsCfg);
  702.  
  703. /**
  704. *******************************************************************************
  705. *
  706. * \brief ISS Based capture, m2m isp processing, m2m simcop processing
  707. * and display
  708. *
  709. * \param chainsCfg [IN] Chains_Ctrl
  710. *
  711. *******************************************************************************
  712. */
  713. Void Chains_issIspSimcop_Display(Chains_Ctrl *chainsCfg);
  714.  
  715. /**
  716. *******************************************************************************
  717. *
  718. * \brief TFDTP Capture + Diaplay
  719. *
  720. *
  721. * \param chainsCfg [IN] Chains_Ctrl
  722. *
  723. *******************************************************************************
  724. */
  725. Void Chains_tfdtpRx_Display(Chains_Ctrl *chainsCfg);
  726.  
  727. /**
  728. *******************************************************************************
  729. *
  730. * \brief ISS Based multi channel capture, m2m isp processing,
  731. * m2m simcop processing & display
  732. *
  733. * \param chainsCfg [IN] Chains_Ctrl
  734. *
  735. *******************************************************************************
  736. */
  737. Void Chains_issMultCaptIspSimcopSv_Display(Chains_Ctrl *chainsCfg);
  738.  
  739.  
  740. /**
  741. *******************************************************************************
  742. *
  743. * \brief ISS Based multi channel capture, m2m isp processing,
  744. * & display
  745. *
  746. * \param chainsCfg [IN] Chains_Ctrl
  747. *
  748. *******************************************************************************
  749. */
  750. Void chains_srvCalibration_Display(
  751. Chains_Ctrl *chainsCfg,
  752. Chains_CaptureIntf captureIntf);
  753.  
  754.  
  755. /**
  756. *******************************************************************************
  757. *
  758. * \brief ISS Based multi channel capture, m2m isp processing,
  759. * LDC based DeWarp, Synthesis & 3D + 2D surround view display
  760. *
  761. * \param chainsCfg [IN] Chains_Ctrl
  762. *
  763. *******************************************************************************
  764. */
  765. Void Chains_issMultCaptIsp2d3d3dSv_Display(Chains_Ctrl *chainsCfg);
  766.  
  767. #if defined(UC_iss_mult_capture_isp_dewarp_3dsv_tda3xx) \
  768. || defined(UC_iss_mult_capture_isp_simcop_sv_tda3xx) \
  769. || defined(UC_fast_boot_iss_capture_isp_simcop_pd_display)
  770. /**
  771. *******************************************************************************
  772. *
  773. * \brief ISS Based multi channel capture, m2m isp processing,
  774. * LDC based DeWarp, Synthesis & 3D surround view display
  775. *
  776. * \param chainsCfg [IN] Chains_Ctrl
  777. *
  778. *******************************************************************************
  779. */
  780. Void Chains_issMultCaptIspDewarp3dSv_Display(
  781. Chains_Ctrl *chainsCfg,
  782. AlgorithmLink_SrvOutputModes ucSrvOutMode);
  783. #endif
  784.  
  785. /**
  786. *******************************************************************************
  787. *
  788. * \brief ISS Based multi channel capture, m2m isp processing,
  789. * LDC based DeWarp, Synthesis & RearView + 3D surround view display
  790. *
  791. * \param chainsCfg [IN] Chains_Ctrl
  792. *
  793. *******************************************************************************
  794. */
  795. Void Chains_issMultCaptIspDeWarpRearView3dSv_Display(Chains_Ctrl *chainsCfg);
  796.  
  797. /**
  798. *******************************************************************************
  799. *
  800. * \brief ISS Based capture, m2m isp processing and display usecase
  801. * It captures monochroma data from the sensor, processes it in
  802. * ISP and displays the output of the ISP.
  803. *
  804. * \param chainsCfg [IN] Chains_Ctrl
  805. *
  806. *******************************************************************************
  807. */
  808. Void Chains_monochrome_issIsp_Display(Chains_Ctrl *chainsCfg);
  809.  
  810. /**
  811. *******************************************************************************
  812. *
  813. * \brief Fast boot usecase showing ISS Based capture, m2m isp processing,
  814. * Pedestrian Detect algorithm integration and display
  815. *
  816. * \param chainsCfg [IN] Chains_Ctrl
  817. *
  818. *******************************************************************************
  819. */
  820. Void Chains_fastBootIssIspSimcop_pd_Display(Chains_Ctrl *chainsCfg);
  821.  
  822. /**
  823. *******************************************************************************
  824. *
  825. * \brief Stereo Camera Soft ISP and Display
  826. *
  827. * \param chainsCfg [IN] Chains_Ctrl
  828. *
  829. *******************************************************************************
  830. */
  831. Void Chains_vipStereoOnlyDisplay(Chains_Ctrl *chainsCfg);
  832.  
  833. /**
  834. *******************************************************************************
  835. *
  836. * \brief Stereo Calibration
  837. *
  838. * \param chainsCfg [IN] Chains_Ctrl
  839. *
  840. *******************************************************************************
  841. */
  842. Void chains_vipStereoCalibration(Chains_Ctrl *chainsCfg);
  843.  
  844. /**
  845. *******************************************************************************
  846. *
  847. * \brief Pre-recorded data input to Stereo
  848. *
  849. * \param chainsCfg [IN] Chains_Ctrl
  850. *
  851. *******************************************************************************
  852. */
  853. Void chains_networkStereoDisplay(Chains_Ctrl *chainsCfg);
  854.  
  855. /**
  856. *******************************************************************************
  857. *
  858. * \brief Capture Data over network and display
  859. *
  860. * \param chainsCfg [IN] Chains_Ctrl
  861. *
  862. *******************************************************************************
  863. */
  864. Void Chains_networkRxDisplay(Chains_Ctrl *chainsCfg);
  865.  
  866. /**
  867. *******************************************************************************
  868. *
  869. * \brief Capture Data over network, decode and display
  870. *
  871. * \param chainsCfg [IN] Chains_Ctrl
  872. *
  873. *******************************************************************************
  874. */
  875. Void Chains_networkRxDecDisplay(Chains_Ctrl *chainsCfg);
  876.  
  877. /**
  878. *******************************************************************************
  879. *
  880. * \brief Capture Data from camera and stream over network
  881. *
  882. * \param chainsCfg [IN] Chains_Ctrl
  883. *
  884. *******************************************************************************
  885. */
  886. Void Chains_networkTxCapture(Chains_Ctrl *chainsCfg);
  887.  
  888. /**
  889. *******************************************************************************
  890. *
  891. * \brief Capture Data from camera, encode and stream over network
  892. *
  893. * \param chainsCfg [IN] Chains_Ctrl
  894. *
  895. *******************************************************************************
  896. */
  897. Void Chains_networkTxEncCapture(Chains_Ctrl *chainsCfg);
  898.  
  899. /**
  900. *******************************************************************************
  901. *
  902. * \brief Networking use-cases
  903. *
  904. * \param chainsCfg [IN] Chains_Ctrl
  905. *
  906. *******************************************************************************
  907. */
  908. Void Chains_networkRxTx(Chains_Ctrl *chainsCfg);
  909.  
  910. /**
  911. *******************************************************************************
  912. *
  913. * \brief TIDA0455 + OV490 based capture + SV
  914. *
  915. * \param chainsCfg [IN] Chains_Ctrl
  916. *
  917. *******************************************************************************
  918. */
  919. Void Chains_ov490VipSurroundViewStandalone(Chains_Ctrl *chainsCfg);
  920.  
  921. /**
  922. *******************************************************************************
  923. *
  924. * \brief Capture Data over network, PD/TSR/LD/SOF with Stereo
  925. * from live camera
  926. *
  927. * \param chainsCfg [IN] Chains_Ctrl
  928. *
  929. *******************************************************************************
  930. */
  931. Void Chains_vipStereoCameraAnalytics2(Chains_Ctrl *chainsCfg);
  932.  
  933. /**
  934. *******************************************************************************
  935. *
  936. * \brief Capture Data over network and do front cam analytics
  937. *
  938. * \param chainsCfg [IN] Chains_Ctrl
  939. *
  940. *******************************************************************************
  941. */
  942. Void Chains_networkRxCameraAnalyticsTda2xx(Chains_Ctrl *chainsCfg);
  943.  
  944. /**
  945. *******************************************************************************
  946. *
  947. * \brief Capture Data over network and do front cam analytics
  948. *
  949. * \param chainsCfg [IN] Chains_Ctrl
  950. *
  951. *******************************************************************************
  952. */
  953. Void Chains_fileRxCameraAnalyticsTda2xx(Chains_Ctrl *chainsCfg);
  954.  
  955. /**
  956. *******************************************************************************
  957. *
  958. * \brief Capture Data over network or VIP and do front cam analytics
  959. *
  960. * \param chainsCfg [IN] Chains_Ctrl
  961. *
  962. *******************************************************************************
  963. */
  964. Void Chains_singleCameraAnalyticsTda2xx(Chains_Ctrl *chainsCfg);
  965.  
  966. /**
  967. *******************************************************************************
  968. *
  969. * \brief Vehicle detect in night mode
  970. *
  971. * \param chainsCfg [IN] Chains_Ctrl
  972. *
  973. *******************************************************************************
  974. */
  975. Void Chains_vipSingleCameraOdNight(Chains_Ctrl *chainsCfg);
  976.  
  977. /**
  978. *******************************************************************************
  979. *
  980. * \brief Capture Data over Radar
  981. *
  982. * \param chainsCfg [IN] Chains_Ctrl
  983. *
  984. *******************************************************************************
  985. */
  986. Void Chains_radarDetectionOnly(Chains_Ctrl *chainsCfg);
  987.  
  988. /**
  989. *******************************************************************************
  990. *
  991. * \brief Capture and Process Radar Data
  992. *
  993. * \param chainsCfg [IN] Chains_Ctrl
  994. *
  995. *******************************************************************************
  996. */
  997. Void Chains_radarDataProcess(Chains_Ctrl *chainsCfg);
  998.  
  999. /**
  1000. *******************************************************************************
  1001. *
  1002. * \brief Capture, Process Radar Data, and Overlay with camera image
  1003. *
  1004. * \param chainsCfg [IN] Chains_Ctrl
  1005. *
  1006. *******************************************************************************
  1007. */
  1008. Void chains_radarCameraOverlay(Chains_Ctrl *chainsCfg);
  1009.  
  1010. /**
  1011. *******************************************************************************
  1012. *
  1013. * \brief Capture & Display, captures from SAT0088, OV10635 via UB964, CSI2
  1014. * interface of TDA2Ex and Displays the same.
  1015. *
  1016. * \param chainsCfg [IN] Chains_Ctrl
  1017. *
  1018. *******************************************************************************
  1019. */
  1020. Void Chains_csi2CalMultiCam(Chains_Ctrl *chainsCfg);
  1021.  
  1022. /**
  1023. *******************************************************************************
  1024. *
  1025. * \brief DSP based surround view, captures from SAT0088, OV10635 via UB964,
  1026. * CSI2 interface of TDA2Ex, performs photometric alignment, uses
  1027. * DSP based SRV algorithim to construct SRV.
  1028. *
  1029. * \param chainsCfg [IN] Chains_Ctrl
  1030. *
  1031. *******************************************************************************
  1032. */
  1033. Void Chains_csi2CalSVStandalone(Chains_Ctrl *chainsCfg);
  1034.  
  1035. /**
  1036. *******************************************************************************
  1037. *
  1038. * \brief VIP Capture and send frame id as metadata an dcapture it through
  1039. * DSS WB
  1040. *
  1041. * \param chainsCfg [IN] Chains_Ctrl
  1042. *
  1043. *******************************************************************************
  1044. */
  1045. Void Chains_vipSingleCam_Display_Metadata(Chains_Ctrl *chainsCfg);
  1046.  
  1047. /**
  1048. *******************************************************************************
  1049. *
  1050. * \brief Run time Menu selection
  1051. *
  1052. * This functions displays the run time options available
  1053. * And receives user input and calls corrosponding functions run time
  1054. * Instrumentation logs are printing routine is called in same function
  1055. *
  1056. *
  1057. * \return char input by uart on success
  1058. *******************************************************************************
  1059. */
  1060. char Chains_menuRunTime();
  1061.  
  1062. /**
  1063. *******************************************************************************
  1064. *
  1065. * \brief Load Calculation enable/disable
  1066. *
  1067. * This functions enables load profiling. A control command
  1068. * SYSTEM_COMMON_CMD_CPU_LOAD_CALC_START is passed to chianed links.
  1069. * If parameter Enable is set true Load profiling is enabled.
  1070. * If printStatus is set true a System CMD to Print CPU load,
  1071. * Task Laod and Heap status information is sent
  1072. * While creating enable = TRUE , printStatus & printTskLoad = FALSE
  1073. * While deleting enable = FALSE , printStatus & printTskLoad = TRUE
  1074. *
  1075. * \param enable [IN] is set true Load profiling
  1076. *
  1077. * \param printStatus [IN] true a System CMD
  1078. *
  1079. * \param printTskLoad [IN] true a Print CPU load
  1080. *
  1081. * \return SYSTEM_LINK_STATUS_SOK on success
  1082. *
  1083. *******************************************************************************
  1084. */
  1085. Int32 Chains_prfLoadCalcEnable(Bool enable,
  1086. Bool printStatus,
  1087. Bool printTskLoad);
  1088.  
  1089. /**
  1090. *******************************************************************************
  1091. *
  1092. * \brief Print Memory Heap Statistics
  1093. *
  1094. * This function send a system control message
  1095. * to all cores.
  1096. *
  1097. *
  1098. * \return SYSTEM_LINK_STATUS_SOK on success
  1099. *******************************************************************************
  1100. */
  1101. Int32 Chains_memPrintHeapStatus();
  1102.  
  1103. /**
  1104. *******************************************************************************
  1105. *
  1106. * \brief Reset Memory DDR Statistics
  1107. *
  1108. * This function send a system control message
  1109. * SYSTEM_COMMON_CMD_RESET_STAT_COLL to all cores.
  1110. *
  1111. *
  1112. * \return SYSTEM_LINK_STATUS_SOK on success
  1113. *******************************************************************************
  1114. */
  1115. Int32 Chains_statCollectorReset();
  1116.  
  1117.  
  1118. /**
  1119. *******************************************************************************
  1120. *
  1121. * \brief Print Memory DDR Statistics
  1122. *
  1123. * This function send a system control message
  1124. * SYSTEM_COMMON_CMD_PRINT_STAT_COLL to all cores.
  1125. *
  1126. *
  1127. * \return SYSTEM_LINK_STATUS_SOK on success
  1128. *******************************************************************************
  1129. */
  1130. Int32 Chains_statCollectorPrint();
  1131.  
  1132. /**
  1133. *******************************************************************************
  1134. *
  1135. * \brief Print Load Calculation.
  1136. *
  1137. * \return SYSTEM_LINK_STATUS_SOK on success
  1138. *******************************************************************************
  1139. */
  1140. Int32 Chains_prfCpuLoadPrint();
  1141.  
  1142. /**
  1143. *******************************************************************************
  1144. *
  1145. * \brief Get IP Addr for the system
  1146. *
  1147. * \param ipAddr [OUT] IP address as a string
  1148. *
  1149. * \return SYSTEM_LINK_STATUS_SOK on success
  1150. *******************************************************************************
  1151. */
  1152. Int32 Chains_getIpAddr(char *ipAddr);
  1153.  
  1154. /**
  1155. *******************************************************************************
  1156. *
  1157. * \brief Read a charater from UART or CCS console
  1158. *
  1159. * \return character that is read
  1160. *
  1161. *******************************************************************************
  1162. */
  1163. char Chains_readChar();
  1164.  
  1165.  
  1166. /**
  1167. *******************************************************************************
  1168. *
  1169. * \brief Run DMA standalone test
  1170. *
  1171. *
  1172. * \return SYSTEM_LINK_STATUS_SOK on success
  1173. *******************************************************************************
  1174. */
  1175. Int32 Chains_runDmaTest();
  1176.  
  1177. /**
  1178. *******************************************************************************
  1179. *
  1180. * \brief Radar Resolution Mode Menu selection
  1181. *
  1182. * This functions displays the radar resolution mode options available
  1183. *
  1184. * \return char input by uart on success
  1185. *******************************************************************************
  1186. */
  1187. char Chains_menuRadarResolutionMode();
  1188.  
  1189. /**
  1190. *******************************************************************************
  1191. *
  1192. * \brief Two Channel Capture Display usecase function for SC TDA2xx
  1193. *
  1194. * \param chainsCfg [IN] Chains_Ctrl
  1195. *
  1196. *******************************************************************************
  1197. */
  1198. Void Chains_twoCam_Display(Chains_Ctrl *chainsCfg);
  1199.  
  1200. /**
  1201. *******************************************************************************
  1202. *
  1203. * \brief Four Channel Capture Display usecase function for SC TDA2xx
  1204. *
  1205. * \param chainsCfg [IN] Chains_Ctrl
  1206. *
  1207. *******************************************************************************
  1208. */
  1209. Void Chains_fourCam_Display(Chains_Ctrl *chainsCfg);
  1210.  
  1211. /**
  1212. *******************************************************************************
  1213. *
  1214. * \brief Six Channel Capture Display usecase function for SC TDA2xx
  1215. *
  1216. * \param chainsCfg [IN] Chains_Ctrl
  1217. *
  1218. *******************************************************************************
  1219. */
  1220. Void Chains_sixCam_Display(Chains_Ctrl *chainsCfg);
  1221.  
  1222. /**
  1223. *******************************************************************************
  1224. *
  1225. * \brief Single Channel Capture Display usecase function for FFN TDA2xx
  1226. *
  1227. * \param chainsCfg [IN] Chains_Ctrl
  1228. *
  1229. *******************************************************************************
  1230. */
  1231. Void Chains_vipSingleCamFFN_Display(Chains_Ctrl *chainsCfg);
  1232.  
  1233. /**
  1234. *******************************************************************************
  1235. *
  1236. * \brief Multi Channel Capture Display usecase function for FFN TDA2xx
  1237. *
  1238. * \param chainsCfg [IN] Chains_Ctrl
  1239. *
  1240. *******************************************************************************
  1241. */
  1242. Void Chains_ffn_multiCamView_Display(Chains_Ctrl *chainsCfg);
  1243.  
  1244. #ifdef TDA2EX_BUILD
  1245. /**
  1246. *******************************************************************************
  1247. *
  1248. * \brief Ethernet PHY selection for TDA2Ex use-cases
  1249. *
  1250. * This functions selects Ethernet PHY and Port for TDA2ex EVM.
  1251. *
  1252. * \return None
  1253. *******************************************************************************
  1254. */
  1255. void ChainsCommon_tda2exSelectPHY(Chains_CaptureSrc captureSrc);
  1256. #endif
  1257.  
  1258. /**
  1259. ******************************************************************************
  1260. *
  1261. * \brief Set Network Rx mode for Null Source link
  1262. *
  1263. * \param pPrm [IN] NullSourceLink Create time Params
  1264. *
  1265. * \return None
  1266. ******************************************************************************
  1267. */
  1268. void ChainsCommon_networkRxSetMode(NullSrcLink_CreateParams *pPrm);
  1269.  
  1270. /**
  1271. ******************************************************************************
  1272. *
  1273. * \brief Set Network Tx mode for Null link
  1274. *
  1275. * \param pPrm [IN] NullLink Create time Params
  1276. *
  1277. * \return None
  1278. ******************************************************************************
  1279. */
  1280. void ChainsCommon_networkTxSetMode(NullLink_CreateParams *pPrm);
  1281.  
  1282. /**
  1283. *******************************************************************************
  1284. *
  1285. * \brief Tutorial Single Channel Capture Display usecase function for FFN TDA2xx
  1286. *
  1287. * \param chainsCfg [IN] Chains_Ctrl
  1288. *
  1289. *******************************************************************************
  1290. */
  1291. Void Chains_tutorialSingleCam_Display(Chains_Ctrl *chainsCfg);
  1292.  
  1293. /**
  1294. *******************************************************************************
  1295. *
  1296. * \brief Set default values to chains control parameters
  1297. *
  1298. *******************************************************************************
  1299. */
  1300. static inline Void Chains_Ctrl_Init(Chains_Ctrl *pPrm)
  1301. {
  1302. memset(pPrm, 0, sizeof(Chains_Ctrl));
  1303.  
  1304. pPrm->algProcId = SYSTEM_PROC_DSP1;
  1305. pPrm->displayType = CHAINS_DISPLAY_TYPE_HDMI_1080P;
  1306. #ifndef RADAR_INCLUDE
  1307. pPrm->numLvdsCh = VIDEO_SENSOR_NUM_LVDS_CAMERAS;
  1308. pPrm->captureSrc = CHAINS_CAPTURE_SRC_OV10635;
  1309. pPrm->numPyramids = 0;
  1310. pPrm->issLdcEnable = FALSE;
  1311. pPrm->issVtnfEnable = FALSE;
  1312. pPrm->ispOpMode = ISSM2MISP_LINK_OPMODE_12BIT_LINEAR;
  1313. pPrm->svOutputMode = ALGORITHM_LINK_SRV_OUTPUT_2D;
  1314. pPrm->enableCarOverlayInAlg = 0;
  1315. #endif
  1316. }
  1317.  
  1318.  
  1319. #ifdef __cplusplus
  1320. }
  1321. #endif /* __cplusplus */
  1322. #endif
  1323.  
  1324. /* @} */
  1325.  
  1326. /**
  1327. *******************************************************************************
  1328. *
  1329. * \defgroup EXAMPLES_API Example code implementation
  1330. *
  1331. *******************************************************************************
  1332. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement