- return;
-// PARA_INFO_LOG("%zd frames\n", frames);
-// while (frames > 0) {
- ret = snd_pcm_writei(pad->handle, data, frames);
- if (ret == -EAGAIN || (ret >= 0 && ret < frames)) {
- struct timeval tv = {0, 1000 * 10};
- PARA_INFO_LOG("EAGAIN. frames: %d, ret: %lu\n", frames, ret);
- tv_add(&s->now, &tv, &pad->next_chunk);
-// snd_pcm_wait(pad->handle, 1);
- } else if (ret == -EPIPE) {
- PARA_INFO_LOG("%s", "EPIPE\n");
- snd_pcm_prepare(pad->handle);
- } else if (ret < 0) {
- PARA_INFO_LOG("ALSA ERR %d\n", frames);
- t->ret = -E_ALSA_WRITE;
- return;
- }
- if (ret >= 0) {
- result += ret;
- frames -= ret;
- data += ret * pad->bytes_per_frame;
- }
-// if (ret == -EAGAIN)
-// break;
-// }
- t->ret = result * pad->bytes_per_frame;
-// PARA_INFO_LOG("ret: %d, frames: %zd\n", t->ret, frames);
+ return 1;
+ ret = snd_pcm_writei(pad->handle, data, frames);
+ if (ret == -EPIPE) {
+ PARA_WARNING_LOG("%s", "EPIPE\n");
+ snd_pcm_prepare(pad->handle);
+ return 1;
+ }
+ if (ret < 0) {
+ PARA_WARNING_LOG("%s", "ALSA ERROR\n");
+ return -E_ALSA_WRITE;
+ }
+ ms2tv(pad->buffer_time / 4000, &tv);
+// ms2tv(1, &tv);
+ tv_add(&s->now, &tv, &pad->next_chunk);
+ wn->written += ret * pad->bytes_per_frame;
+ return 1;