aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sound.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/sound.cpp b/src/sound.cpp
index 485548b..4841f70 100644
--- a/src/sound.cpp
+++ b/src/sound.cpp
@@ -80,7 +80,7 @@ static pa_handle* pa_sound_device_new(const char *server,
p->read_length = 0;
p->read_index = 0;
- const int buffer_size = attr->maxlength;
+ const int buffer_size = attr->fragsize;
void *buffer = malloc(buffer_size);
if(!buffer) {
fprintf(stderr, "failed to allocate buffer for audio\n");
@@ -123,7 +123,7 @@ static pa_handle* pa_sound_device_new(const char *server,
}
r = pa_stream_connect_record(p->stream, dev, attr,
- (pa_stream_flags_t)(PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_ADJUST_LATENCY|PA_STREAM_AUTO_TIMING_UPDATE));
+ (pa_stream_flags_t)(PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_EARLY_REQUESTS|PA_STREAM_START_UNMUTED|PA_STREAM_AUTO_TIMING_UPDATE|PA_STREAM_DONT_MOVE));
if (r < 0) {
error = pa_context_errno(p->context);
@@ -255,8 +255,8 @@ int sound_device_get_by_name(SoundDevice *device, const char *device_name, const
buffer_attr.tlength = -1;
buffer_attr.prebuf = -1;
buffer_attr.minreq = -1;
- buffer_attr.maxlength = period_frame_size * audio_format_to_get_bytes_per_sample(audio_format) * num_channels; // 2/4 bytes/sample, @num_channels channels
- buffer_attr.fragsize = buffer_attr.maxlength;
+ buffer_attr.maxlength = -1;
+ buffer_attr.fragsize = period_frame_size * audio_format_to_get_bytes_per_sample(audio_format) * num_channels; // 2/4 bytes/sample, @num_channels channels
int error = 0;
pa_handle *handle = pa_sound_device_new(nullptr, description, device_name, description, &ss, &buffer_attr, &error);