308 |
if (source * resample_to_channels + samplewidth > size) |
if (source * resample_to_channels + samplewidth > size) |
309 |
break; |
break; |
310 |
|
|
311 |
#if 0 /* Linear resampling, TODO: soundquality fixes */ |
#if 0 /* Linear resampling, TODO: soundquality fixes (LP filter) */ |
312 |
if (samplewidth == 1) |
if (samplewidth == 1) |
313 |
{ |
{ |
314 |
sint8 cval1, cval2; |
sint8 cval1, cval2; |
321 |
in + ((source + 1) * resample_to_channels * samplewidth) + |
in + ((source + 1) * resample_to_channels * samplewidth) + |
322 |
(samplewidth * j), samplewidth); |
(samplewidth * j), samplewidth); |
323 |
|
|
324 |
cval1 += (cval2 * part) / 100; |
cval1 += (sint8)(cval2 * part) / 100; |
325 |
|
|
326 |
memcpy(*out + (i * resample_to_channels * samplewidth) + |
memcpy(*out + (i * resample_to_channels * samplewidth) + |
327 |
(samplewidth * j), &cval1, samplewidth); |
(samplewidth * j), &cval1, samplewidth); |
339 |
in + ((source + 1) * resample_to_channels * samplewidth) + |
in + ((source + 1) * resample_to_channels * samplewidth) + |
340 |
(samplewidth * j), samplewidth); |
(samplewidth * j), samplewidth); |
341 |
|
|
342 |
sval1 += (sval2 * part) / 100; |
sval1 += (sint16)(sval2 * part) / 100; |
343 |
|
|
344 |
memcpy(*out + (i * resample_to_channels * samplewidth) + |
memcpy(*out + (i * resample_to_channels * samplewidth) + |
345 |
(samplewidth * j), &sval1, samplewidth); |
(samplewidth * j), &sval1, samplewidth); |