From e12821f31c8b6530d1bc516ba6b1e1a5faba4ba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0erif=20Rami?= Date: Wed, 7 Jan 2026 12:54:04 +0100 Subject: [PATCH] frame size fixes --- us144mkii.h | 7 ++++--- us144mkii_capture.c | 4 ++-- us144mkii_playback.c | 8 ++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/us144mkii.h b/us144mkii.h index 7dafda6..17214d0 100644 --- a/us144mkii.h +++ b/us144mkii.h @@ -68,15 +68,16 @@ enum tascam_register { #define NUM_FEEDBACK_URBS 4 #define FEEDBACK_URB_PACKETS 1 #define FEEDBACK_PACKET_SIZE 3 -#define NUM_CAPTURE_URBS 8 -#define CAPTURE_PACKET_SIZE 4096 +#define NUM_CAPTURE_URBS 32 +#define CAPTURE_PACKET_SIZE 512 #define MIDI_PACKET_SIZE 9 #define MIDI_PAYLOAD_SIZE 8 #define BYTES_PER_SAMPLE 3 #define NUM_CHANNELS 4 -#define BYTES_PER_FRAME (NUM_CHANNELS * BYTES_PER_SAMPLE) + +#define PLAYBACK_FRAME_SIZE (NUM_CHANNELS * BYTES_PER_SAMPLE) #define PLL_FILTER_OLD_WEIGHT 3 #define PLL_FILTER_NEW_WEIGHT 1 diff --git a/us144mkii_capture.c b/us144mkii_capture.c index 421fb43..aa28fae 100644 --- a/us144mkii_capture.c +++ b/us144mkii_capture.c @@ -16,8 +16,8 @@ const struct snd_pcm_hardware tascam_capture_hw = { .channels_min = NUM_CHANNELS, .channels_max = NUM_CHANNELS, .buffer_bytes_max = 1024 * 1024, - .period_bytes_min = 48 * BYTES_PER_FRAME, - .period_bytes_max = 1024 * BYTES_PER_FRAME, + .period_bytes_min = 768, + .period_bytes_max = 1024 * 1024, .periods_min = 2, .periods_max = 1024, }; diff --git a/us144mkii_playback.c b/us144mkii_playback.c index 2040d9f..45aa4bd 100644 --- a/us144mkii_playback.c +++ b/us144mkii_playback.c @@ -15,8 +15,8 @@ const struct snd_pcm_hardware tascam_playback_hw = { .channels_min = NUM_CHANNELS, .channels_max = NUM_CHANNELS, .buffer_bytes_max = 1024 * 1024, - .period_bytes_min = 48 * BYTES_PER_FRAME, - .period_bytes_max = 1024 * BYTES_PER_FRAME, + .period_bytes_min = 576, + .period_bytes_max = 1024 * 1024, .periods_min = 2, .periods_max = 1024, }; @@ -49,7 +49,7 @@ static int tascam_playback_prepare(struct snd_pcm_substream *substream) struct tascam_card *tascam = snd_pcm_substream_chip(substream); struct snd_pcm_runtime *runtime = substream->runtime; int i, u; - size_t nominal_bytes = (runtime->rate / 8000) * BYTES_PER_FRAME; + size_t nominal_bytes = (runtime->rate / 8000) * PLAYBACK_FRAME_SIZE; usb_kill_anchored_urbs(&tascam->playback_anchor); usb_kill_anchored_urbs(&tascam->feedback_anchor); @@ -246,7 +246,7 @@ void playback_urb_complete(struct urb *urb) frames_for_packet = 13; urb->iso_frame_desc[i].offset = total_bytes_for_urb; - urb->iso_frame_desc[i].length = frames_for_packet * BYTES_PER_FRAME; + urb->iso_frame_desc[i].length = frames_for_packet * PLAYBACK_FRAME_SIZE; total_bytes_for_urb += urb->iso_frame_desc[i].length; } urb->transfer_buffer_length = total_bytes_for_urb;