Changeset 869:a8feb1a96af2 in roaraudio for libroardsp
- Timestamp:
- 10/01/08 16:05:21 (16 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroardsp/convert.c
r868 r869 343 343 } 344 344 345 ROAR_DBG("raor_conv_codec(out=%p, in=%p, samples=%i, from=%i(%s), to=%i(%s), bits=%i) = ?", 346 out, in, samples, from, roar_codec2str(from), to, roar_codec2str(to), bits); 347 345 348 if ( inbo != outbo ) { 346 349 if ( bits != 8 ) { // there is no need to talk about eddines on 8 bit data streams … … 354 357 nin = out; 355 358 } else { // what the hell is PDP eddines in 24 bit mode? 359 return -1; 360 } 361 } else if ( bits == 32 ) { 362 if ( (inbo == ROAR_CODEC_LE || inbo == ROAR_CODEC_BE) && (outbo == ROAR_CODEC_LE || outbo == ROAR_CODEC_BE) ) { 363 roar_conv_endian_32(out, nin, samples); 364 nin = out; 365 } else { // need to handle 32 PDP eddines here? 356 366 return -1; 357 367 } … … 509 519 } 510 520 521 int roar_conv_endian_32 (void * out, void * in, int samples) { 522 int32_t * ip = in; 523 int32_t * op = out; 524 union { 525 int32_t val; 526 char data[4]; 527 } c, h; 528 int i; 529 530 // may the holly optimizer save our souls! 531 532 ROAR_DBG("roar_conv_endian_32(out=%p, in=%p, samples=%i) = ?", out, in, samples); 533 534 for (i = 0; i < samples; i++) { 535 c.val = ip[i]; 536 h.data[0] = c.data[3]; 537 h.data[1] = c.data[2]; 538 h.data[2] = c.data[1]; 539 h.data[3] = c.data[0]; 540 op[i] = h.val; 541 } 542 543 return 0; 544 } 545 511 546 int roar_conv (void * out, void * in, int samples, struct roar_audio_info * from, struct roar_audio_info * to) { 512 547 void * ip = in;
Note: See TracChangeset
for help on using the changeset viewer.