Kconfig 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. menu "AES67 RAVENNA Component"
  2. config AES67_MAX_SOURCES
  3. int "Maximum number of source (TX) streams"
  4. default 4
  5. range 1 32
  6. help
  7. Maximum number of simultaneous AES67 source streams.
  8. config AES67_MAX_SINKS
  9. int "Maximum number of sink (RX) streams"
  10. default 4
  11. range 1 32
  12. help
  13. Maximum number of simultaneous AES67 sink streams.
  14. config AES67_MAX_CHANNELS_PER_STREAM
  15. int "Maximum channels per stream"
  16. default 8
  17. range 1 64
  18. help
  19. Maximum number of audio channels in a single RTP stream.
  20. config AES67_DEFAULT_SAMPLE_RATE
  21. int "Default sample rate (Hz)"
  22. default 48000
  23. help
  24. Default audio sample rate. Common values: 44100, 48000, 96000.
  25. config AES67_DEFAULT_PACKET_TIME_US
  26. int "Default packet time (microseconds)"
  27. default 1000
  28. range 125 4000
  29. help
  30. Default packet time in microseconds. AES67 mandates support
  31. for 1ms (1000us). Common values: 125, 250, 333, 1000.
  32. config AES67_DEFAULT_WORD_LENGTH
  33. int "Default word length (bytes per sample)"
  34. default 3
  35. range 2 4
  36. help
  37. Bytes per audio sample. 2=L16, 3=L24, 4=L32.
  38. config AES67_DEFAULT_CHANNELS
  39. int "Default channel count"
  40. default 2
  41. range 1 8
  42. help
  43. Default number of audio channels per stream (1=mono, 2=stereo, up to 8).
  44. config AES67_RTP_PORT
  45. int "Default RTP port"
  46. default 5004
  47. help
  48. Default UDP port for RTP audio streams.
  49. config AES67_RTP_MCAST_BASE
  50. string "RTP multicast base address"
  51. default "239.69.0.1"
  52. help
  53. Base multicast IP address for RTP streams. Each stream
  54. gets the next sequential address from this base.
  55. config AES67_SAP_ENABLED
  56. bool "Enable SAP (Session Announcement Protocol)"
  57. default y
  58. help
  59. Enable periodic SAP announcements for source discovery.
  60. config AES67_MDNS_ENABLED
  61. bool "Enable mDNS service advertisement"
  62. default y
  63. help
  64. Advertise AES67 streams via mDNS/DNS-SD using the
  65. _ravenna._udp service type.
  66. config AES67_PTP_DOMAIN
  67. int "PTP domain"
  68. default 0
  69. range 0 127
  70. help
  71. IEEE 1588 PTP domain number.
  72. config AES67_PTP_PREFER_GRANDMASTER
  73. bool "Prefer becoming PTP grandmaster"
  74. default y
  75. help
  76. When no other grandmaster is found on the network, this device
  77. will become PTP grandmaster. If another grandmaster with better
  78. clock quality appears, this device will fall back to slave mode
  79. according to the Best Master Clock algorithm.
  80. config AES67_JITTER_BUFFER_MS
  81. int "Jitter buffer size (ms)"
  82. default 4
  83. range 1 50
  84. help
  85. Sink stream jitter buffer depth in milliseconds.
  86. Larger values increase latency but tolerate more network jitter.
  87. config AES67_USE_PSRAM
  88. bool "Use PSRAM for audio buffers"
  89. default y
  90. depends on SPIRAM
  91. help
  92. Allocate audio ring buffers and jitter buffers in PSRAM.
  93. DMA buffers for I2S remain in internal SRAM.
  94. config AES67_AUDIO_RING_BUFFER_MS
  95. int "Audio ring buffer size (ms)"
  96. default 20
  97. range 5 100
  98. help
  99. Size of the audio ring buffer in milliseconds. This buffer
  100. sits between I2S and the RTP engine.
  101. config AES67_TASK_PRIORITY_PTP
  102. int "PTP task priority"
  103. default 20
  104. range 1 25
  105. help
  106. FreeRTOS priority for the PTP synchronization task.
  107. config AES67_TASK_PRIORITY_RTP
  108. int "RTP task priority"
  109. default 19
  110. range 1 25
  111. help
  112. FreeRTOS priority for the RTP packet processing task.
  113. config AES67_TASK_PRIORITY_AUDIO
  114. int "Audio frame task priority"
  115. default 22
  116. range 1 25
  117. help
  118. FreeRTOS priority for the audio frame (TIC) processing task.
  119. config AES67_TASK_PRIORITY_SAP
  120. int "SAP task priority"
  121. default 5
  122. range 1 25
  123. help
  124. FreeRTOS priority for SAP announcement task.
  125. config AES67_NODE_NAME
  126. string "Default node name"
  127. default "esp32p4-aes67"
  128. help
  129. Default device node name used in SDP and mDNS advertisements.
  130. config AES67_I2S_PORT
  131. int "I2S port number"
  132. default 0
  133. range 0 2
  134. help
  135. I2S peripheral port to use for audio I/O.
  136. config AES67_I2S_MCK_GPIO
  137. int "I2S MCLK GPIO"
  138. default 13
  139. help
  140. GPIO pin for I2S master clock output.
  141. config AES67_I2S_BCK_GPIO
  142. int "I2S BCLK GPIO"
  143. default 12
  144. help
  145. GPIO pin for I2S bit clock.
  146. config AES67_I2S_WS_GPIO
  147. int "I2S WS/LRCLK GPIO"
  148. default 10
  149. help
  150. GPIO pin for I2S word select (LRCLK).
  151. config AES67_I2S_DOUT_GPIO
  152. int "I2S data out GPIO (ESP32 -> codec)"
  153. default 9
  154. help
  155. GPIO pin for I2S serial data output to codec DAC (DSDIN).
  156. On ESP32-P4-NANO this is GPIO9.
  157. config AES67_I2S_DIN_GPIO
  158. int "I2S data in GPIO (codec -> ESP32)"
  159. default 11
  160. help
  161. GPIO pin for I2S serial data input from codec ADC (ASDOUT).
  162. On ESP32-P4-NANO this is GPIO11.
  163. config AES67_WEBUI_ENABLED
  164. bool "Enable WebUI"
  165. default y
  166. help
  167. HTTP REST API and WebSocket for monitoring and control.
  168. config AES67_WEBUI_PORT
  169. int "WebUI HTTP port"
  170. default 80
  171. depends on AES67_WEBUI_ENABLED
  172. help
  173. TCP port for the embedded web server.
  174. endmenu