summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2026-05-21 20:59:46 +0800
committersakumisu <[email protected]>2026-05-22 10:33:15 +0800
commit36145cc47a670e53ea28b421051bd7ea2638d07c (patch)
tree992b77fb2fff47f70a8fddfc9c0cafd7ad2fcd4a
parentb5429f038a3dc5d9659c0f75ca2b61e4f8549607 (diff)
update(ci): update mic pool size
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--tests/bouffalolab/src/main.c33
-rw-r--r--tests/hpmicro/src/main.c52
2 files changed, 79 insertions, 6 deletions
diff --git a/tests/bouffalolab/src/main.c b/tests/bouffalolab/src/main.c
index dbb1660c..17531064 100644
--- a/tests/bouffalolab/src/main.c
+++ b/tests/bouffalolab/src/main.c
@@ -21,8 +21,9 @@ static ATTR_NOINIT_PSRAM_SECTION USB_MEM_ALIGNX uint8_t frame_buffer1[640 * 480
static ATTR_NOINIT_PSRAM_SECTION USB_MEM_ALIGNX uint8_t frame_buffer2[640 * 480 * 2];
static struct usbh_videoframe frame_pool[2];
-static ATTR_NOINIT_PSRAM_SECTION USB_MEM_ALIGNX uint8_t frame_buffer[AUDIO_MIC_EP_MPS * 8];
-static struct usbh_audioframe frame_pool2[8];
+#define AUDIP_MIC_POOL_SIZE (10)
+static ATTR_NOINIT_PSRAM_SECTION USB_MEM_ALIGNX uint8_t frame_mic_buffer[AUDIO_MIC_EP_MAX_MPS * AUDIO_MIC_ISO_PACKETS * AUDIP_MIC_POOL_SIZE];
+static struct usbh_audioframe frame_mic_pool[AUDIP_MIC_POOL_SIZE];
void usbh_video_run(struct usbh_video *video_class)
{
@@ -92,12 +93,12 @@ int main(void)
extern void usbh_video_fps_init(void);
usbh_video_fps_init();
- for (uint8_t i = 0; i < 8; i++) {
- frame_pool2[i].frame_buf = frame_buffer + i * AUDIO_MIC_EP_MPS;
- frame_pool2[i].frame_bufsize = AUDIO_MIC_EP_MPS;
+ for (uint8_t i = 0; i < AUDIP_MIC_POOL_SIZE; i++) {
+ frame_mic_pool[i].frame_buf = frame_mic_buffer + i * AUDIO_MIC_EP_MAX_MPS * AUDIO_MIC_ISO_PACKETS;
+ frame_mic_pool[i].frame_bufsize = AUDIO_MIC_EP_MAX_MPS * AUDIO_MIC_ISO_PACKETS;
}
- usbh_audio_mic_stream_create(frame_pool2, 8);
+ usbh_audio_mic_stream_create(frame_mic_pool, AUDIP_MIC_POOL_SIZE);
usb_osal_thread_create("uac_mic", 3072, 5, usbh_audio_mic_frame_thread, NULL);
#endif
vTaskStartScheduler();
@@ -191,4 +192,24 @@ int usbh_uac_stop(int argc, char **argv)
}
SHELL_CMD_EXPORT_ALIAS(usbh_uac_stop, usbh_uac_stop, usbh_uac_stop);
+
+int usbh_uac_volume(int argc, char **argv)
+{
+ struct usbh_audio *audio_class;
+
+ if (argc < 2) {
+ USB_LOG_ERR("please input correct command: usbh_uac_volume dB_val\r\n");
+ return -1;
+ }
+
+ audio_class = (struct usbh_audio *)usbh_find_class_instance("/dev/audio0");
+
+ int ret = usbh_audio_set_volume(audio_class, "mic", 0, atoi(argv[1]));
+ if (ret < 0) {
+ USB_LOG_ERR("set volume failed, ret: %d\r\n", ret);
+ }
+ return 0;
+}
+
+CSH_CMD_EXPORT(usbh_uac_volume, usbh_uac_volume);
#endif \ No newline at end of file
diff --git a/tests/hpmicro/src/main.c b/tests/hpmicro/src/main.c
index a692c5b0..d011c0a9 100644
--- a/tests/hpmicro/src/main.c
+++ b/tests/hpmicro/src/main.c
@@ -37,6 +37,29 @@ SDK_DECLARE_EXT_ISR_M(BOARD_CONSOLE_UART_IRQ, shell_uart_isr)
static void task_start(void *param);
+#ifdef CONFIG_USB_EHCI_ISO
+#define AUDIP_MIC_POOL_SIZE (10)
+static USB_MEM_ALIGNX uint8_t frame_mic_buffer[AUDIO_MIC_EP_MAX_MPS * AUDIO_MIC_ISO_PACKETS * AUDIP_MIC_POOL_SIZE];
+static struct usbh_audioframe frame_mic_pool[AUDIP_MIC_POOL_SIZE];
+
+static void usbh_audio_mic_frame_thread(void *argument)
+{
+ int ret;
+ struct usbh_audioframe *frame;
+
+ while (1) {
+ ret = usbh_audio_mic_stream_dequeue(&frame, 0xfffffff);
+ if (ret < 0) {
+ continue;
+ }
+
+ USB_LOG_RAW("frame buf:%p,frame len:%d\r\n", frame->frame_buf, frame->frame_size);
+
+ usbh_audio_mic_stream_enqueue(frame);
+ }
+}
+#endif
+
int main(void)
{
board_init();
@@ -54,6 +77,14 @@ int main(void)
extern void uvc2lcd_init(void);
uvc2lcd_init();
+
+ for (uint8_t i = 0; i < AUDIP_MIC_POOL_SIZE; i++) {
+ frame_mic_pool[i].frame_buf = frame_mic_buffer + i * AUDIO_MIC_EP_MAX_MPS * AUDIO_MIC_ISO_PACKETS;
+ frame_mic_pool[i].frame_bufsize = AUDIO_MIC_EP_MAX_MPS * AUDIO_MIC_ISO_PACKETS;
+ }
+
+ usbh_audio_mic_stream_create(frame_mic_pool, AUDIP_MIC_POOL_SIZE);
+ usb_osal_thread_create("uac_mic", 3072, 5, usbh_audio_mic_frame_thread, NULL);
#endif
#ifndef CONFIG_USB_OTG_ENABLE
@@ -142,6 +173,7 @@ int usbh_deinit(int argc, char **argv)
}
CSH_CMD_EXPORT(usbh_deinit, usbh_deinit);
+
#ifdef CONFIG_USB_EHCI_ISO
// clang-format off
USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t src_buffer[1024 * 10];
@@ -232,4 +264,24 @@ int usbh_uac_stop(int argc, char **argv)
}
CSH_CMD_EXPORT(usbh_uac_stop, usbh_uac_stop);
+
+int usbh_uac_volume(int argc, char **argv)
+{
+ struct usbh_audio *audio_class;
+
+ if (argc < 2) {
+ USB_LOG_ERR("please input correct command: usbh_uac_volume dB_val\r\n");
+ return -1;
+ }
+
+ audio_class = (struct usbh_audio *)usbh_find_class_instance("/dev/audio0");
+
+ int ret = usbh_audio_set_volume(audio_class, "mic", 0, atoi(argv[1]));
+ if (ret < 0) {
+ USB_LOG_ERR("set volume failed, ret: %d\r\n", ret);
+ }
+ return 0;
+}
+
+CSH_CMD_EXPORT(usbh_uac_volume, usbh_uac_volume);
#endif \ No newline at end of file