Skip to content

Commit 63c3e39

Browse files
committed
Fix error with NULL sample handling in audiofilters.Filter.
1 parent 24a8927 commit 63c3e39

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

shared-module/audiofilters/Filter.c

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,21 @@ audioio_get_buffer_result_t audiofilters_filter_get_buffer(audiofilters_filter_o
240240
}
241241
}
242242

243-
// If we have a sample, filter it
244-
if (self->sample != NULL) {
243+
if (self->sample == NULL) {
244+
if (self->samples_signed) {
245+
memset(word_buffer, 0, length * (self->bits_per_sample / 8));
246+
} else {
247+
// For unsigned samples set to the middle which is "quiet"
248+
if (MP_LIKELY(self->bits_per_sample == 16)) {
249+
memset(word_buffer, 32768, length * (self->bits_per_sample / 8));
250+
} else {
251+
memset(hword_buffer, 128, length * (self->bits_per_sample / 8));
252+
}
253+
}
254+
255+
length = 0;
256+
} else {
257+
// we have a sample to play and filter
245258
// Determine how many bytes we can process to our buffer, the less of the sample we have left and our buffer remaining
246259
uint32_t n = MIN(self->sample_buffer_length, length);
247260

0 commit comments

Comments
 (0)