diff options
-rw-r--r-- | apps/pcmbuf.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/apps/pcmbuf.c b/apps/pcmbuf.c index 4277dca379..f1988fd3f4 100644 --- a/apps/pcmbuf.c +++ b/apps/pcmbuf.c | |||
@@ -353,7 +353,7 @@ static void crossfade_process_buffer( | |||
353 | /* Prevent pcmbuffer from wrapping. */ | 353 | /* Prevent pcmbuffer from wrapping. */ |
354 | if (pos >= pcmbuf_size) | 354 | if (pos >= pcmbuf_size) |
355 | pos -= pcmbuf_size; | 355 | pos -= pcmbuf_size; |
356 | blocksize = MIN(pcmbuf_size - pos, blocksize); | 356 | blocksize = MIN((pcmbuf_size - pos)/2, blocksize); |
357 | buf = (short *)&audiobuffer[pos]; | 357 | buf = (short *)&audiobuffer[pos]; |
358 | 358 | ||
359 | fade_out_rem -= blocksize; | 359 | fade_out_rem -= blocksize; |
@@ -413,14 +413,14 @@ static void crossfade_start(void) | |||
413 | fade_out_rem = NATIVE_FREQUENCY | 413 | fade_out_rem = NATIVE_FREQUENCY |
414 | * global_settings.crossfade_fade_out_duration * 2; | 414 | * global_settings.crossfade_fade_out_duration * 2; |
415 | 415 | ||
416 | /* Truncate fade out duration if necessary. */ | ||
417 | if (fade_out_rem > crossfade_rem) | ||
418 | fade_out_rem = crossfade_rem; | ||
419 | |||
420 | /* We want only to modify the last part of the buffer. */ | 416 | /* We want only to modify the last part of the buffer. */ |
421 | if (crossfade_rem > fade_out_rem + fade_out_delay) | 417 | if (crossfade_rem > fade_out_rem + fade_out_delay) |
422 | crossfade_rem = fade_out_rem + fade_out_delay; | 418 | crossfade_rem = fade_out_rem + fade_out_delay; |
423 | 419 | ||
420 | /* Truncate fade out duration if necessary. */ | ||
421 | if (crossfade_rem < fade_out_rem + fade_out_delay) | ||
422 | fade_out_rem -= (fade_out_rem + fade_out_delay) - crossfade_rem; | ||
423 | |||
424 | /* Get also fade in duration and delays from settings. */ | 424 | /* Get also fade in duration and delays from settings. */ |
425 | crossfade_fade_in_rem = NATIVE_FREQUENCY | 425 | crossfade_fade_in_rem = NATIVE_FREQUENCY |
426 | * global_settings.crossfade_fade_in_duration * 2; | 426 | * global_settings.crossfade_fade_in_duration * 2; |