| 965 | } |
| 966 | |
| 967 | int hb_audio_samplerate_is_supported(int samplerate, uint32_t codec) |
| 968 | { |
| 969 | switch (codec) |
| 970 | { |
| 971 | case HB_ACODEC_AC3: |
| 972 | case HB_ACODEC_FFEAC3: |
| 973 | case HB_ACODEC_CA_HAAC: |
| 974 | // ca_haac can't do samplerates < 32 kHz |
| 975 | // libav's E-AC-3 encoder can't do samplerates < 32 kHz |
| 976 | // AC-3 < 32 kHz suffers from poor hardware compatibility |
| 977 | if (samplerate < 32000 || samplerate > 48000) |
| 978 | return 0; |
| 979 | else |
| 980 | return 1; |
| 981 | case HB_ACODEC_FDK_HAAC: |
| 982 | // fdk_haac can't do samplerates < 16 kHz |
| 983 | if (samplerate < 16000 || samplerate > 48000) |
| 984 | return 0; |
| 985 | else |
| 986 | return 1; |
| 987 | case HB_ACODEC_OPUS: |
| 988 | switch (samplerate) |
| 989 | { |
| 990 | // Opus only supports samplerates 8kHz, 12kHz, 16kHz, |
| 991 | // 24kHz, 48kHz |
| 992 | case 8000: |
| 993 | case 12000: |
| 994 | case 16000: |
| 995 | case 24000: |
| 996 | case 48000: |
| 997 | return 1; |
| 998 | default: |
| 999 | return 0; |
| 1000 | } |
| 1001 | case HB_ACODEC_FFTRUEHD: |
| 1002 | switch (samplerate) |
| 1003 | { |
| 1004 | // TrueHD only supports samplerates 44.1kHz, 48kHz, 88.2kHz, |
| 1005 | // 96kHz, 176.4kHz, and 192kHz. |
| 1006 | case 44100: |
| 1007 | case 48000: |
| 1008 | case 88200: |
| 1009 | case 96000: |
| 1010 | case 176400: |
| 1011 | case 192000: |
| 1012 | return 1; |
| 1013 | default: |
| 1014 | return 0; |
| 1015 | } |
| 1016 | case HB_ACODEC_LAME: |
| 1017 | case HB_ACODEC_VORBIS: |
| 1018 | case HB_ACODEC_CA_AAC: |
| 1019 | case HB_ACODEC_FFAAC: |
| 1020 | if (samplerate > 48000) |
| 1021 | { |
| 1022 | return 0; |
| 1023 | } |
| 1024 | else |
no outgoing calls
no test coverage detected