diff options
author | Jens Arnold <amiconn@rockbox.org> | 2006-03-26 17:41:36 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2006-03-26 17:41:36 +0000 |
commit | 8083e8c0de4d03985afe72f83bd9c76ce715ce41 (patch) | |
tree | 5ba6353ce6476919b0e1ab9434be8622d865d3c7 /firmware | |
parent | d9ef5980df35fa4c7dc60fddf781cd71463c9746 (diff) | |
download | rockbox-8083e8c0de4d03985afe72f83bd9c76ce715ce41.tar.gz rockbox-8083e8c0de4d03985afe72f83bd9c76ce715ce41.zip |
Fixed potential sample overflow in variable stereo width > 100% and karaoke mode, both hwcodec and swcodec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9263 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/sound.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/firmware/sound.c b/firmware/sound.c index 88412c4094..70f7346599 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -504,12 +504,12 @@ static void set_channel_config(void) | |||
504 | } | 504 | } |
505 | else | 505 | else |
506 | { | 506 | { |
507 | fp_straight = - (1<<19); | 507 | /* straight = - (1 + width) / (2 * width) */ |
508 | fp_cross = ((2 * fp_width / (((1<<19) + fp_width) >> 10)) | 508 | fp_straight = - ((((1<<19) + fp_width) / (fp_width >> 9)) << 9); |
509 | << 9) - (1<<19); | 509 | fp_cross = (1<<19) + fp_straight; |
510 | } | 510 | } |
511 | val_ll = val_rr = fp_straight & 0xFFFFF; | 511 | val_ll = val_rr = fp_straight & 0xfffff; |
512 | val_lr = val_rl = fp_cross & 0xFFFFF; | 512 | val_lr = val_rl = fp_cross & 0xfffff; |
513 | } | 513 | } |
514 | break; | 514 | break; |
515 | 515 | ||
@@ -528,10 +528,10 @@ static void set_channel_config(void) | |||
528 | break; | 528 | break; |
529 | 529 | ||
530 | case SOUND_CHAN_KARAOKE: | 530 | case SOUND_CHAN_KARAOKE: |
531 | val_ll = 0x80001; | 531 | val_ll = 0xc0000; |
532 | val_lr = 0x7ffff; | 532 | val_lr = 0x40000; |
533 | val_rl = 0x7ffff; | 533 | val_rl = 0x40000; |
534 | val_rr = 0x80001; | 534 | val_rr = 0xc0000; |
535 | break; | 535 | break; |
536 | } | 536 | } |
537 | 537 | ||