w->private_data = pad;
snd_pcm_info_alloca(&info);
err = snd_pcm_open(&pad->handle, conf->device_arg,
- SND_PCM_STREAM_PLAYBACK, 0);
+ SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK);
if (err < 0)
return -E_PCM_OPEN;
if ((err = snd_pcm_info(pad->handle, info)) < 0)
t->ret = -E_ALSA_WRITE;
return;
}
-// ms2tv(pad->buffer_time / 4000, &tv);
- ms2tv(1, &tv);
+ ms2tv(pad->buffer_time / 4000, &tv);
+// ms2tv(1, &tv);
tv_add(&s->now, &tv, &pad->next_chunk);
t->ret = ret * pad->bytes_per_frame;
// PARA_INFO_LOG("ret: %d, frames: %zd\n", t->ret, frames);