diff options
Diffstat (limited to 'ext/pulse')
-rw-r--r-- | ext/pulse/pulsesrc.c | 7 |
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); |