diff options
Diffstat (limited to 'apps/codecs/libwavpack/unpack.c')
-rw-r--r-- | apps/codecs/libwavpack/unpack.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/codecs/libwavpack/unpack.c b/apps/codecs/libwavpack/unpack.c index e2e27b4999..917f487b20 100644 --- a/apps/codecs/libwavpack/unpack.c +++ b/apps/codecs/libwavpack/unpack.c | |||
@@ -17,6 +17,7 @@ | |||
17 | 17 | ||
18 | #include <string.h> | 18 | #include <string.h> |
19 | #include <math.h> | 19 | #include <math.h> |
20 | #include <stdlib.h> | ||
20 | 21 | ||
21 | #define LOSSY_MUTE | 22 | #define LOSSY_MUTE |
22 | 23 | ||
@@ -513,6 +514,7 @@ static void fixup_samples (WavpackStream *wps, long *buffer, ulong sample_count) | |||
513 | 514 | ||
514 | if (flags & HYBRID_FLAG) { | 515 | if (flags & HYBRID_FLAG) { |
515 | long min_value, max_value, min_shifted, max_shifted; | 516 | long min_value, max_value, min_shifted, max_shifted; |
517 | min_value = max_value = min_shifted = max_shifted = 0; | ||
516 | 518 | ||
517 | switch (flags & BYTES_STORED) { | 519 | switch (flags & BYTES_STORED) { |
518 | case 0: | 520 | case 0: |
@@ -531,8 +533,9 @@ static void fixup_samples (WavpackStream *wps, long *buffer, ulong sample_count) | |||
531 | break; | 533 | break; |
532 | 534 | ||
533 | case 3: | 535 | case 3: |
534 | min_shifted = (min_value = -(long)2147483648 >> shift) << shift; | 536 | // 0x80000000 is the same as 2147483648 |
535 | max_shifted = (max_value = (long) 2147483647 >> shift) << shift; | 537 | min_shifted = (min_value = -0x80000000 >> shift) << shift; |
538 | max_shifted = (max_value = 0x80000000 >> shift) << shift; | ||
536 | break; | 539 | break; |
537 | } | 540 | } |
538 | 541 | ||