1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com> 3cabdff1aSopenharmony_ci * 4cabdff1aSopenharmony_ci * This file is part of FFmpeg. 5cabdff1aSopenharmony_ci * 6cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or 7cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public 8cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either 9cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version. 10cabdff1aSopenharmony_ci * 11cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 12cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 13cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14cabdff1aSopenharmony_ci * Lesser General Public License for more details. 15cabdff1aSopenharmony_ci * 16cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public 17cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software 18cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19cabdff1aSopenharmony_ci */ 20cabdff1aSopenharmony_ci 21cabdff1aSopenharmony_ci#include "config.h" 22cabdff1aSopenharmony_ci#include "libavutil/cpu.h" 23cabdff1aSopenharmony_ci#include "libavutil/x86/cpu.h" 24cabdff1aSopenharmony_ci#include "libavresample/audio_convert.h" 25cabdff1aSopenharmony_ci 26cabdff1aSopenharmony_ci/* flat conversions */ 27cabdff1aSopenharmony_ci 28cabdff1aSopenharmony_civoid ff_conv_s16_to_s32_sse2(int16_t *dst, const int32_t *src, int len); 29cabdff1aSopenharmony_ci 30cabdff1aSopenharmony_civoid ff_conv_s16_to_flt_sse2(float *dst, const int16_t *src, int len); 31cabdff1aSopenharmony_civoid ff_conv_s16_to_flt_sse4(float *dst, const int16_t *src, int len); 32cabdff1aSopenharmony_ci 33cabdff1aSopenharmony_civoid ff_conv_s32_to_s16_mmx (int16_t *dst, const int32_t *src, int len); 34cabdff1aSopenharmony_civoid ff_conv_s32_to_s16_sse2(int16_t *dst, const int32_t *src, int len); 35cabdff1aSopenharmony_ci 36cabdff1aSopenharmony_civoid ff_conv_s32_to_flt_sse2(float *dst, const int32_t *src, int len); 37cabdff1aSopenharmony_civoid ff_conv_s32_to_flt_avx (float *dst, const int32_t *src, int len); 38cabdff1aSopenharmony_ci 39cabdff1aSopenharmony_civoid ff_conv_flt_to_s16_sse2(int16_t *dst, const float *src, int len); 40cabdff1aSopenharmony_ci 41cabdff1aSopenharmony_civoid ff_conv_flt_to_s32_sse2(int32_t *dst, const float *src, int len); 42cabdff1aSopenharmony_civoid ff_conv_flt_to_s32_avx (int32_t *dst, const float *src, int len); 43cabdff1aSopenharmony_ci 44cabdff1aSopenharmony_ci/* interleave conversions */ 45cabdff1aSopenharmony_ci 46cabdff1aSopenharmony_civoid ff_conv_s16p_to_s16_2ch_sse2(int16_t *dst, int16_t *const *src, 47cabdff1aSopenharmony_ci int len, int channels); 48cabdff1aSopenharmony_civoid ff_conv_s16p_to_s16_2ch_avx (int16_t *dst, int16_t *const *src, 49cabdff1aSopenharmony_ci int len, int channels); 50cabdff1aSopenharmony_ci 51cabdff1aSopenharmony_civoid ff_conv_s16p_to_s16_6ch_sse2(int16_t *dst, int16_t *const *src, 52cabdff1aSopenharmony_ci int len, int channels); 53cabdff1aSopenharmony_civoid ff_conv_s16p_to_s16_6ch_sse2slow(int16_t *dst, int16_t *const *src, 54cabdff1aSopenharmony_ci int len, int channels); 55cabdff1aSopenharmony_civoid ff_conv_s16p_to_s16_6ch_avx (int16_t *dst, int16_t *const *src, 56cabdff1aSopenharmony_ci int len, int channels); 57cabdff1aSopenharmony_ci 58cabdff1aSopenharmony_civoid ff_conv_s16p_to_flt_2ch_sse2(float *dst, int16_t *const *src, 59cabdff1aSopenharmony_ci int len, int channels); 60cabdff1aSopenharmony_civoid ff_conv_s16p_to_flt_2ch_avx (float *dst, int16_t *const *src, 61cabdff1aSopenharmony_ci int len, int channels); 62cabdff1aSopenharmony_ci 63cabdff1aSopenharmony_civoid ff_conv_s16p_to_flt_6ch_sse2 (float *dst, int16_t *const *src, 64cabdff1aSopenharmony_ci int len, int channels); 65cabdff1aSopenharmony_civoid ff_conv_s16p_to_flt_6ch_ssse3(float *dst, int16_t *const *src, 66cabdff1aSopenharmony_ci int len, int channels); 67cabdff1aSopenharmony_civoid ff_conv_s16p_to_flt_6ch_avx (float *dst, int16_t *const *src, 68cabdff1aSopenharmony_ci int len, int channels); 69cabdff1aSopenharmony_ci 70cabdff1aSopenharmony_civoid ff_conv_fltp_to_s16_2ch_sse2 (int16_t *dst, float *const *src, 71cabdff1aSopenharmony_ci int len, int channels); 72cabdff1aSopenharmony_civoid ff_conv_fltp_to_s16_2ch_ssse3(int16_t *dst, float *const *src, 73cabdff1aSopenharmony_ci int len, int channels); 74cabdff1aSopenharmony_ci 75cabdff1aSopenharmony_civoid ff_conv_fltp_to_s16_6ch_sse (int16_t *dst, float *const *src, 76cabdff1aSopenharmony_ci int len, int channels); 77cabdff1aSopenharmony_civoid ff_conv_fltp_to_s16_6ch_sse2(int16_t *dst, float *const *src, 78cabdff1aSopenharmony_ci int len, int channels); 79cabdff1aSopenharmony_civoid ff_conv_fltp_to_s16_6ch_avx (int16_t *dst, float *const *src, 80cabdff1aSopenharmony_ci int len, int channels); 81cabdff1aSopenharmony_ci 82cabdff1aSopenharmony_civoid ff_conv_fltp_to_flt_2ch_sse(float *dst, float *const *src, int len, 83cabdff1aSopenharmony_ci int channels); 84cabdff1aSopenharmony_civoid ff_conv_fltp_to_flt_2ch_avx(float *dst, float *const *src, int len, 85cabdff1aSopenharmony_ci int channels); 86cabdff1aSopenharmony_ci 87cabdff1aSopenharmony_civoid ff_conv_fltp_to_flt_6ch_mmx (float *dst, float *const *src, int len, 88cabdff1aSopenharmony_ci int channels); 89cabdff1aSopenharmony_civoid ff_conv_fltp_to_flt_6ch_sse4(float *dst, float *const *src, int len, 90cabdff1aSopenharmony_ci int channels); 91cabdff1aSopenharmony_civoid ff_conv_fltp_to_flt_6ch_avx (float *dst, float *const *src, int len, 92cabdff1aSopenharmony_ci int channels); 93cabdff1aSopenharmony_ci 94cabdff1aSopenharmony_ci/* deinterleave conversions */ 95cabdff1aSopenharmony_ci 96cabdff1aSopenharmony_civoid ff_conv_s16_to_s16p_2ch_sse2(int16_t *const *dst, int16_t *src, 97cabdff1aSopenharmony_ci int len, int channels); 98cabdff1aSopenharmony_civoid ff_conv_s16_to_s16p_2ch_ssse3(int16_t *const *dst, int16_t *src, 99cabdff1aSopenharmony_ci int len, int channels); 100cabdff1aSopenharmony_civoid ff_conv_s16_to_s16p_2ch_avx (int16_t *const *dst, int16_t *src, 101cabdff1aSopenharmony_ci int len, int channels); 102cabdff1aSopenharmony_ci 103cabdff1aSopenharmony_civoid ff_conv_s16_to_s16p_6ch_sse2 (int16_t *const *dst, int16_t *src, 104cabdff1aSopenharmony_ci int len, int channels); 105cabdff1aSopenharmony_civoid ff_conv_s16_to_s16p_6ch_ssse3(int16_t *const *dst, int16_t *src, 106cabdff1aSopenharmony_ci int len, int channels); 107cabdff1aSopenharmony_civoid ff_conv_s16_to_s16p_6ch_avx (int16_t *const *dst, int16_t *src, 108cabdff1aSopenharmony_ci int len, int channels); 109cabdff1aSopenharmony_ci 110cabdff1aSopenharmony_civoid ff_conv_s16_to_fltp_2ch_sse2(float *const *dst, int16_t *src, 111cabdff1aSopenharmony_ci int len, int channels); 112cabdff1aSopenharmony_civoid ff_conv_s16_to_fltp_2ch_avx (float *const *dst, int16_t *src, 113cabdff1aSopenharmony_ci int len, int channels); 114cabdff1aSopenharmony_ci 115cabdff1aSopenharmony_civoid ff_conv_s16_to_fltp_6ch_sse2 (float *const *dst, int16_t *src, 116cabdff1aSopenharmony_ci int len, int channels); 117cabdff1aSopenharmony_civoid ff_conv_s16_to_fltp_6ch_ssse3(float *const *dst, int16_t *src, 118cabdff1aSopenharmony_ci int len, int channels); 119cabdff1aSopenharmony_civoid ff_conv_s16_to_fltp_6ch_sse4 (float *const *dst, int16_t *src, 120cabdff1aSopenharmony_ci int len, int channels); 121cabdff1aSopenharmony_civoid ff_conv_s16_to_fltp_6ch_avx (float *const *dst, int16_t *src, 122cabdff1aSopenharmony_ci int len, int channels); 123cabdff1aSopenharmony_ci 124cabdff1aSopenharmony_civoid ff_conv_flt_to_s16p_2ch_sse2(int16_t *const *dst, float *src, 125cabdff1aSopenharmony_ci int len, int channels); 126cabdff1aSopenharmony_civoid ff_conv_flt_to_s16p_2ch_avx (int16_t *const *dst, float *src, 127cabdff1aSopenharmony_ci int len, int channels); 128cabdff1aSopenharmony_ci 129cabdff1aSopenharmony_civoid ff_conv_flt_to_s16p_6ch_sse2 (int16_t *const *dst, float *src, 130cabdff1aSopenharmony_ci int len, int channels); 131cabdff1aSopenharmony_civoid ff_conv_flt_to_s16p_6ch_ssse3(int16_t *const *dst, float *src, 132cabdff1aSopenharmony_ci int len, int channels); 133cabdff1aSopenharmony_civoid ff_conv_flt_to_s16p_6ch_avx (int16_t *const *dst, float *src, 134cabdff1aSopenharmony_ci int len, int channels); 135cabdff1aSopenharmony_ci 136cabdff1aSopenharmony_civoid ff_conv_flt_to_fltp_2ch_sse(float *const *dst, float *src, int len, 137cabdff1aSopenharmony_ci int channels); 138cabdff1aSopenharmony_civoid ff_conv_flt_to_fltp_2ch_avx(float *const *dst, float *src, int len, 139cabdff1aSopenharmony_ci int channels); 140cabdff1aSopenharmony_ci 141cabdff1aSopenharmony_civoid ff_conv_flt_to_fltp_6ch_sse2(float *const *dst, float *src, int len, 142cabdff1aSopenharmony_ci int channels); 143cabdff1aSopenharmony_civoid ff_conv_flt_to_fltp_6ch_avx (float *const *dst, float *src, int len, 144cabdff1aSopenharmony_ci int channels); 145cabdff1aSopenharmony_ci 146cabdff1aSopenharmony_ciav_cold void ff_audio_convert_init_x86(AudioConvert *ac) 147cabdff1aSopenharmony_ci{ 148cabdff1aSopenharmony_ci int cpu_flags = av_get_cpu_flags(); 149cabdff1aSopenharmony_ci 150cabdff1aSopenharmony_ci if (EXTERNAL_MMX(cpu_flags)) { 151cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, 152cabdff1aSopenharmony_ci 0, 1, 8, "MMX", ff_conv_s32_to_s16_mmx); 153cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP, 154cabdff1aSopenharmony_ci 6, 1, 4, "MMX", ff_conv_fltp_to_flt_6ch_mmx); 155cabdff1aSopenharmony_ci } 156cabdff1aSopenharmony_ci if (EXTERNAL_SSE(cpu_flags)) { 157cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLTP, 158cabdff1aSopenharmony_ci 6, 1, 2, "SSE", ff_conv_fltp_to_s16_6ch_sse); 159cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP, 160cabdff1aSopenharmony_ci 2, 16, 8, "SSE", ff_conv_fltp_to_flt_2ch_sse); 161cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT, 162cabdff1aSopenharmony_ci 2, 16, 4, "SSE", ff_conv_flt_to_fltp_2ch_sse); 163cabdff1aSopenharmony_ci } 164cabdff1aSopenharmony_ci if (EXTERNAL_SSE2(cpu_flags)) { 165cabdff1aSopenharmony_ci if (!(cpu_flags & AV_CPU_FLAG_SSE2SLOW)) { 166cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, 167cabdff1aSopenharmony_ci 0, 16, 16, "SSE2", ff_conv_s32_to_s16_sse2); 168cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P, 169cabdff1aSopenharmony_ci 6, 16, 8, "SSE2", ff_conv_s16p_to_s16_6ch_sse2); 170cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLTP, 171cabdff1aSopenharmony_ci 6, 16, 4, "SSE2", ff_conv_fltp_to_s16_6ch_sse2); 172cabdff1aSopenharmony_ci } else { 173cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P, 174cabdff1aSopenharmony_ci 6, 1, 4, "SSE2SLOW", ff_conv_s16p_to_s16_6ch_sse2slow); 175cabdff1aSopenharmony_ci } 176cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S16, 177cabdff1aSopenharmony_ci 0, 16, 8, "SSE2", ff_conv_s16_to_s32_sse2); 178cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, 179cabdff1aSopenharmony_ci 0, 16, 8, "SSE2", ff_conv_s16_to_flt_sse2); 180cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S32, 181cabdff1aSopenharmony_ci 0, 16, 8, "SSE2", ff_conv_s32_to_flt_sse2); 182cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT, 183cabdff1aSopenharmony_ci 0, 16, 16, "SSE2", ff_conv_flt_to_s16_sse2); 184cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_FLT, 185cabdff1aSopenharmony_ci 0, 16, 16, "SSE2", ff_conv_flt_to_s32_sse2); 186cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P, 187cabdff1aSopenharmony_ci 2, 16, 16, "SSE2", ff_conv_s16p_to_s16_2ch_sse2); 188cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16P, 189cabdff1aSopenharmony_ci 2, 16, 8, "SSE2", ff_conv_s16p_to_flt_2ch_sse2); 190cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16P, 191cabdff1aSopenharmony_ci 6, 16, 4, "SSE2", ff_conv_s16p_to_flt_6ch_sse2); 192cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLTP, 193cabdff1aSopenharmony_ci 2, 16, 4, "SSE2", ff_conv_fltp_to_s16_2ch_sse2); 194cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16, 195cabdff1aSopenharmony_ci 2, 16, 8, "SSE2", ff_conv_s16_to_s16p_2ch_sse2); 196cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16, 197cabdff1aSopenharmony_ci 6, 16, 4, "SSE2", ff_conv_s16_to_s16p_6ch_sse2); 198cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16, 199cabdff1aSopenharmony_ci 2, 16, 8, "SSE2", ff_conv_s16_to_fltp_2ch_sse2); 200cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16, 201cabdff1aSopenharmony_ci 6, 16, 4, "SSE2", ff_conv_s16_to_fltp_6ch_sse2); 202cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_FLT, 203cabdff1aSopenharmony_ci 2, 16, 8, "SSE2", ff_conv_flt_to_s16p_2ch_sse2); 204cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_FLT, 205cabdff1aSopenharmony_ci 6, 16, 4, "SSE2", ff_conv_flt_to_s16p_6ch_sse2); 206cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT, 207cabdff1aSopenharmony_ci 6, 16, 4, "SSE2", ff_conv_flt_to_fltp_6ch_sse2); 208cabdff1aSopenharmony_ci } 209cabdff1aSopenharmony_ci if (EXTERNAL_SSSE3(cpu_flags)) { 210cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16P, 211cabdff1aSopenharmony_ci 6, 16, 4, "SSSE3", ff_conv_s16p_to_flt_6ch_ssse3); 212cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLTP, 213cabdff1aSopenharmony_ci 2, 16, 4, "SSSE3", ff_conv_fltp_to_s16_2ch_ssse3); 214cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16, 215cabdff1aSopenharmony_ci 2, 16, 8, "SSSE3", ff_conv_s16_to_s16p_2ch_ssse3); 216cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16, 217cabdff1aSopenharmony_ci 6, 16, 4, "SSSE3", ff_conv_s16_to_s16p_6ch_ssse3); 218cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16, 219cabdff1aSopenharmony_ci 6, 16, 4, "SSSE3", ff_conv_s16_to_fltp_6ch_ssse3); 220cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_FLT, 221cabdff1aSopenharmony_ci 6, 16, 4, "SSSE3", ff_conv_flt_to_s16p_6ch_ssse3); 222cabdff1aSopenharmony_ci } 223cabdff1aSopenharmony_ci if (EXTERNAL_SSE4(cpu_flags)) { 224cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, 225cabdff1aSopenharmony_ci 0, 16, 8, "SSE4", ff_conv_s16_to_flt_sse4); 226cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP, 227cabdff1aSopenharmony_ci 6, 16, 4, "SSE4", ff_conv_fltp_to_flt_6ch_sse4); 228cabdff1aSopenharmony_ci } 229cabdff1aSopenharmony_ci if (EXTERNAL_AVX_FAST(cpu_flags)) { 230cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S32, 231cabdff1aSopenharmony_ci 0, 32, 16, "AVX", ff_conv_s32_to_flt_avx); 232cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_FLT, 233cabdff1aSopenharmony_ci 0, 32, 32, "AVX", ff_conv_flt_to_s32_avx); 234cabdff1aSopenharmony_ci } 235cabdff1aSopenharmony_ci if (EXTERNAL_AVX(cpu_flags)) { 236cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P, 237cabdff1aSopenharmony_ci 2, 16, 16, "AVX", ff_conv_s16p_to_s16_2ch_avx); 238cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P, 239cabdff1aSopenharmony_ci 6, 16, 8, "AVX", ff_conv_s16p_to_s16_6ch_avx); 240cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16P, 241cabdff1aSopenharmony_ci 2, 16, 8, "AVX", ff_conv_s16p_to_flt_2ch_avx); 242cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16P, 243cabdff1aSopenharmony_ci 6, 16, 4, "AVX", ff_conv_s16p_to_flt_6ch_avx); 244cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLTP, 245cabdff1aSopenharmony_ci 6, 16, 4, "AVX", ff_conv_fltp_to_s16_6ch_avx); 246cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP, 247cabdff1aSopenharmony_ci 6, 16, 4, "AVX", ff_conv_fltp_to_flt_6ch_avx); 248cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16, 249cabdff1aSopenharmony_ci 2, 16, 8, "AVX", ff_conv_s16_to_s16p_2ch_avx); 250cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S16, 251cabdff1aSopenharmony_ci 6, 16, 4, "AVX", ff_conv_s16_to_s16p_6ch_avx); 252cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16, 253cabdff1aSopenharmony_ci 2, 16, 8, "AVX", ff_conv_s16_to_fltp_2ch_avx); 254cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16, 255cabdff1aSopenharmony_ci 6, 16, 4, "AVX", ff_conv_s16_to_fltp_6ch_avx); 256cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_FLT, 257cabdff1aSopenharmony_ci 2, 16, 8, "AVX", ff_conv_flt_to_s16p_2ch_avx); 258cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_FLT, 259cabdff1aSopenharmony_ci 6, 16, 4, "AVX", ff_conv_flt_to_s16p_6ch_avx); 260cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT, 261cabdff1aSopenharmony_ci 2, 16, 4, "AVX", ff_conv_flt_to_fltp_2ch_avx); 262cabdff1aSopenharmony_ci ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT, 263cabdff1aSopenharmony_ci 6, 16, 4, "AVX", ff_conv_flt_to_fltp_6ch_avx); 264cabdff1aSopenharmony_ci } 265cabdff1aSopenharmony_ci} 266