From: "Alexander E. Patrakov" <patrakov@gmail.com>
To: Raymond Yau <superquad.vortex2@gmail.com>
Cc: ALSA Development Mailing List <alsa-devel@alsa-project.org>,
Lars-Peter Clausen <lars@metafoo.de>,
Takashi Iwai <tiwai@suse.de>,
clemens@ladisch.de, Tanu Kaskinen <tanu.kaskinen@linux.intel.com>,
Arun Raghavan <arun@accosted.net>,
David Henningsson <david.henningsson@canonical.com>
Subject: Re: PulseAudio and SNDRV_PCM_INFO_BATCH
Date: Fri, 19 Jun 2015 16:19:31 +0500 [thread overview]
Message-ID: <5583FAC3.70500@gmail.com> (raw)
In-Reply-To: <CAN8cciYdGP5Q9eGT+tjE_1qxkxT3JT7vPECN0CCvpZf7H5_tzA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 386 bytes --]
18.06.2015 08:15, Raymond Yau wrote:
> How about the result using multiple of 48 frames as period size since
> min period size is 48 frames (1 ms) , it seem that your tests are not
> using the optimal period size
Attached. See the second and the third tests in the file. Also, on
request from David, I have added logging of the delay in addition to avail.
--
Alexander E. Patrakov
[-- Attachment #2: pcm_avail.c --]
[-- Type: text/x-csrc, Size: 4194 bytes --]
/*
* This extra small demo sends silence to your speakers and tests the precision of the reported position.
*/
#include <asoundlib.h>
#include <stdio.h>
#include <stdlib.h>
const char* device;
const int channels = 2;
const snd_pcm_sframes_t period_size = 960;
const int periods = 4;
const int rate = 48000;
int main(int argc, char* argv[])
{
int err;
int failed = 0;
unsigned int j, j_old;
short *silence;
snd_pcm_sframes_t avail = -1, delay = -1;
snd_pcm_uframes_t min_period_size;
snd_pcm_uframes_t boundary;
int dir;
struct timeval tv_old;
if (argc != 2) {
fprintf(stderr, "Usage: %s pcm_name\n", argv[0]);
exit(EXIT_FAILURE);
}
device = argv[1];
printf("======= testing %s =======\n", device);
snd_pcm_t *handle;
snd_output_t *out = NULL;
snd_pcm_hw_params_t *params;
snd_pcm_sw_params_t *swparams;
snd_pcm_hw_params_alloca(¶ms);
snd_pcm_sw_params_alloca(&swparams);
snd_output_stdio_attach(&out, stdout, 0);
silence = calloc(period_size * periods, sizeof(short) * channels);
if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
fprintf(stderr, "Playback open error: %s\n", snd_strerror(err));
exit(EXIT_FAILURE);
}
failed = (err = snd_pcm_hw_params_any(handle, params)) < 0;
failed = failed || (err = snd_pcm_hw_params_set_rate_resample(handle, params, 1)) < 0;
failed = failed || (err = snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0;
failed = failed || (err = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16)) < 0;
failed = failed || (err = snd_pcm_hw_params_set_channels(handle, params, channels)) < 0;
failed = failed || (err = snd_pcm_hw_params_set_rate(handle, params, rate, 0)) < 0;
if (failed) {
fprintf(stderr, "Playback hwparams (access & format) error: %s\n", snd_strerror(err));
exit(EXIT_FAILURE);
}
err = snd_pcm_hw_params_get_period_size_min(params, &min_period_size, &dir);
if (err < 0) {
fprintf(stderr, "Cannot get minimum period size: %s\n", snd_strerror(err));
}
printf("min_period_size: %d frames, dir: %d\n", (int)min_period_size, dir);
failed = (err = snd_pcm_hw_params_set_period_size(handle, params, period_size, 0)) < 0;
failed = failed || (err = snd_pcm_hw_params_set_periods(handle, params, periods, 0)) < 0;
failed = failed || (err = snd_pcm_hw_params(handle, params)) < 0;
if (failed) {
fprintf(stderr, "Playback hwparams (period size & periods) error: %s\n", snd_strerror(err));
exit(EXIT_FAILURE);
}
err = snd_pcm_hw_params_get_fifo_size(params);
if (err < 0) {
fprintf(stderr, "Playback hwparams: can't get FIFO size, error: %s\n", snd_strerror(err));
} else {
printf("FIFO size is %d\n", err);
}
failed = (err = snd_pcm_sw_params_current(handle, swparams)) < 0;
failed = failed || (err = snd_pcm_sw_params_set_start_threshold(handle, swparams, period_size)) < 0;
failed = failed || (err = snd_pcm_sw_params_set_avail_min(handle, swparams, period_size)) < 0;
failed = failed || (err = snd_pcm_sw_params(handle, swparams)) < 0;
if (failed) {
fprintf(stderr, "Playback swparams error: %s\n", snd_strerror(err));
exit(EXIT_FAILURE);
}
snd_pcm_dump(handle, out);
printf("Playing silence\n");
fflush(stdout);
memset(silence, 0, period_size * periods * sizeof(short) * channels);
err = snd_pcm_writei(handle, silence, period_size * periods);
if (err < 0) {
fprintf(stderr, "Playback error: %s\n", snd_strerror(err));
exit(EXIT_FAILURE);
}
j = 0;
j_old = 0;
gettimeofday(&tv_old, NULL);
while (1) {
snd_pcm_sframes_t avail1;
snd_pcm_sframes_t delay1;
err = snd_pcm_avail_delay(handle, &avail1, &delay1);
if (err < 0 || avail1 < 0)
break;
if (avail != avail1 || delay != delay1) {
struct timeval tv;
gettimeofday(&tv, NULL);
printf("Available: %d, delay: %d, loop iteration: %d, diff: %d, timestamp diff: %d usec\n", (int)avail1, (int)delay1, j, j - j_old,
(int)((tv.tv_sec - tv_old.tv_sec) * 1000000 + (tv.tv_usec - tv_old.tv_usec)));
tv_old = tv;
j_old = j;
}
avail = avail1;
delay = delay1;
j++;
}
snd_pcm_drop(handle);
snd_pcm_close(handle);
free(silence);
return 0;
}
[-- Attachment #3: usb_sound_timings_v2.txt --]
[-- Type: text/plain, Size: 27195 bytes --]
======= testing hw:2 =======
min_period_size: 48 frames, dir: 0
FIFO size is 0
Hardware PCM card 2 'C-Media USB Headphone Set' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 4096
period_size : 1024
period_time : 21333
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 1024
stop_threshold : 4096
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
appl_ptr : 0
hw_ptr : 0
Playing silence
Available: 0, delay: 4096, loop iteration: 0, diff: 0, timestamp diff: 6 usec
Available: 288, delay: 4096, loop iteration: 5038, diff: 5038, timestamp diff: 6014 usec
Available: 288, delay: 4048, loop iteration: 5107, diff: 69, timestamp diff: 221 usec
Available: 288, delay: 4000, loop iteration: 5453, diff: 346, timestamp diff: 1001 usec
Available: 288, delay: 3952, loop iteration: 5787, diff: 334, timestamp diff: 1001 usec
Available: 288, delay: 3904, loop iteration: 6132, diff: 345, timestamp diff: 999 usec
Available: 288, delay: 3856, loop iteration: 6467, diff: 335, timestamp diff: 1000 usec
Available: 288, delay: 3808, loop iteration: 6814, diff: 347, timestamp diff: 1000 usec
Available: 528, delay: 3808, loop iteration: 7078, diff: 264, timestamp diff: 785 usec
Available: 528, delay: 3760, loop iteration: 7153, diff: 75, timestamp diff: 215 usec
Available: 528, delay: 3712, loop iteration: 7519, diff: 366, timestamp diff: 1000 usec
Available: 528, delay: 3664, loop iteration: 7881, diff: 362, timestamp diff: 999 usec
Available: 528, delay: 3616, loop iteration: 8224, diff: 343, timestamp diff: 1001 usec
Available: 528, delay: 3568, loop iteration: 8589, diff: 365, timestamp diff: 1000 usec
Available: 768, delay: 3568, loop iteration: 9231, diff: 642, timestamp diff: 1837 usec
Available: 768, delay: 3520, loop iteration: 9276, diff: 45, timestamp diff: 164 usec
Available: 768, delay: 3472, loop iteration: 9642, diff: 366, timestamp diff: 998 usec
Available: 768, delay: 3424, loop iteration: 10007, diff: 365, timestamp diff: 1001 usec
Available: 768, delay: 3376, loop iteration: 10368, diff: 361, timestamp diff: 999 usec
Available: 768, delay: 3328, loop iteration: 10712, diff: 344, timestamp diff: 999 usec
Available: 1056, delay: 3328, loop iteration: 11363, diff: 651, timestamp diff: 1784 usec
Available: 1056, delay: 3280, loop iteration: 11440, diff: 77, timestamp diff: 218 usec
Available: 1056, delay: 3232, loop iteration: 11795, diff: 355, timestamp diff: 1000 usec
Available: 1056, delay: 3184, loop iteration: 12180, diff: 385, timestamp diff: 1000 usec
Available: 1056, delay: 3136, loop iteration: 12566, diff: 386, timestamp diff: 1000 usec
Available: 1056, delay: 3088, loop iteration: 12952, diff: 386, timestamp diff: 999 usec
Available: 1056, delay: 3040, loop iteration: 13248, diff: 296, timestamp diff: 830 usec
Available: 1296, delay: 3088, loop iteration: 13249, diff: 1, timestamp diff: 6 usec
Available: 1296, delay: 3040, loop iteration: 13283, diff: 34, timestamp diff: 163 usec
Available: 1296, delay: 2992, loop iteration: 13669, diff: 386, timestamp diff: 1001 usec
Available: 1296, delay: 2944, loop iteration: 14056, diff: 387, timestamp diff: 1001 usec
Available: 1296, delay: 2896, loop iteration: 14442, diff: 386, timestamp diff: 999 usec
Available: 1296, delay: 2848, loop iteration: 14828, diff: 386, timestamp diff: 999 usec
Available: 1536, delay: 2848, loop iteration: 15121, diff: 293, timestamp diff: 828 usec
Available: 1536, delay: 2800, loop iteration: 15186, diff: 65, timestamp diff: 173 usec
Available: 1536, delay: 2752, loop iteration: 15577, diff: 391, timestamp diff: 999 usec
Available: 1536, delay: 2704, loop iteration: 15964, diff: 387, timestamp diff: 1001 usec
Available: 1536, delay: 2656, loop iteration: 16350, diff: 386, timestamp diff: 999 usec
Available: 1536, delay: 2608, loop iteration: 16737, diff: 387, timestamp diff: 1001 usec
Available: 1536, delay: 2560, loop iteration: 17105, diff: 368, timestamp diff: 999 usec
Available: 1824, delay: 2560, loop iteration: 17350, diff: 245, timestamp diff: 801 usec
Available: 1824, delay: 2512, loop iteration: 17406, diff: 56, timestamp diff: 201 usec
Available: 1824, delay: 2464, loop iteration: 17788, diff: 382, timestamp diff: 999 usec
Available: 1824, delay: 2416, loop iteration: 18170, diff: 382, timestamp diff: 999 usec
Available: 1824, delay: 2368, loop iteration: 18554, diff: 384, timestamp diff: 1001 usec
Available: 1824, delay: 2320, loop iteration: 18941, diff: 387, timestamp diff: 1001 usec
Available: 2064, delay: 2320, loop iteration: 19241, diff: 300, timestamp diff: 832 usec
Available: 2064, delay: 2272, loop iteration: 19270, diff: 29, timestamp diff: 169 usec
Available: 2064, delay: 2224, loop iteration: 19671, diff: 401, timestamp diff: 996 usec
Available: 2064, delay: 2176, loop iteration: 20080, diff: 409, timestamp diff: 1002 usec
Available: 2064, delay: 2128, loop iteration: 20488, diff: 408, timestamp diff: 1000 usec
Available: 2064, delay: 2080, loop iteration: 20896, diff: 408, timestamp diff: 1000 usec
Available: 2304, delay: 2080, loop iteration: 21204, diff: 308, timestamp diff: 769 usec
Available: 2304, delay: 2032, loop iteration: 21296, diff: 92, timestamp diff: 230 usec
Available: 2304, delay: 1984, loop iteration: 21702, diff: 406, timestamp diff: 1001 usec
Available: 2304, delay: 1936, loop iteration: 22107, diff: 405, timestamp diff: 999 usec
Available: 2304, delay: 1888, loop iteration: 22510, diff: 403, timestamp diff: 1001 usec
Available: 2304, delay: 1840, loop iteration: 22922, diff: 412, timestamp diff: 1000 usec
Available: 2304, delay: 1792, loop iteration: 23328, diff: 406, timestamp diff: 999 usec
Available: 2592, delay: 1792, loop iteration: 23643, diff: 315, timestamp diff: 831 usec
Available: 2592, delay: 1744, loop iteration: 23710, diff: 67, timestamp diff: 170 usec
Available: 2592, delay: 1696, loop iteration: 24116, diff: 406, timestamp diff: 999 usec
Available: 2592, delay: 1648, loop iteration: 24523, diff: 407, timestamp diff: 1001 usec
Available: 2592, delay: 1600, loop iteration: 24923, diff: 400, timestamp diff: 999 usec
Available: 2592, delay: 1552, loop iteration: 25334, diff: 411, timestamp diff: 999 usec
Available: 2592, delay: 1504, loop iteration: 25645, diff: 311, timestamp diff: 822 usec
Available: 2832, delay: 1552, loop iteration: 25646, diff: 1, timestamp diff: 6 usec
Available: 2832, delay: 1504, loop iteration: 25712, diff: 66, timestamp diff: 174 usec
Available: 2832, delay: 1456, loop iteration: 26123, diff: 411, timestamp diff: 999 usec
Available: 2832, delay: 1408, loop iteration: 26524, diff: 401, timestamp diff: 999 usec
Available: 2832, delay: 1360, loop iteration: 26940, diff: 416, timestamp diff: 1000 usec
Available: 2832, delay: 1312, loop iteration: 27343, diff: 403, timestamp diff: 1002 usec
Available: 2832, delay: 1264, loop iteration: 27673, diff: 330, timestamp diff: 764 usec
Available: 3072, delay: 1312, loop iteration: 27674, diff: 1, timestamp diff: 6 usec
Available: 3072, delay: 1264, loop iteration: 27769, diff: 95, timestamp diff: 228 usec
Available: 3072, delay: 1216, loop iteration: 28198, diff: 429, timestamp diff: 1002 usec
Available: 3072, delay: 1168, loop iteration: 28613, diff: 415, timestamp diff: 999 usec
Available: 3072, delay: 1120, loop iteration: 29038, diff: 425, timestamp diff: 999 usec
Available: 3072, delay: 1072, loop iteration: 29462, diff: 424, timestamp diff: 1002 usec
Available: 3072, delay: 1024, loop iteration: 29885, diff: 423, timestamp diff: 998 usec
Available: 3360, delay: 1024, loop iteration: 30205, diff: 320, timestamp diff: 820 usec
Available: 3360, delay: 976, loop iteration: 30279, diff: 74, timestamp diff: 180 usec
Available: 3360, delay: 928, loop iteration: 30703, diff: 424, timestamp diff: 1002 usec
Available: 3360, delay: 880, loop iteration: 31126, diff: 423, timestamp diff: 998 usec
Available: 3360, delay: 832, loop iteration: 31550, diff: 424, timestamp diff: 1001 usec
Available: 3360, delay: 784, loop iteration: 31973, diff: 423, timestamp diff: 999 usec
Available: 3600, delay: 784, loop iteration: 32301, diff: 328, timestamp diff: 828 usec
Available: 3600, delay: 736, loop iteration: 32372, diff: 71, timestamp diff: 172 usec
Available: 3600, delay: 688, loop iteration: 32796, diff: 424, timestamp diff: 1001 usec
Available: 3600, delay: 640, loop iteration: 33220, diff: 424, timestamp diff: 1000 usec
Available: 3600, delay: 592, loop iteration: 33635, diff: 415, timestamp diff: 999 usec
Available: 3600, delay: 544, loop iteration: 34059, diff: 424, timestamp diff: 1001 usec
Available: 3600, delay: 496, loop iteration: 34381, diff: 322, timestamp diff: 818 usec
Available: 3840, delay: 544, loop iteration: 34382, diff: 1, timestamp diff: 63 usec
Available: 3840, delay: 496, loop iteration: 34432, diff: 50, timestamp diff: 118 usec
Available: 3840, delay: 448, loop iteration: 34855, diff: 423, timestamp diff: 1000 usec
Available: 3840, delay: 400, loop iteration: 35279, diff: 424, timestamp diff: 1001 usec
Available: 3840, delay: 352, loop iteration: 35692, diff: 413, timestamp diff: 1000 usec
Available: 3840, delay: 304, loop iteration: 36129, diff: 437, timestamp diff: 1000 usec
Available: 3840, delay: 256, loop iteration: 36575, diff: 446, timestamp diff: 1000 usec
======= testing hw:2 =======
min_period_size: 48 frames, dir: 0
FIFO size is 0
Hardware PCM card 2 'C-Media USB Headphone Set' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 3072
period_size : 96
period_time : 2000
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 96
period_event : 0
start_threshold : 96
stop_threshold : 3072
silence_threshold: 0
silence_size : 0
boundary : 6917529027641081856
appl_ptr : 0
hw_ptr : 0
Playing silence
Available: 0, delay: 3072, loop iteration: 0, diff: 0, timestamp diff: 6 usec
Available: 96, delay: 3072, loop iteration: 1585, diff: 1585, timestamp diff: 2267 usec
Available: 96, delay: 3024, loop iteration: 1654, diff: 69, timestamp diff: 219 usec
Available: 96, delay: 2976, loop iteration: 2012, diff: 358, timestamp diff: 999 usec
Available: 192, delay: 2976, loop iteration: 2265, diff: 253, timestamp diff: 779 usec
Available: 192, delay: 2928, loop iteration: 2337, diff: 72, timestamp diff: 221 usec
Available: 192, delay: 2880, loop iteration: 2535, diff: 198, timestamp diff: 999 usec
Available: 288, delay: 2880, loop iteration: 2780, diff: 245, timestamp diff: 776 usec
Available: 288, delay: 2832, loop iteration: 2844, diff: 64, timestamp diff: 225 usec
Available: 288, delay: 2784, loop iteration: 3116, diff: 272, timestamp diff: 1004 usec
Available: 384, delay: 2784, loop iteration: 3316, diff: 200, timestamp diff: 776 usec
Available: 384, delay: 2736, loop iteration: 3371, diff: 55, timestamp diff: 220 usec
Available: 384, delay: 2688, loop iteration: 3631, diff: 260, timestamp diff: 1002 usec
Available: 480, delay: 2688, loop iteration: 3895, diff: 264, timestamp diff: 780 usec
Available: 480, delay: 2640, loop iteration: 3961, diff: 66, timestamp diff: 220 usec
Available: 480, delay: 2592, loop iteration: 4309, diff: 348, timestamp diff: 999 usec
Available: 576, delay: 2592, loop iteration: 4557, diff: 248, timestamp diff: 789 usec
Available: 576, delay: 2544, loop iteration: 4610, diff: 53, timestamp diff: 211 usec
Available: 576, delay: 2496, loop iteration: 4955, diff: 345, timestamp diff: 999 usec
Available: 672, delay: 2496, loop iteration: 5225, diff: 270, timestamp diff: 773 usec
Available: 672, delay: 2448, loop iteration: 5301, diff: 76, timestamp diff: 227 usec
Available: 672, delay: 2400, loop iteration: 5663, diff: 362, timestamp diff: 1000 usec
Available: 768, delay: 2400, loop iteration: 5940, diff: 277, timestamp diff: 773 usec
Available: 768, delay: 2352, loop iteration: 6020, diff: 80, timestamp diff: 228 usec
Available: 768, delay: 2304, loop iteration: 6386, diff: 366, timestamp diff: 999 usec
Available: 864, delay: 2304, loop iteration: 6669, diff: 283, timestamp diff: 773 usec
Available: 864, delay: 2256, loop iteration: 6729, diff: 60, timestamp diff: 228 usec
Available: 864, delay: 2208, loop iteration: 7087, diff: 358, timestamp diff: 999 usec
Available: 960, delay: 2208, loop iteration: 7373, diff: 286, timestamp diff: 779 usec
Available: 960, delay: 2160, loop iteration: 7443, diff: 70, timestamp diff: 220 usec
Available: 960, delay: 2112, loop iteration: 7804, diff: 361, timestamp diff: 1000 usec
Available: 1056, delay: 2112, loop iteration: 8079, diff: 275, timestamp diff: 771 usec
Available: 1056, delay: 2064, loop iteration: 8160, diff: 81, timestamp diff: 230 usec
Available: 1056, delay: 2016, loop iteration: 8524, diff: 364, timestamp diff: 1001 usec
Available: 1152, delay: 2016, loop iteration: 8778, diff: 254, timestamp diff: 770 usec
Available: 1152, delay: 1968, loop iteration: 8856, diff: 78, timestamp diff: 230 usec
Available: 1152, delay: 1920, loop iteration: 9221, diff: 365, timestamp diff: 999 usec
Available: 1248, delay: 1920, loop iteration: 9503, diff: 282, timestamp diff: 774 usec
Available: 1248, delay: 1872, loop iteration: 9574, diff: 71, timestamp diff: 226 usec
Available: 1248, delay: 1824, loop iteration: 9940, diff: 366, timestamp diff: 999 usec
Available: 1344, delay: 1824, loop iteration: 10203, diff: 263, timestamp diff: 777 usec
Available: 1344, delay: 1776, loop iteration: 10280, diff: 77, timestamp diff: 224 usec
Available: 1344, delay: 1728, loop iteration: 10641, diff: 361, timestamp diff: 1001 usec
Available: 1440, delay: 1728, loop iteration: 10907, diff: 266, timestamp diff: 770 usec
Available: 1440, delay: 1680, loop iteration: 10987, diff: 80, timestamp diff: 228 usec
Available: 1440, delay: 1632, loop iteration: 11358, diff: 371, timestamp diff: 1000 usec
Available: 1536, delay: 1632, loop iteration: 11644, diff: 286, timestamp diff: 775 usec
Available: 1536, delay: 1584, loop iteration: 11720, diff: 76, timestamp diff: 226 usec
Available: 1536, delay: 1536, loop iteration: 12079, diff: 359, timestamp diff: 998 usec
Available: 1632, delay: 1536, loop iteration: 12361, diff: 282, timestamp diff: 778 usec
Available: 1632, delay: 1488, loop iteration: 12440, diff: 79, timestamp diff: 224 usec
Available: 1632, delay: 1440, loop iteration: 12805, diff: 365, timestamp diff: 998 usec
Available: 1728, delay: 1440, loop iteration: 13082, diff: 277, timestamp diff: 770 usec
Available: 1728, delay: 1392, loop iteration: 13163, diff: 81, timestamp diff: 232 usec
Available: 1728, delay: 1344, loop iteration: 13525, diff: 362, timestamp diff: 1001 usec
Available: 1824, delay: 1344, loop iteration: 13803, diff: 278, timestamp diff: 768 usec
Available: 1824, delay: 1296, loop iteration: 13861, diff: 58, timestamp diff: 231 usec
Available: 1824, delay: 1248, loop iteration: 14221, diff: 360, timestamp diff: 999 usec
Available: 1920, delay: 1248, loop iteration: 14522, diff: 301, timestamp diff: 772 usec
Available: 1920, delay: 1200, loop iteration: 14588, diff: 66, timestamp diff: 229 usec
Available: 1920, delay: 1152, loop iteration: 14970, diff: 382, timestamp diff: 1000 usec
Available: 2016, delay: 1152, loop iteration: 15270, diff: 300, timestamp diff: 770 usec
Available: 2016, delay: 1104, loop iteration: 15350, diff: 80, timestamp diff: 230 usec
Available: 2016, delay: 1056, loop iteration: 15733, diff: 383, timestamp diff: 999 usec
Available: 2112, delay: 1056, loop iteration: 16013, diff: 280, timestamp diff: 770 usec
Available: 2112, delay: 1008, loop iteration: 16097, diff: 84, timestamp diff: 231 usec
Available: 2112, delay: 960, loop iteration: 16464, diff: 367, timestamp diff: 999 usec
Available: 2208, delay: 960, loop iteration: 16746, diff: 282, timestamp diff: 782 usec
Available: 2208, delay: 912, loop iteration: 16822, diff: 76, timestamp diff: 218 usec
Available: 2208, delay: 864, loop iteration: 17183, diff: 361, timestamp diff: 999 usec
Available: 2304, delay: 864, loop iteration: 17465, diff: 282, timestamp diff: 784 usec
Available: 2304, delay: 816, loop iteration: 17535, diff: 70, timestamp diff: 216 usec
Available: 2304, delay: 768, loop iteration: 17898, diff: 363, timestamp diff: 1001 usec
Available: 2400, delay: 768, loop iteration: 18180, diff: 282, timestamp diff: 775 usec
Available: 2400, delay: 720, loop iteration: 18258, diff: 78, timestamp diff: 225 usec
Available: 2400, delay: 672, loop iteration: 18639, diff: 381, timestamp diff: 1001 usec
Available: 2496, delay: 672, loop iteration: 18934, diff: 295, timestamp diff: 767 usec
Available: 2496, delay: 624, loop iteration: 19021, diff: 87, timestamp diff: 232 usec
Available: 2496, delay: 576, loop iteration: 19400, diff: 379, timestamp diff: 1000 usec
Available: 2592, delay: 576, loop iteration: 19698, diff: 298, timestamp diff: 770 usec
Available: 2592, delay: 528, loop iteration: 19784, diff: 86, timestamp diff: 229 usec
Available: 2592, delay: 480, loop iteration: 20174, diff: 390, timestamp diff: 1000 usec
Available: 2688, delay: 480, loop iteration: 20480, diff: 306, timestamp diff: 772 usec
Available: 2688, delay: 432, loop iteration: 20564, diff: 84, timestamp diff: 230 usec
Available: 2688, delay: 384, loop iteration: 20938, diff: 374, timestamp diff: 998 usec
Available: 2784, delay: 384, loop iteration: 21208, diff: 270, timestamp diff: 769 usec
Available: 2784, delay: 336, loop iteration: 21270, diff: 62, timestamp diff: 231 usec
Available: 2784, delay: 288, loop iteration: 21671, diff: 401, timestamp diff: 1000 usec
Available: 2880, delay: 288, loop iteration: 21991, diff: 320, timestamp diff: 768 usec
Available: 2880, delay: 240, loop iteration: 22082, diff: 91, timestamp diff: 232 usec
Available: 2880, delay: 192, loop iteration: 22487, diff: 405, timestamp diff: 1001 usec
Available: 2976, delay: 192, loop iteration: 22797, diff: 310, timestamp diff: 768 usec
Available: 2976, delay: 144, loop iteration: 22885, diff: 88, timestamp diff: 231 usec
Available: 2976, delay: 96, loop iteration: 23281, diff: 396, timestamp diff: 1000 usec
======= testing hw:2 =======
min_period_size: 48 frames, dir: 0
FIFO size is 0
Hardware PCM card 2 'C-Media USB Headphone Set' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 3840
period_size : 960
period_time : 20000
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 960
period_event : 0
start_threshold : 960
stop_threshold : 3840
silence_threshold: 0
silence_size : 0
boundary : 8646911284551352320
appl_ptr : 0
hw_ptr : 0
Playing silence
Available: 0, delay: 3840, loop iteration: 0, diff: 0, timestamp diff: 7 usec
Available: 240, delay: 3840, loop iteration: 3832, diff: 3832, timestamp diff: 5214 usec
Available: 240, delay: 3792, loop iteration: 3900, diff: 68, timestamp diff: 213 usec
Available: 240, delay: 3744, loop iteration: 4190, diff: 290, timestamp diff: 998 usec
Available: 240, delay: 3696, loop iteration: 4505, diff: 315, timestamp diff: 999 usec
Available: 240, delay: 3648, loop iteration: 4826, diff: 321, timestamp diff: 1000 usec
Available: 240, delay: 3600, loop iteration: 5146, diff: 320, timestamp diff: 1002 usec
Available: 480, delay: 3600, loop iteration: 5389, diff: 243, timestamp diff: 779 usec
Available: 480, delay: 3552, loop iteration: 5456, diff: 67, timestamp diff: 220 usec
Available: 480, delay: 3504, loop iteration: 5774, diff: 318, timestamp diff: 1000 usec
Available: 480, delay: 3456, loop iteration: 6092, diff: 318, timestamp diff: 1001 usec
Available: 480, delay: 3408, loop iteration: 6406, diff: 314, timestamp diff: 1000 usec
Available: 480, delay: 3360, loop iteration: 6727, diff: 321, timestamp diff: 998 usec
Available: 720, delay: 3360, loop iteration: 6968, diff: 241, timestamp diff: 779 usec
Available: 720, delay: 3312, loop iteration: 7037, diff: 69, timestamp diff: 223 usec
Available: 720, delay: 3264, loop iteration: 7354, diff: 317, timestamp diff: 997 usec
Available: 720, delay: 3216, loop iteration: 7672, diff: 318, timestamp diff: 1001 usec
Available: 720, delay: 3168, loop iteration: 7992, diff: 320, timestamp diff: 1002 usec
Available: 720, delay: 3120, loop iteration: 8312, diff: 320, timestamp diff: 999 usec
Available: 960, delay: 3120, loop iteration: 8558, diff: 246, timestamp diff: 786 usec
Available: 960, delay: 3072, loop iteration: 8626, diff: 68, timestamp diff: 213 usec
Available: 960, delay: 3024, loop iteration: 8944, diff: 318, timestamp diff: 1000 usec
Available: 960, delay: 2976, loop iteration: 9239, diff: 295, timestamp diff: 1000 usec
Available: 960, delay: 2928, loop iteration: 9523, diff: 284, timestamp diff: 1000 usec
Available: 960, delay: 2880, loop iteration: 9828, diff: 305, timestamp diff: 1001 usec
Available: 1200, delay: 2880, loop iteration: 10072, diff: 244, timestamp diff: 771 usec
Available: 1200, delay: 2832, loop iteration: 10145, diff: 73, timestamp diff: 227 usec
Available: 1200, delay: 2784, loop iteration: 10463, diff: 318, timestamp diff: 1000 usec
Available: 1200, delay: 2736, loop iteration: 10773, diff: 310, timestamp diff: 1001 usec
Available: 1200, delay: 2688, loop iteration: 11094, diff: 321, timestamp diff: 1000 usec
Available: 1200, delay: 2640, loop iteration: 11409, diff: 315, timestamp diff: 999 usec
Available: 1440, delay: 2640, loop iteration: 11655, diff: 246, timestamp diff: 781 usec
Available: 1440, delay: 2592, loop iteration: 11724, diff: 69, timestamp diff: 220 usec
Available: 1440, delay: 2544, loop iteration: 12044, diff: 320, timestamp diff: 1000 usec
Available: 1440, delay: 2496, loop iteration: 12365, diff: 321, timestamp diff: 1001 usec
Available: 1440, delay: 2448, loop iteration: 12687, diff: 322, timestamp diff: 1000 usec
Available: 1440, delay: 2400, loop iteration: 13010, diff: 323, timestamp diff: 999 usec
Available: 1680, delay: 2400, loop iteration: 13253, diff: 243, timestamp diff: 774 usec
Available: 1680, delay: 2352, loop iteration: 13325, diff: 72, timestamp diff: 226 usec
Available: 1680, delay: 2304, loop iteration: 13646, diff: 321, timestamp diff: 999 usec
Available: 1680, delay: 2256, loop iteration: 13967, diff: 321, timestamp diff: 1001 usec
Available: 1680, delay: 2208, loop iteration: 14288, diff: 321, timestamp diff: 1001 usec
Available: 1680, delay: 2160, loop iteration: 14597, diff: 309, timestamp diff: 998 usec
Available: 1920, delay: 2160, loop iteration: 14868, diff: 271, timestamp diff: 782 usec
Available: 1920, delay: 2112, loop iteration: 14939, diff: 71, timestamp diff: 220 usec
Available: 1920, delay: 2064, loop iteration: 15278, diff: 339, timestamp diff: 999 usec
Available: 1920, delay: 2016, loop iteration: 15612, diff: 334, timestamp diff: 1001 usec
Available: 1920, delay: 1968, loop iteration: 15913, diff: 301, timestamp diff: 998 usec
Available: 1920, delay: 1920, loop iteration: 16233, diff: 320, timestamp diff: 999 usec
Available: 2160, delay: 1920, loop iteration: 16483, diff: 250, timestamp diff: 780 usec
Available: 2160, delay: 1872, loop iteration: 16549, diff: 66, timestamp diff: 221 usec
Available: 2160, delay: 1824, loop iteration: 16841, diff: 292, timestamp diff: 1001 usec
Available: 2160, delay: 1776, loop iteration: 17049, diff: 208, timestamp diff: 1863 usec
Available: 2160, delay: 1680, loop iteration: 17050, diff: 1, timestamp diff: 1399 usec
Available: 2400, delay: 1680, loop iteration: 17216, diff: 166, timestamp diff: 518 usec
Available: 2400, delay: 1632, loop iteration: 17285, diff: 69, timestamp diff: 219 usec
Available: 2400, delay: 1584, loop iteration: 17549, diff: 264, timestamp diff: 1001 usec
Available: 2400, delay: 1536, loop iteration: 17825, diff: 276, timestamp diff: 999 usec
Available: 2400, delay: 1488, loop iteration: 18069, diff: 244, timestamp diff: 1002 usec
Available: 2400, delay: 1440, loop iteration: 18319, diff: 250, timestamp diff: 999 usec
Available: 2640, delay: 1440, loop iteration: 18496, diff: 177, timestamp diff: 788 usec
Available: 2640, delay: 1392, loop iteration: 18548, diff: 52, timestamp diff: 211 usec
Available: 2640, delay: 1344, loop iteration: 18789, diff: 241, timestamp diff: 1002 usec
Available: 2640, delay: 1296, loop iteration: 19040, diff: 251, timestamp diff: 997 usec
Available: 2640, delay: 1248, loop iteration: 19129, diff: 89, timestamp diff: 1005 usec
Available: 2640, delay: 1200, loop iteration: 19374, diff: 245, timestamp diff: 997 usec
Available: 2880, delay: 1200, loop iteration: 19567, diff: 193, timestamp diff: 782 usec
Available: 2880, delay: 1152, loop iteration: 19624, diff: 57, timestamp diff: 218 usec
Available: 2880, delay: 1104, loop iteration: 19881, diff: 257, timestamp diff: 999 usec
Available: 2880, delay: 1056, loop iteration: 20124, diff: 243, timestamp diff: 999 usec
Available: 2880, delay: 1008, loop iteration: 20366, diff: 242, timestamp diff: 1003 usec
Available: 2880, delay: 960, loop iteration: 20628, diff: 262, timestamp diff: 1000 usec
Available: 3120, delay: 960, loop iteration: 20876, diff: 248, timestamp diff: 774 usec
Available: 3120, delay: 912, loop iteration: 20960, diff: 84, timestamp diff: 225 usec
Available: 3120, delay: 864, loop iteration: 21346, diff: 386, timestamp diff: 998 usec
Available: 3120, delay: 816, loop iteration: 21736, diff: 390, timestamp diff: 1000 usec
Available: 3120, delay: 768, loop iteration: 22150, diff: 414, timestamp diff: 1000 usec
Available: 3120, delay: 720, loop iteration: 22561, diff: 411, timestamp diff: 1001 usec
Available: 3360, delay: 720, loop iteration: 22872, diff: 311, timestamp diff: 772 usec
Available: 3360, delay: 672, loop iteration: 22964, diff: 92, timestamp diff: 227 usec
Available: 3360, delay: 624, loop iteration: 23370, diff: 406, timestamp diff: 1000 usec
Available: 3360, delay: 576, loop iteration: 23756, diff: 386, timestamp diff: 1000 usec
Available: 3360, delay: 528, loop iteration: 24166, diff: 410, timestamp diff: 1001 usec
Available: 3360, delay: 480, loop iteration: 24579, diff: 413, timestamp diff: 998 usec
Available: 3600, delay: 480, loop iteration: 24889, diff: 310, timestamp diff: 772 usec
Available: 3600, delay: 432, loop iteration: 24983, diff: 94, timestamp diff: 230 usec
Available: 3600, delay: 384, loop iteration: 25391, diff: 408, timestamp diff: 1000 usec
Available: 3600, delay: 336, loop iteration: 25799, diff: 408, timestamp diff: 998 usec
Available: 3600, delay: 288, loop iteration: 26209, diff: 410, timestamp diff: 1001 usec
Available: 3600, delay: 240, loop iteration: 26618, diff: 409, timestamp diff: 1001 usec
[-- Attachment #4: Type: text/plain, Size: 0 bytes --]
next prev parent reply other threads:[~2015-06-19 11:17 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 12:29 PulseAudio and SNDRV_PCM_INFO_BATCH Arun Raghavan
2015-06-12 12:32 ` Arun Raghavan
2015-06-12 13:43 ` Alexander E. Patrakov
2015-06-12 13:57 ` Alexander E. Patrakov
2015-06-17 3:04 ` Raymond Yau
2015-06-17 3:38 ` Alexander E. Patrakov
2015-06-15 3:42 ` Raymond Yau
2015-06-15 8:03 ` Lars-Peter Clausen
2015-06-15 11:39 ` Raymond Yau
2015-06-15 12:01 ` Lars-Peter Clausen
2015-06-15 13:34 ` Raymond Yau
2015-06-15 14:16 ` Lars-Peter Clausen
2015-06-16 2:33 ` Raymond Yau
2015-06-17 8:27 ` Lars-Peter Clausen
2015-06-17 9:19 ` Takashi Iwai
2015-06-17 15:09 ` David Henningsson
2015-06-17 16:48 ` Alexander E. Patrakov
2015-06-18 3:15 ` Raymond Yau
2015-06-19 11:19 ` Alexander E. Patrakov [this message]
2015-06-19 1:17 ` Raymond Yau
2015-06-19 11:32 ` Takashi Iwai
2015-06-20 3:24 ` Raymond Yau
2015-06-20 6:17 ` Raymond Yau
2015-06-22 2:35 ` Raymond Yau
2015-06-22 6:43 ` Lars-Peter Clausen
2015-06-22 7:49 ` Raymond Yau
2015-06-22 9:41 ` Clemens Ladisch
2015-06-22 11:54 ` Raymond Yau
2015-06-22 12:10 ` Alexander E. Patrakov
2015-06-22 12:34 ` Raymond Yau
2015-06-22 12:49 ` Alexander E. Patrakov
2015-06-22 15:50 ` Raymond Yau
2015-06-22 16:28 ` Alexander E. Patrakov
2015-06-24 5:51 ` Raymond Yau
2015-06-22 22:52 ` Takashi Sakamoto
2015-06-27 15:28 ` Alexander E. Patrakov
2015-06-27 17:15 ` Clemens Ladisch
2015-06-27 17:58 ` Alexander E. Patrakov
2015-06-28 2:09 ` Raymond Yau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5583FAC3.70500@gmail.com \
--to=patrakov@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=arun@accosted.net \
--cc=clemens@ladisch.de \
--cc=david.henningsson@canonical.com \
--cc=lars@metafoo.de \
--cc=superquad.vortex2@gmail.com \
--cc=tanu.kaskinen@linux.intel.com \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.