Changeset 852:de662ac08ef4 in roaraudio
- Timestamp:
- 09/28/08 14:59:37 (16 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroardsp/convert.h
r850 r852 56 56 int roar_conv_chans (void * out, void * in, int samples, int from, int to, int bits); 57 57 58 // implmented? 59 int roar_conv_chans_1ton8 (void * out, void * in, int samples, int to); // yes 60 int roar_conv_chans_1ton16 (void * out, void * in, int samples, int to); // yes 61 int roar_conv_chans_1to28 (void * out, void * in, int samples); // yes 62 int roar_conv_chans_1to216 (void * out, void * in, int samples); // yes 63 int roar_conv_chans_nto18 (void * out, void * in, int samples, int from); // yes 64 int roar_conv_chans_nto116 (void * out, void * in, int samples, int from); // yes 65 int roar_conv_chans_2to18 (void * out, void * in, int samples); // yes 66 int roar_conv_chans_2to116 (void * out, void * in, int samples); // yes 58 // implmented? working 59 int roar_conv_chans_1ton8 (void * out, void * in, int samples, int to); // yes ? 60 int roar_conv_chans_1ton16 (void * out, void * in, int samples, int to); // yes yes 61 int roar_conv_chans_1to28 (void * out, void * in, int samples); // yes yes 62 int roar_conv_chans_1to216 (void * out, void * in, int samples); // yes yes 63 int roar_conv_chans_nto18 (void * out, void * in, int samples, int from); // yes ? 64 int roar_conv_chans_nto116 (void * out, void * in, int samples, int from); // yes ? 65 int roar_conv_chans_2to18 (void * out, void * in, int samples); // yes yes 66 int roar_conv_chans_2to116 (void * out, void * in, int samples); // yes yes 67 67 68 68 int roar_conv_rate (void * out, void * in, int samples, int from, int to, int bits, int channels); -
libroardsp/convert.c
r850 r852 203 203 int roar_conv_chans_1to28 (void * out, void * in, int samples) { 204 204 char * ip = (char*) in, * op = (char*) out; 205 int i ;206 207 samples = (samples - 1) * 2;208 209 for (i = samples; i >= 0; i -= 2) {210 op[i + 0] = ip[ i];211 op[i + 1] = ip[ i];205 int i, h; 206 207 samples--; 208 209 for (i = (h = samples) * 2; i >= 0; i -= 2, h--) { 210 op[i + 0] = ip[h]; 211 op[i + 1] = ip[h]; 212 212 } 213 213 … … 229 229 int roar_conv_chans_1to216 (void * out, void * in, int samples) { 230 230 int16_t * ip = (int16_t*) in, * op = (int16_t*) out; 231 int i ;232 233 samples = (samples - 1) * 2;234 235 for (i = samples; i >= 0; i -= 2) {236 op[i + 0] = ip[ i];237 op[i + 1] = ip[ i];231 int i, h; 232 233 samples--; 234 235 for (i = (h = samples) * 2; i >= 0; i -= 2, h--) { 236 op[i + 0] = ip[h]; 237 op[i + 1] = ip[h]; 238 238 } 239 239 … … 264 264 int roar_conv_chans_2to18 (void * out, void * in, int samples) { 265 265 int8_t * ip = (int8_t*) in, * op = (int8_t*) out; 266 int i ;266 int i, h; 267 267 268 268 samples -= 2; 269 269 270 for ( i = samples; i >= 0; i -= 2)271 op[ i] = ((int)ip[i + 0] + (int)ip[i + 1]) / 2;270 for (h = (i = samples) / 2; i >= 0; i -= 2, h--) 271 op[h] = ((int)ip[i + 0] + (int)ip[i + 1]) / 2; 272 272 273 273 return 0; … … 297 297 int roar_conv_chans_2to116 (void * out, void * in, int samples) { 298 298 int16_t * ip = (int16_t*) in, * op = (int16_t*) out; 299 int i ;299 int i, h; 300 300 301 301 samples -= 2; 302 302 303 for ( i = samples; i >= 0; i -= 2)304 op[ i] = ((int)ip[i + 0] + (int)ip[i + 1]) / 2;303 for (h = (i = samples) / 2; i >= 0; i -= 2, h--) 304 op[h] = ((int)ip[i + 0] + (int)ip[i + 1]) / 2; 305 305 306 306 return 0; … … 341 341 if ( ins && !outs ) { 342 342 switch (bits) { 343 case 8: roar_conv_codec_s2u8( out, in, samples); 343 case 8: roar_conv_codec_s2u8( out, in, samples); break; 344 344 case 16: roar_conv_codec_s2u16(out, in, samples); break; 345 345 case 32: roar_conv_codec_s2u32(out, in, samples); break; … … 350 350 } else if ( !ins && outs ) { 351 351 switch (bits) { 352 case 8: roar_conv_codec_u2s8( out, in, samples); 352 case 8: roar_conv_codec_u2s8( out, in, samples); break; 353 353 case 16: roar_conv_codec_u2s16(out, in, samples); break; 354 354 case 32: roar_conv_codec_u2s32(out, in, samples); break; … … 445 445 } 446 446 447 if ( from->codec != to->codec ) { 448 if ( raor_conv_codec (out, ip, samples, from->codec, to->codec, to->bits) == -1 ) 449 return -1; 450 else 451 ip = out; 452 } 453 447 454 if ( from->rate != to->rate ) { 448 455 if ( roar_conv_rate(out, ip, samples, from->rate, to->rate, to->bits, from->channels) == -1 ) … … 454 461 if ( from->channels != to->channels ) { 455 462 if ( roar_conv_chans(out, ip, samples, from->channels, to->channels, to->bits) == -1 ) 456 return -1;457 else458 ip = out;459 }460 461 if ( from->codec != to->codec ) {462 if ( raor_conv_codec (out, ip, samples, from->codec, to->codec, to->bits) == -1 )463 463 return -1; 464 464 else
Note: See TracChangeset
for help on using the changeset viewer.