Changeset 2742:a5c3ca61e61d in roaraudio
- Timestamp:
- 09/21/09 02:24:56 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroardsp/convert.c
r2741 r2742 215 215 case 1: return roar_conv_chans_2to116(out, in, samples); 216 216 case 3: return roar_conv_chans_2to316(out, in, samples); 217 case 4: return roar_conv_chans_2to416(out, in, samples); 218 case 5: return roar_conv_chans_2to516(out, in, samples); 219 case 6: return roar_conv_chans_2to616(out, in, samples); 217 220 default: return -1; 218 221 } … … 373 376 374 377 int roar_conv_chans_2to48 (void * out, void * in, int samples); 375 int roar_conv_chans_2to416 (void * out, void * in, int samples); 378 int roar_conv_chans_2to416 (void * out, void * in, int samples) { 379 int16_t * ip = (int16_t*) in, * op = (int16_t*) out; 380 int i, h; 381 382 samples -= 2; 383 384 i = samples; 385 h = (samples / 2) * 4; 386 387 for (; i >= 0; i -= 2, h -= 3) { 388 op[h+0] = ip[i+0]; 389 op[h+1] = ip[i+1]; 390 op[h+2] = ip[i+0]; 391 op[h+3] = ip[i+1]; 392 } 393 394 return 0; 395 } 396 376 397 int roar_conv_chans_2to58 (void * out, void * in, int samples); 377 int roar_conv_chans_2to516 (void * out, void * in, int samples); 398 int roar_conv_chans_2to516 (void * out, void * in, int samples) { 399 int16_t * ip = (int16_t*) in, * op = (int16_t*) out; 400 int i, h; 401 402 samples -= 2; 403 404 i = samples; 405 h = (samples / 2) * 5; 406 407 for (; i >= 0; i -= 2, h -= 3) { 408 op[h+0] = ip[i+0]; 409 op[h+1] = ip[i+1]; 410 op[h+2] = ((int)ip[i + 0] + (int)ip[i + 1]) / 2; 411 op[h+3] = ip[i+0]; 412 op[h+4] = ip[i+1]; 413 } 414 415 return 0; 416 } 378 417 int roar_conv_chans_2to68 (void * out, void * in, int samples); 379 int roar_conv_chans_2to616 (void * out, void * in, int samples); 418 int roar_conv_chans_2to616 (void * out, void * in, int samples) { 419 int16_t * ip = (int16_t*) in, * op = (int16_t*) out; 420 int i, h; 421 422 samples -= 2; 423 424 i = samples; 425 h = (samples / 2) * 5; 426 427 for (; i >= 0; i -= 2, h -= 3) { 428 op[h+0] = ip[i+0]; 429 op[h+1] = ip[i+1]; 430 op[h+2] = ((int)ip[i + 0] + (int)ip[i + 1]) / 2; 431 op[h+3] = op[h+2]; 432 op[h+4] = ip[i+0]; 433 op[h+5] = ip[i+1]; 434 } 435 436 return 0; 437 } 380 438 381 439
Note: See TracChangeset
for help on using the changeset viewer.