X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=alsa_write.c;h=8c12c728e551035bd8eca071216e3c7e44060de5;hp=a4863a59a5bc3a426a08e6a69d333bded736d780;hb=2ce04a49091712719b8fd60a6c7888258b719db1;hpb=9de1287d67c9562e9140c6dc7deb0c01c4e10cc0 diff --git a/alsa_write.c b/alsa_write.c index a4863a59..8c12c728 100644 --- a/alsa_write.c +++ b/alsa_write.c @@ -72,7 +72,7 @@ static int alsa_init(struct private_alsa_write_data *pad, snd_pcm_sw_params_t *swparams; snd_pcm_uframes_t start_threshold, stop_threshold; snd_pcm_uframes_t buffer_size, period_size; - snd_output_t *log; + snd_output_t *output_log; unsigned buffer_time; int ret; const char *msg; @@ -113,6 +113,8 @@ static int alsa_init(struct private_alsa_write_data *pad, NULL); if (ret < 0 || buffer_time == 0) goto fail; + /* buffer at most 500 milliseconds */ + buffer_time = PARA_MIN(buffer_time, 500U * 1000U); msg = "could not set buffer time"; ret = snd_pcm_hw_params_set_buffer_time_near(pad->handle, hwparams, &buffer_time, NULL); @@ -161,12 +163,12 @@ static int alsa_init(struct private_alsa_write_data *pad, ret = snd_pcm_nonblock(pad->handle, 1); if (ret < 0) goto fail; - ret = snd_output_buffer_open(&log); + ret = snd_output_buffer_open(&output_log); if (ret == 0) { char *buf; PARA_INFO_LOG("dumping alsa configuration\n"); - snd_pcm_dump(pad->handle, log); - snd_output_buffer_string(log, &buf); + snd_pcm_dump(pad->handle, output_log); + snd_output_buffer_string(output_log, &buf); for (;;) { char *p = strchr(buf, '\n'); if (!p) /* omit last output line, it's empty */ @@ -175,7 +177,7 @@ static int alsa_init(struct private_alsa_write_data *pad, PARA_INFO_LOG("%s\n", buf); buf = p + 1; } - snd_output_close(log); + snd_output_close(output_log); } return 1; fail: @@ -356,7 +358,6 @@ void alsa_write_init(struct writer *w) w->pre_select = alsa_write_pre_select; w->post_select = alsa_write_post_select; w->parse_config_or_die = alsa_parse_config_or_die; - w->shutdown = NULL; /* nothing to do */ w->free_config = alsa_free_config; w->help = (struct ggo_help) { .short_help = alsa_write_args_info_help,