summaryrefslogtreecommitdiff
path: root/apps/codecs/liba52/downmix.c
diff options
context:
space:
mode:
authorDave Hooper <dave@beermex.com>2010-02-17 00:49:53 +0000
committerDave Hooper <dave@beermex.com>2010-02-17 00:49:53 +0000
commit42774d3128b91d5a37344cb40d56d3c4d147e5f2 (patch)
treebf336b407992ec9a5e454556f3351e3f8a0d10de /apps/codecs/liba52/downmix.c
parent62257ebc38bc0a3095b25dd0f58c4c8215edf602 (diff)
downloadrockbox-42774d3128b91d5a37344cb40d56d3c4d147e5f2.tar.gz
rockbox-42774d3128b91d5a37344cb40d56d3c4d147e5f2.zip
Merge from branches/mdctexp - faster ifft+imdct in codec lib
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24712 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/liba52/downmix.c')
-rw-r--r--apps/codecs/liba52/downmix.c76
1 files changed, 38 insertions, 38 deletions
diff --git a/apps/codecs/liba52/downmix.c b/apps/codecs/liba52/downmix.c
index 7bbf3793f0..2e8567bceb 100644
--- a/apps/codecs/liba52/downmix.c
+++ b/apps/codecs/liba52/downmix.c
@@ -329,7 +329,7 @@ int a52_downmix_coeff (level_t * coeff, int acmod, int output, level_t level,
329 return -1; /* NOTREACHED */ 329 return -1; /* NOTREACHED */
330} 330}
331 331
332static void mix2to1 (sample_t * dest, sample_t * src, sample_t bias) 332static void mix2to1 (sample_t * dest, sample_t * src)
333{ 333{
334 int i; 334 int i;
335 335
@@ -337,7 +337,7 @@ static void mix2to1 (sample_t * dest, sample_t * src, sample_t bias)
337 dest[i] += BIAS (src[i]); 337 dest[i] += BIAS (src[i]);
338} 338}
339 339
340static void mix3to1 (sample_t * samples, sample_t bias) 340static void mix3to1 (sample_t * samples)
341{ 341{
342 int i; 342 int i;
343 343
@@ -345,7 +345,7 @@ static void mix3to1 (sample_t * samples, sample_t bias)
345 samples[i] += BIAS (samples[i + 256] + samples[i + 512]); 345 samples[i] += BIAS (samples[i + 256] + samples[i + 512]);
346} 346}
347 347
348static void mix4to1 (sample_t * samples, sample_t bias) 348static void mix4to1 (sample_t * samples)
349{ 349{
350 int i; 350 int i;
351 351
@@ -354,7 +354,7 @@ static void mix4to1 (sample_t * samples, sample_t bias)
354 samples[i + 768]); 354 samples[i + 768]);
355} 355}
356 356
357static void mix5to1 (sample_t * samples, sample_t bias) 357static void mix5to1 (sample_t * samples)
358{ 358{
359 int i; 359 int i;
360 360
@@ -363,7 +363,7 @@ static void mix5to1 (sample_t * samples, sample_t bias)
363 samples[i + 768] + samples[i + 1024]); 363 samples[i + 768] + samples[i + 1024]);
364} 364}
365 365
366static void mix3to2 (sample_t * samples, sample_t bias) 366static void mix3to2 (sample_t * samples)
367{ 367{
368 int i; 368 int i;
369 sample_t common; 369 sample_t common;
@@ -375,7 +375,7 @@ static void mix3to2 (sample_t * samples, sample_t bias)
375 } 375 }
376} 376}
377 377
378static void mix21to2 (sample_t * left, sample_t * right, sample_t bias) 378static void mix21to2 (sample_t * left, sample_t * right)
379{ 379{
380 int i; 380 int i;
381 sample_t common; 381 sample_t common;
@@ -387,7 +387,7 @@ static void mix21to2 (sample_t * left, sample_t * right, sample_t bias)
387 } 387 }
388} 388}
389 389
390static void mix21toS (sample_t * samples, sample_t bias) 390static void mix21toS (sample_t * samples)
391{ 391{
392 int i; 392 int i;
393 sample_t surround; 393 sample_t surround;
@@ -399,7 +399,7 @@ static void mix21toS (sample_t * samples, sample_t bias)
399 } 399 }
400} 400}
401 401
402static void mix31to2 (sample_t * samples, sample_t bias) 402static void mix31to2 (sample_t * samples)
403{ 403{
404 int i; 404 int i;
405 sample_t common; 405 sample_t common;
@@ -411,7 +411,7 @@ static void mix31to2 (sample_t * samples, sample_t bias)
411 } 411 }
412} 412}
413 413
414static void mix31toS (sample_t * samples, sample_t bias) 414static void mix31toS (sample_t * samples)
415{ 415{
416 int i; 416 int i;
417 sample_t common, surround; 417 sample_t common, surround;
@@ -424,7 +424,7 @@ static void mix31toS (sample_t * samples, sample_t bias)
424 } 424 }
425} 425}
426 426
427static void mix22toS (sample_t * samples, sample_t bias) 427static void mix22toS (sample_t * samples)
428{ 428{
429 int i; 429 int i;
430 sample_t surround; 430 sample_t surround;
@@ -436,7 +436,7 @@ static void mix22toS (sample_t * samples, sample_t bias)
436 } 436 }
437} 437}
438 438
439static void mix32to2 (sample_t * samples, sample_t bias) 439static void mix32to2 (sample_t * samples)
440{ 440{
441 int i; 441 int i;
442 sample_t common; 442 sample_t common;
@@ -448,7 +448,7 @@ static void mix32to2 (sample_t * samples, sample_t bias)
448 } 448 }
449} 449}
450 450
451static void mix32toS (sample_t * samples, sample_t bias) 451static void mix32toS (sample_t * samples)
452{ 452{
453 int i; 453 int i;
454 sample_t common, surround; 454 sample_t common, surround;
@@ -461,7 +461,7 @@ static void mix32toS (sample_t * samples, sample_t bias)
461 } 461 }
462} 462}
463 463
464static void move2to1 (sample_t * src, sample_t * dest, sample_t bias) 464static void move2to1 (sample_t * src, sample_t * dest)
465{ 465{
466 int i; 466 int i;
467 467
@@ -477,7 +477,7 @@ static void zero (sample_t * samples)
477 samples[i] = 0; 477 samples[i] = 0;
478} 478}
479 479
480void a52_downmix (sample_t * samples, int acmod, int output, sample_t bias, 480void a52_downmix (sample_t * samples, int acmod, int output,
481 level_t clev, level_t slev) 481 level_t clev, level_t slev)
482{ 482{
483 /* avoid compiler warning */ 483 /* avoid compiler warning */
@@ -492,7 +492,7 @@ void a52_downmix (sample_t * samples, int acmod, int output, sample_t bias,
492 case CONVERT (A52_CHANNEL, A52_MONO): 492 case CONVERT (A52_CHANNEL, A52_MONO):
493 case CONVERT (A52_STEREO, A52_MONO): 493 case CONVERT (A52_STEREO, A52_MONO):
494 mix_2to1: 494 mix_2to1:
495 mix2to1 (samples, samples + 256, bias); 495 mix2to1 (samples, samples + 256);
496 break; 496 break;
497 497
498 case CONVERT (A52_2F1R, A52_MONO): 498 case CONVERT (A52_2F1R, A52_MONO):
@@ -500,7 +500,7 @@ void a52_downmix (sample_t * samples, int acmod, int output, sample_t bias,
500 goto mix_2to1; 500 goto mix_2to1;
501 case CONVERT (A52_3F, A52_MONO): 501 case CONVERT (A52_3F, A52_MONO):
502 mix_3to1: 502 mix_3to1:
503 mix3to1 (samples, bias); 503 mix3to1 (samples);
504 break; 504 break;
505 505
506 case CONVERT (A52_3F1R, A52_MONO): 506 case CONVERT (A52_3F1R, A52_MONO):
@@ -509,13 +509,13 @@ void a52_downmix (sample_t * samples, int acmod, int output, sample_t bias,
509 case CONVERT (A52_2F2R, A52_MONO): 509 case CONVERT (A52_2F2R, A52_MONO):
510 if (slev == 0) 510 if (slev == 0)
511 goto mix_2to1; 511 goto mix_2to1;
512 mix4to1 (samples, bias); 512 mix4to1 (samples);
513 break; 513 break;
514 514
515 case CONVERT (A52_3F2R, A52_MONO): 515 case CONVERT (A52_3F2R, A52_MONO):
516 if (slev == 0) 516 if (slev == 0)
517 goto mix_3to1; 517 goto mix_3to1;
518 mix5to1 (samples, bias); 518 mix5to1 (samples);
519 break; 519 break;
520 520
521 case CONVERT (A52_MONO, A52_DOLBY): 521 case CONVERT (A52_MONO, A52_DOLBY):
@@ -525,79 +525,79 @@ void a52_downmix (sample_t * samples, int acmod, int output, sample_t bias,
525 case CONVERT (A52_3F, A52_STEREO): 525 case CONVERT (A52_3F, A52_STEREO):
526 case CONVERT (A52_3F, A52_DOLBY): 526 case CONVERT (A52_3F, A52_DOLBY):
527 mix_3to2: 527 mix_3to2:
528 mix3to2 (samples, bias); 528 mix3to2 (samples);
529 break; 529 break;
530 530
531 case CONVERT (A52_2F1R, A52_STEREO): 531 case CONVERT (A52_2F1R, A52_STEREO):
532 if (slev == 0) 532 if (slev == 0)
533 break; 533 break;
534 mix21to2 (samples, samples + 256, bias); 534 mix21to2 (samples, samples + 256);
535 break; 535 break;
536 536
537 case CONVERT (A52_2F1R, A52_DOLBY): 537 case CONVERT (A52_2F1R, A52_DOLBY):
538 mix21toS (samples, bias); 538 mix21toS (samples);
539 break; 539 break;
540 540
541 case CONVERT (A52_3F1R, A52_STEREO): 541 case CONVERT (A52_3F1R, A52_STEREO):
542 if (slev == 0) 542 if (slev == 0)
543 goto mix_3to2; 543 goto mix_3to2;
544 mix31to2 (samples, bias); 544 mix31to2 (samples);
545 break; 545 break;
546 546
547 case CONVERT (A52_3F1R, A52_DOLBY): 547 case CONVERT (A52_3F1R, A52_DOLBY):
548 mix31toS (samples, bias); 548 mix31toS (samples);
549 break; 549 break;
550 550
551 case CONVERT (A52_2F2R, A52_STEREO): 551 case CONVERT (A52_2F2R, A52_STEREO):
552 if (slev == 0) 552 if (slev == 0)
553 break; 553 break;
554 mix2to1 (samples, samples + 512, bias); 554 mix2to1 (samples, samples + 512);
555 mix2to1 (samples + 256, samples + 768, bias); 555 mix2to1 (samples + 256, samples + 768);
556 break; 556 break;
557 557
558 case CONVERT (A52_2F2R, A52_DOLBY): 558 case CONVERT (A52_2F2R, A52_DOLBY):
559 mix22toS (samples, bias); 559 mix22toS (samples);
560 break; 560 break;
561 561
562 case CONVERT (A52_3F2R, A52_STEREO): 562 case CONVERT (A52_3F2R, A52_STEREO):
563 if (slev == 0) 563 if (slev == 0)
564 goto mix_3to2; 564 goto mix_3to2;
565 mix32to2 (samples, bias); 565 mix32to2 (samples);
566 break; 566 break;
567 567
568 case CONVERT (A52_3F2R, A52_DOLBY): 568 case CONVERT (A52_3F2R, A52_DOLBY):
569 mix32toS (samples, bias); 569 mix32toS (samples);
570 break; 570 break;
571 571
572 case CONVERT (A52_3F1R, A52_3F): 572 case CONVERT (A52_3F1R, A52_3F):
573 if (slev == 0) 573 if (slev == 0)
574 break; 574 break;
575 mix21to2 (samples, samples + 512, bias); 575 mix21to2 (samples, samples + 512);
576 break; 576 break;
577 577
578 case CONVERT (A52_3F2R, A52_3F): 578 case CONVERT (A52_3F2R, A52_3F):
579 if (slev == 0) 579 if (slev == 0)
580 break; 580 break;
581 mix2to1 (samples, samples + 768, bias); 581 mix2to1 (samples, samples + 768);
582 mix2to1 (samples + 512, samples + 1024, bias); 582 mix2to1 (samples + 512, samples + 1024);
583 break; 583 break;
584 584
585 case CONVERT (A52_3F1R, A52_2F1R): 585 case CONVERT (A52_3F1R, A52_2F1R):
586 mix3to2 (samples, bias); 586 mix3to2 (samples);
587 memcpy (samples + 512, samples + 768, 256 * sizeof (sample_t)); 587 memcpy (samples + 512, samples + 768, 256 * sizeof (sample_t));
588 break; 588 break;
589 589
590 case CONVERT (A52_2F2R, A52_2F1R): 590 case CONVERT (A52_2F2R, A52_2F1R):
591 mix2to1 (samples + 512, samples + 768, bias); 591 mix2to1 (samples + 512, samples + 768);
592 break; 592 break;
593 593
594 case CONVERT (A52_3F2R, A52_2F1R): 594 case CONVERT (A52_3F2R, A52_2F1R):
595 mix3to2 (samples, bias); 595 mix3to2 (samples);
596 move2to1 (samples + 768, samples + 512, bias); 596 move2to1 (samples + 768, samples + 512);
597 break; 597 break;
598 598
599 case CONVERT (A52_3F2R, A52_3F1R): 599 case CONVERT (A52_3F2R, A52_3F1R):
600 mix2to1 (samples + 768, samples + 1024, bias); 600 mix2to1 (samples + 768, samples + 1024);
601 break; 601 break;
602 602
603 case CONVERT (A52_2F1R, A52_2F2R): 603 case CONVERT (A52_2F1R, A52_2F2R):
@@ -605,12 +605,12 @@ void a52_downmix (sample_t * samples, int acmod, int output, sample_t bias,
605 break; 605 break;
606 606
607 case CONVERT (A52_3F1R, A52_2F2R): 607 case CONVERT (A52_3F1R, A52_2F2R):
608 mix3to2 (samples, bias); 608 mix3to2 (samples);
609 memcpy (samples + 512, samples + 768, 256 * sizeof (sample_t)); 609 memcpy (samples + 512, samples + 768, 256 * sizeof (sample_t));
610 break; 610 break;
611 611
612 case CONVERT (A52_3F2R, A52_2F2R): 612 case CONVERT (A52_3F2R, A52_2F2R):
613 mix3to2 (samples, bias); 613 mix3to2 (samples);
614 memcpy (samples + 512, samples + 768, 256 * sizeof (sample_t)); 614 memcpy (samples + 512, samples + 768, 256 * sizeof (sample_t));
615 memcpy (samples + 768, samples + 1024, 256 * sizeof (sample_t)); 615 memcpy (samples + 768, samples + 1024, 256 * sizeof (sample_t));
616 break; 616 break;