File tree Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Original file line number Diff line number Diff line change @@ -342,7 +342,10 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
342
342
} else {
343
343
// For unsigned samples set to the middle which is "quiet"
344
344
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
+ }
346
349
} else {
347
350
memset (hword_buffer , 128 , length * (self -> bits_per_sample / 8 ));
348
351
}
Original file line number Diff line number Diff line change @@ -240,8 +240,24 @@ audioio_get_buffer_result_t audiofilters_filter_get_buffer(audiofilters_filter_o
240
240
}
241
241
}
242
242
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
+ uint16_t * uword_buffer = (uint16_t * )word_buffer ;
250
+ while (length -- ) {
251
+ * uword_buffer ++ = 32768 ;
252
+ }
253
+ } else {
254
+ memset (hword_buffer , 128 , length * (self -> bits_per_sample / 8 ));
255
+ }
256
+ }
257
+
258
+ length = 0 ;
259
+ } else {
260
+ // we have a sample to play and filter
245
261
// Determine how many bytes we can process to our buffer, the less of the sample we have left and our buffer remaining
246
262
uint32_t n = MIN (self -> sample_buffer_length , length );
247
263
You can’t perform that action at this time.
0 commit comments