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
This commit is contained in:
parent
b0ce43cde3
commit
c194f2de12
@ -444,12 +444,12 @@ gst_directsound_sink_prepare (GstAudioSink * asink,
|
|||||||
gst_util_uint64_scale_int (wfx.nAvgBytesPerSec, spec->buffer_time,
|
gst_util_uint64_scale_int (wfx.nAvgBytesPerSec, spec->buffer_time,
|
||||||
GST_MSECOND);
|
GST_MSECOND);
|
||||||
/* Make sure we make those numbers multiple of our sample size in bytes */
|
/* 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 =
|
spec->segsize =
|
||||||
gst_util_uint64_scale_int (wfx.nAvgBytesPerSec, spec->latency_time,
|
gst_util_uint64_scale_int (wfx.nAvgBytesPerSec, spec->latency_time,
|
||||||
GST_MSECOND);
|
GST_MSECOND);
|
||||||
spec->segsize += spec->segsize % spec->info.bpf;
|
spec->segsize -= spec->segsize % spec->info.bpf;
|
||||||
spec->segtotal = dsoundsink->buffer_size / spec->segsize;
|
spec->segtotal = dsoundsink->buffer_size / spec->segsize;
|
||||||
} else {
|
} else {
|
||||||
#ifdef WAVE_FORMAT_DOLBY_AC3_SPDIF
|
#ifdef WAVE_FORMAT_DOLBY_AC3_SPDIF
|
||||||
|
Loading…
x
Reference in New Issue
Block a user