49 lines
1.2 KiB
Diff
49 lines
1.2 KiB
Diff
Last-Update: 2014-11-15
|
|
Forwarded: yes
|
|
From: Adam Sampson <ats@offog.org>
|
|
Bug-Debian: http://bugs.debian.org/684600
|
|
Description: fix large files processing.
|
|
|
|
--- a/src/core_mode.c
|
|
+++ b/src/core_mode.c
|
|
@@ -309,10 +309,10 @@
|
|
|
|
if (sec >= 60)
|
|
st_error("invalid value for seconds: [%d]",sec);
|
|
|
|
- bytes = (wlong)(min * info->rate * 60) +
|
|
- (wlong)(sec * info->rate);
|
|
+ bytes = (((wlong)min) * info->rate * 60) +
|
|
+ (((wlong)sec) * info->rate);
|
|
|
|
return bytes;
|
|
}
|
|
|
|
@@ -357,11 +357,11 @@
|
|
|
|
if (frames >= 75)
|
|
st_error("invalid value for frames: [%d]",frames);
|
|
|
|
- bytes = (wlong)(min * CD_RATE * 60) +
|
|
- (wlong)(sec * CD_RATE) +
|
|
- (wlong)(frames * CD_BLOCK_SIZE);
|
|
+ bytes = (((wlong)min) * CD_RATE * 60) +
|
|
+ (((wlong)sec) * CD_RATE) +
|
|
+ (((wlong)frames) * CD_BLOCK_SIZE);
|
|
|
|
return bytes;
|
|
}
|
|
|
|
@@ -402,10 +402,10 @@
|
|
st_error("invalid value for seconds: [%d]",sec);
|
|
|
|
nearest_byte = (int)((((double)ms * (double)info->rate) / 1000.0) + 0.5);
|
|
|
|
- bytes = (wlong)(min * info->rate * 60) +
|
|
- (wlong)(sec * info->rate);
|
|
+ bytes = (((wlong)min) * info->rate * 60) +
|
|
+ (((wlong)sec) * info->rate);
|
|
|
|
if (PROB_NOT_CD(info)) {
|
|
bytes += nearest_byte;
|
|
}
|