Skip to content

Commit 0aab00d

Browse files
committed
Fix 16-bit unsigned integer silence within audio effects.
1 parent 63c3e39 commit 0aab00d

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

shared-module/audiodelays/Echo.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,10 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
342342
} else {
343343
// For unsigned samples set to the middle which is "quiet"
344344
if (MP_LIKELY(self->bits_per_sample == 16)) {
345-
memset(word_buffer, 32768, length * (self->bits_per_sample / 8));
345+
uint16_t *uword_buffer = (uint16_t *)word_buffer;
346+
while (length--) {
347+
*uword_buffer++ = 32768;
348+
}
346349
} else {
347350
memset(hword_buffer, 128, length * (self->bits_per_sample / 8));
348351
}

shared-module/audiofilters/Filter.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,10 @@ audioio_get_buffer_result_t audiofilters_filter_get_buffer(audiofilters_filter_o
246246
} else {
247247
// For unsigned samples set to the middle which is "quiet"
248248
if (MP_LIKELY(self->bits_per_sample == 16)) {
249-
memset(word_buffer, 32768, length * (self->bits_per_sample / 8));
249+
uint16_t *uword_buffer = (uint16_t *)word_buffer;
250+
while (length--) {
251+
*uword_buffer++ = 32768;
252+
}
250253
} else {
251254
memset(hword_buffer, 128, length * (self->bits_per_sample / 8));
252255
}

0 commit comments

Comments
 (0)