summaryrefslogtreecommitdiffstats
path: root/ext/pulse/pulsesrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pulse/pulsesrc.c')
-rw-r--r--ext/pulse/pulsesrc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/pulse/pulsesrc.c b/ext/pulse/pulsesrc.c
index 1da79366..d53acf8e 100644
--- a/ext/pulse/pulsesrc.c
+++ b/ext/pulse/pulsesrc.c
@@ -1014,8 +1014,11 @@ gst_pulsesrc_prepare (GstAudioSrc * asrc, GstRingBufferSpec * spec)
GST_INFO_OBJECT (pulsesrc, "fragsize: %d (wanted %d)",
actual->fragsize, wanted.fragsize);
- /* adjust latency again */
- spec->segsize = actual->fragsize;
+ if (actual->fragsize >= wanted.fragsize) {
+ spec->segsize = actual->fragsize;
+ } else {
+ spec->segsize = actual->fragsize * (wanted.fragsize / actual->fragsize);
+ }
spec->segtotal = actual->maxlength / spec->segsize;
pa_threaded_mainloop_unlock (pulsesrc->mainloop);