Skip to content

Commit 033b92a

Browse files
committed
Set AudioInputBuffers to zero in case of null PipeWire buffer
1 parent 276f171 commit 033b92a

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

src/soundio/pipewireenumerator.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "soundio/soundmanager.h"
1919
#include "soundio/soundmanagerutil.h"
2020
#include "util/assert.h"
21+
#include "util/sample.h"
2122
#include "util/trace.h"
2223
#include "util/types.h"
2324
#include "waveform/visualplayposition.h"
@@ -530,6 +531,8 @@ void PipewireEnumerator::callback(const spa_io_position* pos) {
530531
pInputBuffer[i * 2] = buffer[i];
531532
pInputBuffer[i * 2 + 1] = buffer[i];
532533
}
534+
} else {
535+
SampleUtil::fill(pInputBuffer, 0, framesPerBuffer * 2);
533536
}
534537
} else {
535538
const float* bufferFL = static_cast<const float*>(
@@ -538,6 +541,10 @@ void PipewireEnumerator::callback(const spa_io_position* pos) {
538541
for (uint64_t i = 0; i < framesPerBuffer; i++) {
539542
pInputBuffer[iChannelBase + i * 2] = bufferFL[i];
540543
}
544+
} else {
545+
for (uint64_t i = 0; i < framesPerBuffer; i++) {
546+
pInputBuffer[iChannelBase + i * 2] = 0;
547+
}
541548
}
542549

543550
const float* bufferFR = static_cast<const float*>(
@@ -546,6 +553,10 @@ void PipewireEnumerator::callback(const spa_io_position* pos) {
546553
for (uint64_t i = 0; i < framesPerBuffer; i++) {
547554
pInputBuffer[iChannelBase + 1 + i * 2] = bufferFR[i];
548555
}
556+
} else {
557+
for (uint64_t i = 0; i < framesPerBuffer; i++) {
558+
pInputBuffer[iChannelBase + 1 + i * 2] = 0;
559+
}
549560
}
550561
}
551562
}

0 commit comments

Comments
 (0)