497{
498 const char* chosen = "";
500 int done = 0;
501 int auto_choose = 0;
502#ifdef OPT_DITHER
503 int dithered =
FALSE;
504#endif
505
507 auto_choose = want_dec ==
autodec;
508
510
511#ifndef OPT_MULTI
512 {
513 if(!auto_choose && want_dec != defopt)
514 {
515 if(
NOQUIET)
error2(
"you wanted decoder type %i, I only have %i", want_dec, defopt);
516 }
518 }
519#endif
520
522#ifdef OPT_MULTI
523#ifndef NO_LAYER3
524#if (defined OPT_3DNOW_VINTAGE || defined OPT_3DNOWEXT_VINTAGE || defined OPT_SSE || defined OPT_X86_64 || defined OPT_AVX || defined OPT_NEON || defined OPT_NEON64)
526#endif
527#endif
528#endif
529
530#ifdef OPT_X86
532 {
533# ifdef OPT_MULTI
535# endif
536# ifdef OPT_SSE
537 if( !done && (auto_choose || want_dec ==
sse)
539 {
540 chosen = dn_sse;
542#ifdef OPT_MULTI
543# ifndef NO_LAYER3
545# endif
546#endif
547# ifndef NO_16BIT
549# ifdef ACCURATE_ROUNDING
551# endif
552# endif
553# ifndef NO_REAL
556# endif
557# ifndef NO_32BIT
560# endif
561 done = 1;
562 }
563# endif
564# ifdef OPT_SSE_VINTAGE
565 if( !done && (auto_choose || want_dec ==
sse_vintage)
567 {
568 chosen = dn_sse_vintage;
570# ifndef NO_16BIT
572# ifdef ACCURATE_ROUNDING
574# endif
575# endif
576# ifndef NO_REAL
579# endif
580# ifndef NO_32BIT
583# endif
584 done = 1;
585 }
586# endif
587# ifdef OPT_3DNOWEXT
588 if( !done && (auto_choose || want_dec ==
dreidnowext)
592 {
593 chosen = dn_dreidnowext;
595# ifndef NO_16BIT
597# endif
598 done = 1;
599 }
600# endif
601# ifdef OPT_3DNOWEXT_VINTAGE
606 {
607 chosen = dn_dreidnowext_vintage;
609#ifdef OPT_MULTI
610# ifndef NO_LAYER3
612# endif
613#endif
614# ifndef NO_16BIT
616# endif
617 done = 1;
618 }
619# endif
620# ifdef OPT_3DNOW
621 if( !done && (auto_choose || want_dec ==
dreidnow)
623 {
624 chosen = dn_dreidnow;
626# ifndef NO_16BIT
628# endif
629 done = 1;
630 }
631# endif
632# ifdef OPT_3DNOW_VINTAGE
635 {
636 chosen = dn_dreidnow_vintage;
638#ifdef OPT_MULTI
639# ifndef NO_LAYER3
641# endif
642#endif
643# ifndef NO_16BIT
645# endif
646 done = 1;
647 }
648# endif
649 #ifdef OPT_MMX
650 if( !done && (auto_choose || want_dec ==
mmx)
652 {
653 chosen = dn_mmx;
655# ifndef NO_16BIT
657# endif
658 done = 1;
659 }
660 #endif
661 #ifdef OPT_I586
662 if(!done && (auto_choose || want_dec ==
ifuenf))
663 {
664 chosen = "i586/pentium";
666# ifndef NO_16BIT
668# endif
669 done = 1;
670 }
671 #endif
672 #ifdef OPT_I586_DITHER
674 {
675 chosen = "dithered i586/pentium";
678# ifndef NO_16BIT
680# ifndef NO_DOWNSAMPLE
683# endif
684# endif
685 done = 1;
686 }
687 #endif
688 }
689 #ifdef OPT_I486
690
691
692 if(!done && (auto_choose || want_dec ==
ivier))
693 {
694 chosen = dn_ivier;
696 done = 1;
697 }
698 #endif
699 #ifdef OPT_I386
700 if(!done && (auto_choose || want_dec ==
idrei))
701 {
702 chosen = dn_idrei;
704 done = 1;
705 }
706 #endif
707
708 if(done)
709 {
710
711
712
713
714
717# ifndef NO_8BIT
718# ifndef NO_16BIT
720 {
724 }
725# endif
726# endif
729 {
731 fr->
synths.plain[ri][fi] = plain_i386[ri][fi];
732 }
733 }
734
735#endif
736
737#ifdef OPT_AVX
739 {
740 chosen = "x86-64 (AVX)";
742#ifdef OPT_MULTI
743# ifndef NO_LAYER3
745# endif
746#endif
747# ifndef NO_16BIT
750# endif
751# ifndef NO_REAL
754# endif
755# ifndef NO_32BIT
758# endif
759 done = 1;
760 }
761#endif
762
763#ifdef OPT_X86_64
764 if(!done && (auto_choose || want_dec ==
x86_64))
765 {
766 chosen = "x86-64 (SSE)";
768#ifdef OPT_MULTI
769# ifndef NO_LAYER3
771# endif
772#endif
773# ifndef NO_16BIT
776# endif
777# ifndef NO_REAL
780# endif
781# ifndef NO_32BIT
784# endif
785 done = 1;
786 }
787#endif
788
789# ifdef OPT_ALTIVEC
790 if(!done && (auto_choose || want_dec ==
altivec))
791 {
792 chosen = dn_altivec;
794# ifndef NO_16BIT
797# endif
798# ifndef NO_REAL
801# endif
802# ifndef NO_32BIT
805# endif
806 done = 1;
807 }
808# endif
809
810# ifdef OPT_NEON
812 {
813 chosen = dn_neon;
815#ifdef OPT_MULTI
816# ifndef NO_LAYER3
818# endif
819#endif
820# ifndef NO_16BIT
823# endif
824# ifndef NO_REAL
827# endif
828# ifndef NO_32BIT
831# endif
832 done = 1;
833 }
834# endif
835
836# ifdef OPT_ARM
837 if(!done && (auto_choose || want_dec ==
arm))
838 {
839 chosen = dn_arm;
841# ifndef NO_16BIT
843# endif
844 done = 1;
845 }
846# endif
847
848# ifdef OPT_NEON64
850 {
851 chosen = dn_neon64;
853#ifdef OPT_MULTI
854# ifndef NO_LAYER3
856# endif
857#endif
858# ifndef NO_16BIT
861# endif
862# ifndef NO_REAL
865# endif
866# ifndef NO_32BIT
869# endif
870 done = 1;
871 }
872# endif
873
874# ifdef OPT_GENERIC
875 if(!done && (auto_choose || want_dec ==
generic))
876 {
877 chosen = dn_generic;
879 done = 1;
880 }
881# endif
882
883#ifdef OPT_GENERIC_DITHER
885 {
886 chosen = "dithered generic";
889# ifndef NO_16BIT
891# ifndef NO_DOWNSAMPLE
894# endif
895# endif
896 done = 1;
897 }
898#endif
899
901
902# ifndef NO_8BIT
903# ifndef NO_16BIT
904
908 {
912 }
913# endif
914# endif
915
916#ifdef OPT_DITHER
917 if(done && dithered)
918 {
919
921 {
923 return 0;
924 }
925 }
926#endif
927
928 if(done)
929 {
931 return 1;
932 }
933 else
934 {
936 return 0;
937 }
938}
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
#define synth_1to1_real_sse
#define synth_1to1_s32_stereo_x86_64
#define synth_1to1_s32_avx
#define synth_1to1_8bit_wrap_mono
#define synth_1to1_x86_64
#define synth_1to1_s32_x86_64
#define synth_1to1_real_stereo_x86_64
#define synth_1to1_stereo_neon64
#define synth_1to1_stereo_x86_64
#define synth_1to1_stereo_altivec
#define synth_1to1_real_altivec
#define synth_1to1_stereo_sse
#define synth_1to1_i586_dither
#define synth_1to1_real_stereo_sse
#define synth_1to1_s32_stereo_neon
#define synth_1to1_s32_sse
#define synth_1to1_fltst_avx
#define synth_1to1_s32_stereo_avx
#define synth_1to1_8bit_wrap_m2s
#define synth_1to1_real_avx
#define synth_1to1_dither
#define synth_1to1_s32_stereo_sse
#define synth_1to1_real_neon64
#define synth_1to1_real_x86_64
#define synth_1to1_fltst_neon64
#define synth_1to1_s32_neon64
#define synth_1to1_fltst_altivec
#define synth_1to1_s32st_neon64
#define synth_2to1_dither
#define synth_1to1_real_stereo_neon
#define synth_1to1_altivec
#define synth_4to1_dither
#define synth_1to1_stereo_neon
#define synth_1to1_8bit_wrap
#define synth_1to1_3dnowext
#define synth_1to1_neon64
#define synth_1to1_s32_altivec
#define synth_1to1_s32_neon
#define frame_dither_init
#define synth_1to1_s32_stereo_altivec
#define synth_1to1_stereo_avx
#define synth_1to1_real_neon
static const struct synth_s synth_base
struct mpg123_handle_struct::@3455 cpu_opts