diff options
Diffstat (limited to 'soundout')
| -rw-r--r-- | soundout/pulseout.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/soundout/pulseout.c b/soundout/pulseout.c index 5734991..1104ad0 100644 --- a/soundout/pulseout.c +++ b/soundout/pulseout.c @@ -47,7 +47,7 @@ static void pulseout_pause(struct sound_state *ss, int pause, int flush) {              pa_threaded_mainloop_wait(ps->pa_tm);            pa_operation_unref(op_flush);          } else { -          fprintf(stderr, "FLUSH ERR\n"); +          //fprintf(stderr, "FLUSH ERR\n");          }        }        pa_operation *op_cork = pa_stream_cork(ps->pa_s, 0, pulseout_success_cb, ps); @@ -56,7 +56,7 @@ static void pulseout_pause(struct sound_state *ss, int pause, int flush) {            pa_threaded_mainloop_wait(ps->pa_tm);          pa_operation_unref(op_cork);        } else { -        fprintf(stderr, "CORK ERR\n"); +        //fprintf(stderr, "CORK ERR\n");        }        pa_threaded_mainloop_unlock(ps->pa_tm);      } @@ -156,7 +156,14 @@ struct sound_state *pulseout_init(    );    if (!ps->pa_s) goto err;    pa_stream_set_write_callback(ps->pa_s, pulseout_cb, ps); -  if (pa_stream_connect_playback(ps->pa_s, 0, 0, 0, 0, 0) < 0) goto err; +  pa_buffer_attr battr = { +    .maxlength = -1, +    .tlength = pa_usec_to_bytes(1000*1000/30, &ss), +    .prebuf = -1, +    .minreq = -1, +    .fragsize = -1, +  }; +  if (pa_stream_connect_playback(ps->pa_s, 0, &battr, PA_STREAM_ADJUST_LATENCY, 0, 0) < 0) goto err;    return &ps->ss;  err:    pulseout_free(&ps->ss); | 
