equal
deleted
inserted
replaced
259 |
259 |
260 case AUDIO_S32LSB: |
260 case AUDIO_S32LSB: |
261 { |
261 { |
262 const Uint32 *src32 = (Uint32 *) src; |
262 const Uint32 *src32 = (Uint32 *) src; |
263 Uint32 *dst32 = (Uint32 *) dst; |
263 Uint32 *dst32 = (Uint32 *) dst; |
264 Sint32 src1, src2; |
264 Sint64 src1, src2; |
265 Sint64 dst_sample; |
265 Sint64 dst_sample; |
266 const Sint64 max_audioval = ((((Sint64) 1) << (32 - 1)) - 1); |
266 const Sint64 max_audioval = ((((Sint64) 1) << (32 - 1)) - 1); |
267 const Sint64 min_audioval = -(((Sint64) 1) << (32 - 1)); |
267 const Sint64 min_audioval = -(((Sint64) 1) << (32 - 1)); |
268 |
268 |
269 len /= 4; |
269 len /= 4; |
270 while (len--) { |
270 while (len--) { |
271 src1 = (Sint32) SDL_SwapLE32(*src32); |
271 src1 = (Sint64) ((Sint32) SDL_SwapLE32(*src32)); |
272 src32++; |
272 src32++; |
273 ADJUST_VOLUME(src1, volume); |
273 ADJUST_VOLUME(src1, volume); |
274 src2 = (Sint32) SDL_SwapLE32(*dst32); |
274 src2 = (Sint64) ((Sint32) SDL_SwapLE32(*dst32)); |
275 dst_sample = src1 + src2; |
275 dst_sample = src1 + src2; |
276 if (dst_sample > max_audioval) { |
276 if (dst_sample > max_audioval) { |
277 dst_sample = max_audioval; |
277 dst_sample = max_audioval; |
278 } else if (dst_sample < min_audioval) { |
278 } else if (dst_sample < min_audioval) { |
279 dst_sample = min_audioval; |
279 dst_sample = min_audioval; |
285 |
285 |
286 case AUDIO_S32MSB: |
286 case AUDIO_S32MSB: |
287 { |
287 { |
288 const Uint32 *src32 = (Uint32 *) src; |
288 const Uint32 *src32 = (Uint32 *) src; |
289 Uint32 *dst32 = (Uint32 *) dst; |
289 Uint32 *dst32 = (Uint32 *) dst; |
290 Sint32 src1, src2; |
290 Sint64 src1, src2; |
291 Sint64 dst_sample; |
291 Sint64 dst_sample; |
292 const Sint64 max_audioval = ((((Sint64) 1) << (32 - 1)) - 1); |
292 const Sint64 max_audioval = ((((Sint64) 1) << (32 - 1)) - 1); |
293 const Sint64 min_audioval = -(((Sint64) 1) << (32 - 1)); |
293 const Sint64 min_audioval = -(((Sint64) 1) << (32 - 1)); |
294 |
294 |
295 len /= 4; |
295 len /= 4; |
296 while (len--) { |
296 while (len--) { |
297 src1 = (Sint32) SDL_SwapBE32(*src32); |
297 src1 = (Sint64) ((Sint32) SDL_SwapBE32(*src32)); |
298 src32++; |
298 src32++; |
299 ADJUST_VOLUME(src1, volume); |
299 ADJUST_VOLUME(src1, volume); |
300 src2 = (Sint32) SDL_SwapBE32(*dst32); |
300 src2 = (Sint64) ((Sint32) SDL_SwapBE32(*dst32)); |
301 dst_sample = src1 + src2; |
301 dst_sample = src1 + src2; |
302 if (dst_sample > max_audioval) { |
302 if (dst_sample > max_audioval) { |
303 dst_sample = max_audioval; |
303 dst_sample = max_audioval; |
304 } else if (dst_sample < min_audioval) { |
304 } else if (dst_sample < min_audioval) { |
305 dst_sample = min_audioval; |
305 dst_sample = min_audioval; |