From c194f2de1206ebd41b3d7b8b2f4902c48dc5ebb8 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Thu, 5 Mar 2015 17:54:43 -0300 Subject: [PATCH] directsoundsink: fix modulo math with ringbuffer parameters To get a multiple of bpf use a subtraction and not an addition https://bugzilla.gnome.org/show_bug.cgi?id=745684 --- sys/directsound/gstdirectsoundsink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c index 56b04187c2..bee96d16ab 100644 --- a/sys/directsound/gstdirectsoundsink.c +++ b/sys/directsound/gstdirectsoundsink.c @@ -444,12 +444,12 @@ gst_directsound_sink_prepare (GstAudioSink * asink, gst_util_uint64_scale_int (wfx.nAvgBytesPerSec, spec->buffer_time, GST_MSECOND); /* Make sure we make those numbers multiple of our sample size in bytes */ - dsoundsink->buffer_size += dsoundsink->buffer_size % spec->info.bpf; + dsoundsink->buffer_size -= dsoundsink->buffer_size % spec->info.bpf; spec->segsize = gst_util_uint64_scale_int (wfx.nAvgBytesPerSec, spec->latency_time, GST_MSECOND); - spec->segsize += spec->segsize % spec->info.bpf; + spec->segsize -= spec->segsize % spec->info.bpf; spec->segtotal = dsoundsink->buffer_size / spec->segsize; } else { #ifdef WAVE_FORMAT_DOLBY_AC3_SPDIF