From 009bc15f3397252e9e3954ae4af15ffcdbdeac69 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Tue, 18 Jan 2022 03:03:30 +0900 Subject: [PATCH] wasapi2ringbuffer: Fix for desynced buffer-size and segsize GstAudioRingBufferSpec::segsize has been configured by using device period but GstWasapi2RingBuffer was referencing the buffer size returned by IAudioClient::GetBufferSize() which is most likely larger than device period. Fixing to sync them. Part-of: --- .../gst-plugins-bad/sys/wasapi2/gstwasapi2ringbuffer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2ringbuffer.cpp b/subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2ringbuffer.cpp index 08ce65a516..3b04e6c0ac 100644 --- a/subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2ringbuffer.cpp +++ b/subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2ringbuffer.cpp @@ -1053,6 +1053,12 @@ gst_wasapi2_ring_buffer_acquire (GstAudioRingBuffer * buf, g_assert (period > 0); + if (self->buffer_size > period) { + GST_INFO_OBJECT (self, "Updating buffer size %d -> %d", self->buffer_size, + period); + self->buffer_size = period; + } + spec->segsize = period * GST_AUDIO_INFO_BPF (&buf->spec.info); spec->segtotal = 2;