sdi_rgb_display.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469
  1. #pragma once
  2. #include "../aja-routing.hpp"
  3. static inline const std::map<SDIWireFormat, RoutingConfig>
  4. kSDIRGBDisplayConfigs = {
  5. {
  6. SDIWireFormat::SD_ST352,
  7. {
  8. NTV2_MODE_DISPLAY,
  9. 1, // num wires
  10. 1, // num framestores
  11. false, // enable 3G output?
  12. false, // enable 6G output?
  13. false, // enable 12G output?
  14. false, // convert 3Gb -> 3Ga input?
  15. false, // convert 3Ga -> 3Gb output?
  16. false, // convert RGB 3Ga output?
  17. false, // enable 3Gb output?
  18. false, // enable 4K Square Division?
  19. false, // enable 8K Square Division?
  20. false, // enable two-sample-interleave?
  21. "", // RGB Output Route
  22. },
  23. },
  24. {SDIWireFormat::HD_720p_ST292,
  25. {
  26. NTV2_MODE_DISPLAY,
  27. 1,
  28. 1,
  29. false,
  30. false,
  31. false,
  32. false,
  33. false,
  34. false,
  35. false,
  36. false,
  37. false,
  38. false,
  39. "fb[{ch1}][2]->dlo[{ch1}][0];"
  40. "dlo[{ch1}][0]->sdi[{ch1}[0];"
  41. "dlo[{ch1}][1]->sdi[{ch1}][1];",
  42. }},
  43. {SDIWireFormat::HD_1080_ST292,
  44. {
  45. NTV2_MODE_DISPLAY,
  46. 1,
  47. 1,
  48. false,
  49. false,
  50. false,
  51. false,
  52. false,
  53. false,
  54. false,
  55. false,
  56. false,
  57. false,
  58. "fb[{ch1}][2]->dlo[{ch1}][0];"
  59. "dlo[{ch1}][0]->sdi[{ch1}[0];"
  60. "dlo[{ch1}][1]->sdi[{ch1}][1];",
  61. }},
  62. {SDIWireFormat::HD_1080_ST372_Dual,
  63. {
  64. NTV2_MODE_DISPLAY,
  65. 2,
  66. 1,
  67. false,
  68. false,
  69. false,
  70. false,
  71. false,
  72. false,
  73. false,
  74. false,
  75. false,
  76. false,
  77. // Playout
  78. "fb[{ch1}][2]->dlo[{ch1}][0];"
  79. "dlo[{ch1}][0]->sdi[{ch1}[0];"
  80. "dlo[{ch1}][1]->sdi[{ch2}][0];",
  81. }},
  82. {SDIWireFormat::HD_720p_ST425_3Ga,
  83. {
  84. NTV2_MODE_DISPLAY,
  85. 1,
  86. 1,
  87. true,
  88. false,
  89. false,
  90. false,
  91. false,
  92. true,
  93. false,
  94. false,
  95. false,
  96. false,
  97. // Output
  98. "fb[{ch1}][2]->dlo[{ch1}][0];"
  99. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  100. "dlo[{ch1}][1]->sdi[{ch1}][1];",
  101. }},
  102. {SDIWireFormat::HD_1080p_ST425_3Ga,
  103. {
  104. NTV2_MODE_DISPLAY,
  105. 1,
  106. 1,
  107. true,
  108. false,
  109. false,
  110. false,
  111. false,
  112. true,
  113. false,
  114. false,
  115. false,
  116. false,
  117. // Output
  118. "fb[{ch1}][2]->dlo[{ch1}][0];"
  119. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  120. "dlo[{ch1}][1]->sdi[{ch1}][1];",
  121. }},
  122. {SDIWireFormat::HD_1080p_ST425_3Gb_DL,
  123. {
  124. NTV2_MODE_DISPLAY,
  125. 1,
  126. 1,
  127. true,
  128. false,
  129. false,
  130. false,
  131. false,
  132. false,
  133. false,
  134. false,
  135. false,
  136. false,
  137. // Output
  138. "fb[{ch1}][2]->dlo[{ch1}][0];"
  139. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  140. "dlo[{ch1}][1]->sdi[{ch1}][1];",
  141. }},
  142. {SDIWireFormat::HD_720p_ST425_3Gb,
  143. {
  144. NTV2_MODE_DISPLAY,
  145. 1,
  146. 2,
  147. true,
  148. false,
  149. false,
  150. false,
  151. false,
  152. false,
  153. false,
  154. false,
  155. false,
  156. false,
  157. // Output
  158. "fb[{ch1}][2]->dlo[{ch1}][0];"
  159. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  160. "dlo[{ch1}][1]->sdi[{ch1}][1];",
  161. }},
  162. {SDIWireFormat::HD_1080p_ST425_3Gb,
  163. {
  164. NTV2_MODE_DISPLAY,
  165. 1,
  166. 2,
  167. true,
  168. false,
  169. false,
  170. false,
  171. false,
  172. false,
  173. false,
  174. false,
  175. false,
  176. false,
  177. // Output
  178. "fb[{ch1}][2]->dlo[{ch1}][0];"
  179. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  180. "dlo[{ch1}][1]->sdi[{ch1}][1];",
  181. }},
  182. {SDIWireFormat::HD_1080p_ST425_Dual_3Ga,
  183. {
  184. NTV2_MODE_DISPLAY,
  185. 2,
  186. 2,
  187. true,
  188. false,
  189. false,
  190. false,
  191. false,
  192. false,
  193. false,
  194. false,
  195. false,
  196. false,
  197. "",
  198. }},
  199. {SDIWireFormat::HD_1080p_ST425_Dual_3Gb,
  200. {
  201. NTV2_MODE_DISPLAY,
  202. 2,
  203. 2,
  204. true,
  205. false,
  206. false,
  207. false,
  208. false,
  209. false,
  210. false,
  211. false,
  212. false,
  213. false,
  214. "",
  215. }},
  216. {SDIWireFormat::UHD4K_ST292_Quad_1_5_Squares,
  217. {
  218. NTV2_MODE_DISPLAY,
  219. 4,
  220. 4,
  221. false,
  222. false,
  223. false,
  224. false,
  225. false,
  226. false,
  227. false,
  228. true,
  229. false,
  230. false,
  231. // Playout
  232. "fb[{ch1}][0]->sdi[{ch1}][0];"
  233. "fb[{ch2}][0]->sdi[{ch2}][0];"
  234. "fb[{ch3}][0]->sdi[{ch3}][0];"
  235. "fb[{ch4}][0]->sdi[{ch4}][0];",
  236. }},
  237. {SDIWireFormat::UHD4K_ST425_Quad_3Ga_Squares,
  238. {
  239. NTV2_MODE_DISPLAY,
  240. 4,
  241. 4,
  242. true,
  243. false,
  244. false,
  245. false,
  246. false,
  247. false,
  248. false,
  249. true,
  250. false,
  251. false,
  252. // Playout
  253. "fb[{ch1}][0]->sdi[{ch1}][0];"
  254. "fb[{ch2}][0]->sdi[{ch2}][0];"
  255. "fb[{ch3}][0]->sdi[{ch3}][0];"
  256. "fb[{ch4}][0]->sdi[{ch4}][0];",
  257. }},
  258. {SDIWireFormat::UHD4K_ST425_Quad_3Gb_Squares,
  259. {
  260. NTV2_MODE_DISPLAY,
  261. 4,
  262. 4,
  263. true,
  264. false,
  265. false,
  266. false,
  267. false,
  268. false,
  269. false,
  270. true,
  271. false,
  272. false,
  273. // Framestores 1-4 -> Dual-Link 1-4 -> SDI 1-4
  274. "fb[{ch1}][2]->dlo[{ch1}][0];"
  275. "fb[{ch2}][2]->dlo[{ch2}][0];"
  276. "fb[{ch3}][2]->dlo[{ch3}][0];"
  277. "fb[{ch4}][2]->dlo[{ch4}][0];"
  278. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  279. "dlo[{ch1}][1]->sdi[{ch1}][1];"
  280. "dlo[{ch2}][0]->sdi[{ch2}][0];"
  281. "dlo[{ch2}][1]->sdi[{ch2}][1];"
  282. "dlo[{ch3}][0]->sdi[{ch3}][0];"
  283. "dlo[{ch3}][1]->sdi[{ch3}][1];"
  284. "dlo[{ch4}][0]->sdi[{ch4}][0];"
  285. "dlo[{ch4}][1]->sdi[{ch4}][1];",
  286. }},
  287. {SDIWireFormat::UHD4K_ST425_Dual_3Gb_2SI,
  288. {
  289. NTV2_MODE_DISPLAY,
  290. 2,
  291. 2,
  292. true,
  293. false,
  294. false,
  295. false,
  296. false,
  297. false,
  298. false,
  299. false,
  300. false,
  301. true,
  302. "",
  303. }},
  304. {SDIWireFormat::UHD4K_ST425_Quad_3Ga_2SI,
  305. {
  306. NTV2_MODE_DISPLAY,
  307. 4,
  308. 4,
  309. true,
  310. false,
  311. false,
  312. false,
  313. false,
  314. false,
  315. false,
  316. false,
  317. false,
  318. true,
  319. // Framestores 1-2 -> TSI Mux 1-2
  320. // -> Dual-Link 1-4 -> SDI 1-4
  321. "fb[{ch1}][2]->tsi[{ch1}][0];"
  322. "fb[{ch1}][3]->tsi[{ch1}][1];"
  323. "fb[{ch2}][2]->tsi[{ch2}][0];"
  324. "fb[{ch2}][3]->tsi[{ch2}][1];"
  325. "tsi[{ch1}][2]->dlo[{ch1}][0];"
  326. "tsi[{ch1}][3]->dlo[{ch2}][0];"
  327. "tsi[{ch2}][2]->dlo[{ch3}][0];"
  328. "tsi[{ch2}][3]->dlo[{ch4}][0];"
  329. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  330. "dlo[{ch1}][1]->sdi[{ch1}][1];"
  331. "dlo[{ch2}][0]->sdi[{ch2}][0];"
  332. "dlo[{ch2}][1]->sdi[{ch2}][1];"
  333. "dlo[{ch3}][0]->sdi[{ch3}][0];"
  334. "dlo[{ch3}][1]->sdi[{ch3}][1];"
  335. "dlo[{ch4}][0]->sdi[{ch4}][0];"
  336. "dlo[{ch4}][1]->sdi[{ch4}][1];",
  337. }},
  338. {SDIWireFormat::UHD4K_ST425_Quad_3Gb_2SI,
  339. {
  340. NTV2_MODE_DISPLAY,
  341. 4,
  342. 4,
  343. true,
  344. false,
  345. false,
  346. false,
  347. false,
  348. false,
  349. false,
  350. false,
  351. false,
  352. true,
  353. // Framestores 1-2 -> TSI Mux 1-2
  354. // -> Dual-Link 1-4 -> SDI 1-4
  355. "fb[{ch1}][2]->tsi[{ch1}][0];"
  356. "fb[{ch1}][3]->tsi[{ch1}][1];"
  357. "fb[{ch2}][2]->tsi[{ch2}][0];"
  358. "fb[{ch2}][3]->tsi[{ch2}][1];"
  359. "tsi[{ch1}][2]->dlo[{ch1}][0];"
  360. "tsi[{ch1}][3]->dlo[{ch2}][0];"
  361. "tsi[{ch2}][2]->dlo[{ch3}][0];"
  362. "tsi[{ch2}][3]->dlo[{ch4}][0];"
  363. "dlo[{ch1}][0]->sdi[{ch1}][0];"
  364. "dlo[{ch1}][1]->sdi[{ch1}][1];"
  365. "dlo[{ch2}][0]->sdi[{ch2}][0];"
  366. "dlo[{ch2}][1]->sdi[{ch2}][1];"
  367. "dlo[{ch3}][0]->sdi[{ch3}][0];"
  368. "dlo[{ch3}][1]->sdi[{ch3}][1];"
  369. "dlo[{ch4}][0]->sdi[{ch4}][0];"
  370. "dlo[{ch4}][1]->sdi[{ch4}][1];",
  371. }},
  372. {SDIWireFormat::UHD4K_ST2018_6G_Squares_2SI,
  373. {
  374. NTV2_MODE_DISPLAY,
  375. 2,
  376. 2,
  377. false,
  378. true,
  379. false,
  380. false,
  381. false,
  382. false,
  383. false,
  384. false,
  385. false,
  386. true,
  387. "",
  388. }},
  389. {SDIWireFormat::UHD4K_ST2018_12G_Squares_2SI,
  390. {
  391. NTV2_MODE_DISPLAY,
  392. 1,
  393. 1,
  394. false,
  395. false,
  396. true,
  397. false,
  398. false,
  399. true,
  400. false,
  401. false,
  402. false,
  403. true,
  404. "",
  405. }},
  406. {SDIWireFormat::UHD28K_ST2082_Dual_12G,
  407. {
  408. NTV2_MODE_DISPLAY,
  409. 2,
  410. 2,
  411. false,
  412. false,
  413. true,
  414. false,
  415. false,
  416. false,
  417. false,
  418. false,
  419. false,
  420. true,
  421. "",
  422. }},
  423. {SDIWireFormat::UHD28K_ST2082_RGB_Dual_12G,
  424. {
  425. NTV2_MODE_DISPLAY,
  426. 2,
  427. 2,
  428. false,
  429. false,
  430. true,
  431. false,
  432. false,
  433. false,
  434. false,
  435. false,
  436. false,
  437. true,
  438. "",
  439. }},
  440. {SDIWireFormat::UHD28K_ST2082_Quad_12G,
  441. {
  442. NTV2_MODE_DISPLAY,
  443. 4,
  444. 4,
  445. false,
  446. false,
  447. true,
  448. false,
  449. false,
  450. false,
  451. false,
  452. false,
  453. false,
  454. true,
  455. "",
  456. }},
  457. };